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

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

2014-1-5 10:40
19434

  本文所述功能是在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直播授课

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

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

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

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

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

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

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

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