学习了dalvik指令集,看懂了smali代码,可以在android killer进行静态分析了修改代码,今天这里可以在JEB中对smali代码进行动态的调试debug
下载JEB地址
1. 下载后点击jeb_wincom.bat就出现了JEB主页面
点击文件->打开选择要分析的apk 这个有一个问题 当APP过大时会报错java.lang.OutOfMemoryError: Java heap space
分析的项目过大 内存不够了怎么办呢?
用notepad++打开jeb-wincon.bat
找到:startraw
在这后面添加(这里10096根据自己电脑的内存而自己定)
%JAVA% -Xmx10096m -XX:-UseParallelGC -XX:MinHeapFreeRatio=15 -jar "%~dp0bin\cl\jeb.jar" %*
2.了解内容
这就是打开一个apk的页面 工程浏览器中的Bytecode就的代码所在
工程浏览器下面就是代码的机构
点击要打断点的位置后ctrl+b 即可在这里打好断点
在smali代码页面右击鼠标 点击解析 即可看到java代码
3.开始调试
选好要调试的位置后 点击顶部调试器->开始 选择好当前的设备和进程就开始了动态调试
在模拟器或手机上运行APP,运行到刚刚打断点的地方就会停止,在JEB中会出现当前的寄存器详情
其中类型默认都是int ,如果你知道寄存器本质是什么类型 是可以修改的
这里就通过动态的调试获取到了要调试的方法的参数和局部变量的值