如果这个项目对你有用,还请在GitHub为我留下一颗star。非常感谢。
项目地址位于最下方
本意是写一个Hook框架来平替一下总是被检测的frida,所以花费一些时间写了这个Hook框架。另一方面也是想研究一下ART的Hook原理,借着这个机会研究明白也写出来了。目前运行的还不是很完美,对象会直接打印出地址,也就是localref,不能递归解析(对象嵌套对象),只能解析对象中的基础类型。被嵌套的对象需要手动再调用函数解析一次。
基础场景下算是够用了,功力不够深,大佬轻喷。以后会逐步完善这套框架。
目前只支持AArch64(因为参数传递比较麻烦,用了不少内联汇编)。探测结构偏移用的是Android15的,因为我目前手机上只有Android15的机器,在Android11/15/16手机上测试通过,理论上api30+的手机都能使用。使用文件传递参数,所以最好使用真机和api33之后的模拟器。如果需要在低版本使用,可以修改一下FindClass里面定义的偏移;这个使用的是类似frida的做法,找到固定字段作为锚点,往上往下加减固定偏移来找指定字段。这些小偏移如果不想自己找,也可以抄frida-java-bridge的内容。
核心是一个so,注入后就可以进行hook,通过文件与loader通信,loader再与client通信。注入器这块我没有写,使用的是tinjector。这个注入器也是十分的强大,强烈推荐。
测试用例包含在Github,另外也拿其他软件测试了一下
一个简单的演示视频:506K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2T1K9h3I4A6j5X3W2D9K9g2)9J5k6h3y4G2L8g2)9J5c8Y4k6A6k6r3g2G2i4K6u0r3b7W2j5I4M7K6W2w2L8i4A6h3c8e0q4A6i4K6u0r3
贴一张图:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课