首页
社区
课程
招聘
[原创]Android动态逆向分析工具(二)——Andbug扩展功能
2014-1-5 10:40 18887

[原创]Android动态逆向分析工具(二)——Andbug扩展功能

2014-1-5 10:40
18887
  本文所述功能是在andbug原有功能的基础上实现的信息的功能,包括对apk运行时行为监控功能的实现,以及获取apk更详细信息的功能的实现。
  Andbug作为一个用于动态逆向分析apk的工具来说目前只实现了相对简单的功能,还不能算是一个完整功能的调试器。好在原作者将工具的所有代码都开源了,我们可以根据自己的实际需求增加信息功能,本文作者主要增加了对apk运行时的行为进行动态监控的功能,详细信息位于:https://github.com/anbc/AndBug/。还有很多功能需要我们进一步实现,本文后面部分也会列出一些,文本作者认为需要增加的功能点。
  

一、扩展功能实现
1、davlik虚拟的对java的支持情况

具体含义请查阅相关资料

2、类的详情
命令:class-detail java.io.File
功能:展示出指定类的成员方法、成员变量和静态变量的信息




3、方法的详细内容
命令:method-detail java.io.File mkdir


4、对apk的运行进行监控
4.1执行监控命令
命令:./andbug monitor -p com.android.browser
功能:对浏览器的运行情况进行监控



4.2、监控点在monitor_fun.conf 文件中配置


4.3、监控到的日志信息


4.4、可视化处理后的监控数据


需要进一步完善的功能
1、断点设置功能
  目前的断点设置功能,仅支持类和方法上设置断点,在代码的其他未知还不支持设置断点。要想实现一个完整的逆向调试器,需要实现更丰富的断点功能。

2、单步调试功能
  目前调试器还不支持单步调试功能,只能在具体函数调用处设置断点对该处程序的运行情况进行查询,需要进一步增加单步调试功能,包括
  
调试时与代码的关联处理
  目前虽然后关联源码的的功能,但是很不完善。关联是需要进一步分别支持汇编代码和java代码不同源码形式的关联,并且将源码显示和断点设置,单步调试等功能联动起来,才是一个完整的逆向调试功能。

4、对运行中的apk应用的行为进行动态监控
  这部分作者已经增加了一部分功能,但是还很不完善,很多功能需要细化。欢迎大家一起交流。

5、其他功能的丰富
  目前就想到了这些待实现的功能,可以丰富的功能还有很多。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (17)
雪    币: 6031
活跃值: (3950)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
pxhb 2 2014-1-5 12:13
2
0
收藏备用
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
Claud 6 2014-1-5 13:12
3
0
这是我在版面看到过最好的文章之一!楼主加油。

在AndBug上增加其他类型的断点是可以做到的。

这两份笔记也许能提供一些帮助:

http://yurushao.net/2013/09/android-breakpoints/

http://yurushao.net/2013/09/jdwp-thread-and-dalvik-stack/
雪    币: 138
活跃值: (460)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Nermor 1 2014-1-5 13:19
4
0
哈, 好东西~  

关于ELF的调试 ,多线程的 ; 不知道 有没有同学有好的解决方案。
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
ReturnsMe 2 2014-1-7 15:58
5
0
牛逼 怒顶~
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
ReturnsMe 2 2014-1-7 16:01
6
0
这个同困扰
雪    币: 111
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ziliansha 2014-1-11 08:53
7
0
好文,回头自己试试
雪    币: 576
活跃值: (1359)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
我是土匪 4 2014-4-3 21:50
8
0
实验了一下,好多api都hook失败了,不知道是什么原因,Android 4.1.2的模拟器。

另:我要查看一个https提交的表单数据,该hook哪个函数呢?
雪    币: 259
活跃值: (63)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
anbc 3 2014-4-29 11:36
9
0
混淆后的应用,发现只能hook系统函数,应用自己实现的函数hook会失败,还没找到原因是什么。
目前andbug还很不完善,运行过程中会遇到种种问题,希望大家能加入进来完善代码。
雪    币: 64
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
javashr 2014-7-1 23:04
10
0
不能在xp下使用吧,楼主
雪    币: 335
活跃值: (218)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
peterchen 2014-7-2 10:24
11
0
这个必须是linux
雪    币: 8029
活跃值: (3182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ldljlzw 2014-7-2 15:40
12
0
很是晕死人的~~~
雪    币: 1030
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ForrestV 2014-7-3 11:33
13
0
准备自己扩展一下。
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
silenthawk 2014-7-6 14:48
14
0
····
雪    币: 259
活跃值: (63)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
anbc 3 2014-7-14 11:18
15
0
其实原理上在window平台下也是可以使用的,目前只能在linux下使用的原因是,作者为了提高效率,部分代码没有使用python实现,而是使用c语言实现并编译成so文件,再用python调用so文件的方式,提高效率,看过c代码,基本上平台性调用,主要实现数据处理功能,将c代码重新编译成dll应该问题不大。
雪    币: 334
活跃值: (92)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
岭南散人 1 2015-12-12 09:16
16
0
听说作者已不更新了,不知是什么 原因,还有楼主,你follow的andbug好像有些bug,也可能是原来程序就有的。

比如说我要method-detail 某个类中的函数,如果是代码经过混淆的话,比如说类中有int a(),ArrayList a();函数
那么python会报错,我py菜,也没跟踪研究过为什么会出错。感觉这个工具是不错的,不更新实在可惜。
雪    币: 259
活跃值: (63)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
anbc 3 2016-3-2 10:06
17
0
确实有很多bug,很抱歉没有经过严格测试,一起加入进来完善吧。
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yelam 2017-3-29 17:46
18
0
windows 下也是可以的 http://blog.csdn.net/weixin_37556843/article/details/68063398
游客
登录 | 注册 方可回帖
返回