android注入so,有代码有命令

android下注入so的研究相对比较少,大名鼎鼎的LBE使用的就是ptrace注入so,至于后面的API hook我目前还没有开始分析。网上有不少大牛对LBE的逆向。

其实android下的so注入与linux的思路类似,我们所有的操作都是在Native C层实现的。它也是先ptrace目标进程,搜索符号表,在这里搜索符号表也并非完全是搜索内存,而是由一个计算公式,在下文大牛的代码里有。然后采用了植入shellcode的方法加载so。

代码地址http://download.csdn.net/download/ljhzbljhzb/3680780

编译方法http://www.yurushao.net/?p=756,补充一点,在android.mk文件中还需要添加语句LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog

据我对一位大牛的请教得知,该代码在dlopen后会调用dlclose,如果你觉得注入so失败,那么要考虑修改shellcode,这个是arm的汇编。我是修改的跳转指令,在dlsym后不进行dlclose。还有并不是所有的so文件都可以注入成功。具体原因还在进一步分析中。

9.9修改:主意被注入的so必须使用绝对路径,或者基于被注入进程的相对路径,建议使用绝对路径。还有并不是所有ndk-build的so都可以注入,这可能碰到这种情况,说明你的so有问题,建议使用codesourcery编译so

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值