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

更多相关文章

  1. 开发者大杀器 —— Battery Historian,刨根问底,揪出 Android(安卓
  2. Android图片特效处理(像素处理)
  3. 编写高效的Android代码 .
  4. android和javaEE更完美的通信-传递对象
  5. [置顶] Android之场景桌面(一)
  6. Glide源码解析篇之框架主体结构(一)
  7. android修改按键的映射
  8. Android(安卓)Apk瘦身指南大全
  9. [置顶] 浅析android中的权限管理--用户安装的apk的uid,gid是如何

随机推荐

  1. Android 关于休眠的几个坑点
  2. android之ViewFlipper实现左右滑动动画效
  3. Android代码内存优化建议-Android资源篇
  4. Android守护进程
  5. Android:使用VideoView(TV显示屏待机状态,循
  6. Android中Handler与Message的简单实例
  7. 为Android添加一门新语言
  8. TextView文字阴影效果以及styles文件的使
  9. 使用nginx配置android文档本地站点
  10. Android Google Map实例 - 在地图和卫星