欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]Android动态逆向分析工具(四)—— Andbug补充调试功能

[原创]Android动态逆向分析工具(四)—— Andbug补充调试功能

Android动态逆向分析工具(四)——
                             Andbug补充调试功能
  新增了函数内设置断点,已经单步调试相关的功能。
在函数内部设置断点
1.1、定位要分析的函数
通过classes和methods命令,定位到要分析的函数,这里以com.example.test.MainActivity为例,可以对该函数的入口设置断点。

1.2、查看函数部的代码分布情况
  通过break com.example.test.MainActivity onCreate show 命令可以看到函数内各代码的

与之对应的源代码为:

其中代码“super.onCreate(savedInstanceState);”位于第24行,onCreate函数的最后一个大括号位于46行。
通过show我们可以得知,onCreate中的代码分别位于第24、25、27、29、31、46行。
这里支持以源代码代码行粒度的断点设置,还不支持以dilvik汇编指令粒度的进行断点设置。
1.3、设置函数内的断点
如图所示,分别在27、24、25行设置了断点。

设置断点如下图所示,每个断点中的,0、8、0、3是指设置断点位置相对与函数入口点,davlik汇编指令的偏移位置。

注:目前暂时不支持,以dalvik汇编指令粒度的断点设置
1.4、断点的出发
对函数com.example.test.MainActivity.test中的65行处设置断点,出发后如图所示。

单步调试功能
该部分代码为FreedomCoder实现,但一直没有被swdunlop 合并进主干,为实习下面功能,作者将FreedomCoder的部分代码合并进了作者的git代码。
2.1 运行应用,并将应用停在设定位置
如下图所示:
加载调试目标,并分别在test函数的入口和65行代码处设置断点。
点击实际上的某个按钮,触发test函数,apk运行中断在test函数入口处。

2.2、step over功能
执行下一步指令,使用命令:step over命令。
如下图分别与行了第51行和52行的代码。
命令的全称是“stepover”,缩写是“s”

2.3、step into功能
  进入子函数的单步执行命令“stepinto”,缩写为“si”
  由于本例中,该代码处,不是一个函数调用,所以执行效果等同于“step over”

单步执行后,代码停到了53行处。
2.4、stepout功能
通过该功能可以实现,从当前函数中跳出来,停止在其父函数位置。

其父函数是“com.example.test.MainActivity$1.onClick”
下面为test函数的源码

上传的附件 图片1.png
图片2.png
图片3.png
图片4.png
图片5.png
图片6.png
图片7.png
图片8.png
图片9.png
图片10.png
图片11.png

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功