目录
一、动态代码注入技术    1
二、动态分析工具jdb介绍    2
四、jdb动态分析Android实例应用程序    10
五、jdb动态分析第三方文件管理器应用程序    17
六、动态注入动态链接库    20
一、动态代码注入技术
Android动态代码注入即是不修改源程序只修改进程的寄存器、内存值等就能控制程序实现既定目标的一种方法。动态代码注入技术本质上就是一种调度技术,动态代码注入相比于普通的调试,最大的区别就是动态代码注入是一个“自动化调试并达到加载自定义动态链接库”的过程。所谓自动化,其实就是通过代码实现,在Linux上通过Ptrace就可以完成查看变量值、修
改变量值、跟踪进程跳转、查看进程调试堆栈等待所有功能,当然,Ptrace功能是比较原始的,平时调试中的功能还需要很多高层逻辑封装才可以实现。一般而言,我们要对一个进程进行动态注入,主要有以下几个方便目的:增强目标进程的功能、修复目标进程缺陷、劫持目标进程函数、窃取目标进程数据、篡改目标进程数据。
如上图所示,进程A注入到进程B后,通过司改寄存器和内存,让进程B加载自定义的动态链接库a,当a被加载后,a会尝试加载其他模块,比如加载dex文件等等,具体的注入过程如下:
ATTATCH,指定目标进程,开始调试;
GETREGS,获取目标进程的寄存器,保存现场;
SETREGS,修改PC等相关寄存器,使其指向mmap;
java模拟器怎么用