Quantcast
Channel: 看雪安全论坛
Viewing all articles
Browse latest Browse all 9556

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

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

附件 86547

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

附件 86548

与之对应的源代码为:

附件 86549

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

1.3、设置函数内的断点
如图所示,分别在27、24、25行设置了断点。

附件 86550

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

附件 86551

注:目前暂时不支持,以dalvik汇编指令粒度的断点设置


1.4、断点的出发
对函数com.example.test.MainActivity.test中的65行处设置断点,出发后如图所示。

附件 86552

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

附件 86553

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

附件 86554


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


单步执行后,代码停到了53行处。


2.4、stepout功能
通过该功能可以实现,从当前函数中跳出来,停止在其父函数位置。

附件 86556

其父函数是“com.example.test.MainActivity$1.onClick”

下面为test函数的源码

附件 86557

上传的图像
文件类型: png 图片1.png (154.0 KB)
文件类型: png 图片2.png (17.6 KB)
文件类型: png 图片3.png (64.9 KB)
文件类型: png 图片4.png (181.2 KB)
文件类型: png 图片5.png (81.2 KB)
文件类型: png 图片6.png (222.2 KB)
文件类型: png 图片7.png (194.9 KB)
文件类型: png 图片8.png (56.2 KB)
文件类型: png 图片9.png (32.4 KB)
文件类型: png 图片10.png (29.6 KB)
文件类型: png 图片11.png (58.2 KB)

Viewing all articles
Browse latest Browse all 9556

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>