-0x1:
20180927更新:
1.更新了0x5 part的源码,之前的源码链接不知何时失效了,(别问了,懒,笨,还不上进,不知道啥是git)
2.解决了某些机型,在mprotect的时候由于权限不够而导致的失败。就是在声明的时候把结构体声明到.text段就好了,具体如下
3.emmm...另外这个源码的下载不知道啥时候又会失效,有缘再见...
0x0 前言
现在很多安全插件,都会用本地文件和系统的内存进行校验,来防止修改code内存的hook,
或者一些其他的原因,无法注入,无法hook,又不想麻烦的编译android源码,
那我要怎么办呢?
用伪造so的方式注入,
尤其对注入时机比较关注的玩家,这种注入方式最棒
如果hook系统的so,则需要root,
源码在0x5部分
若是有图片看不清,那就下载附件吧
-------------------------------------------------------------------
0x1 选择目标so文件,得到导出函数列表
比如我在android 7中,想注入dex2oat来达到不可告人的目的,
我需要用ida打开dex2oat,看看dex2oat都需要哪些so
然后选择目标so文件,遵循如下几个标准,
如果能遵守标准,注入成功的几率就大一些
a.目标so的导出函数最好全部是 C 导出(不强求)
C++的导出:_Z32register_android_hardware_CameraP7_JNIEnv
C导出: register_android_hardware_Camera
b.导出的函数越少越好(不强求)
根据上面的标准,我认为伪造libsigchain.so,最靠谱。
然后需要获得libsigchain.so的导出函数列表,步骤如下
在linux用 readelf -s libsigchain.so 得到导出函数列表,
或者在ida的Export窗口复制粘贴。
这里要说一下,如果so中的导出函数是C++格式的,那么从ida窗口复制出来的导出函数列表,
就是不准确的
这里我用 readelf -s libsigchain.so | grep "13 " 得到libsigchain.so的导出函数列表
用notepad++,处理一下文本
得到导出函数表
InvokeUserSignalHandler
ClaimSignalChain
UnclaimSignalChain
EnsureFrontOfChain
InitializeSignalChain
SetSpecialSignalHandlerFn
------------------------------------------------------------------------------
0x2 使用方法
打开notepad++,新建文档,把导出函数表复制进去
复制 __attribute__((visibility("default"))) JmpStruct
用上面介绍的按住alt的方法,一次性粘贴到,导出函数列表前面
并用同样的方法,在末尾把 分号“ ; ” 加上
上面的步骤用excel也能轻松做到
经过处理后,得到
__attribute__((section(".text"))) __attribute__((visibility("default"))) JmpStruct InvokeUserSignalHandler;
__attribute__((section(".text"))) __attribute__((visibility("default"))) JmpStruct ClaimSignalChain;
__attribute__((section(".text"))) __attribute__((visibility("default"))) JmpStruct UnclaimSignalChain;
__attribute__((section(".text"))) __attribute__((visibility("default"))) JmpStruct EnsureFrontOfChain;
__attribute__((section(".text"))) __attribute__((visibility("default"))) JmpStruct InitializeSignalChain;
__attribute__((section(".text"))) __attribute__((visibility("default"))) JmpStruct SetSpecialSignalHandlerFn;
打开hook_demo.c,把上面的信息,粘贴到对应的位置
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2018-9-27 19:54
被zeif编辑
,原因: