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

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

2014-1-5 10:40
19614

  本文所述功能是在andbug原有功能的基础上实现的信息的功能,包括对apk运行时行为监控功能的实现,以及获取apk更详细信息的功能的实现。
  Andbug作为一个用于动态逆向分析apk的工具来说目前只实现了相对简单的功能,还不能算是一个完整功能的调试器。好在原作者将工具的所有代码都开源了,我们可以根据自己的实际需求增加信息功能,本文作者主要增加了对apk运行时的行为进行动态监控的功能,详细信息位于:957K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2L8X3u0U0i4K6u0r3b7h3&6V1b7Y4g2Y4i4K6u0r3i4@1f1K6i4K6R3H3i4K6R3J5i4@1f1^5i4@1u0r3i4K6V1^5i4@1f1$3i4K6W2o6i4K6R3&6i4@1f1#2i4@1u0q4i4K6R3^5i4@1f1#2i4@1p5@1i4K6W2m8i4@1f1#2i4K6S2m8i4K6W2r3i4@1f1^5i4K6R3K6i4@1u0p5i4@1f1&6i4K6W2o6i4K6R3H3i4@1f1^5i4@1p5$3i4K6R3I4i4@1f1$3i4K6R3^5i4K6V1I4i4@1f1@1i4@1u0n7i4@1q4o6i4@1f1^5i4@1u0r3i4K6W2n7i4@1f1@1i4@1t1^5i4K6R3H3i4@1f1$3i4@1q4p5i4@1p5#2i4@1f1#2i4@1q4q4i4K6W2q4i4@1f1%4i4K6S2q4i4@1t1H3i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4K6W2o6i4@1q4o6i4@1f1$3i4K6V1$3i4K6R3%4i4@1f1#2i4K6V1H3i4K6S2q4i4@1f1&6i4K6W2p5i4@1p5J5i4@1f1&6i4K6R3K6i4@1p5^5i4@1f1#2i4K6R3^5i4K6R3$3i4@1f1@1i4@1t1&6i4K6W2r3i4@1f1@1i4@1u0o6i4K6W2m8i4@1f1#2i4K6R3^5i4K6V1%4i4@1f1#2i4K6R3%4i4@1u0m8i4@1f1@1i4@1t1^5i4K6R3H3i4@1f1@1i4@1u0m8i4K6W2n7i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4K6V1$3i4K6R3%4i4@1f1$3i4K6W2o6i4@1q4o6i4@1f1@1i4@1u0p5i4K6W2o6i4@1f1^5i4K6R3H3i4K6R3#2i4@1f1^5i4@1q4q4i4@1p5@1i4@1f1@1i4@1t1^5i4@1u0m8i4@1f1&6i4K6W2o6i4K6R3H3i4@1f1^5i4@1p5$3i4K6R3I4i4@1f1#2i4@1p5J5i4K6W2q4i4@1f1#2i4K6S2m8i4@1p5H3i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1#2i4K6S2m8i4K6W2r3i4@1f1^5i4K6R3K6i4@1u0p5i4@1f1%4i4K6R3J5i4@1t1&6i4@1f1K6i4K6R3H3i4K6R3J5
  

一、扩展功能实现
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)
雪    币: 7278
活跃值: (5356)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
收藏备用
2014-1-5 12:13
0
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
3
这是我在版面看到过最好的文章之一!楼主加油。

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

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

923K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4W2#2M7Y4g2K6K9r3q4G2i4K6u0W2L8X3g2@1i4K6u0r3x3U0l9I4x3#2)9J5c8U0l9&6i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5k6r3u0J5k6h3q4C8M7r3!0A6L8Y4c8K6i4K6u0r3

213K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4W2#2M7Y4g2K6K9r3q4G2i4K6u0W2L8X3g2@1i4K6u0r3x3U0l9I4x3#2)9J5c8U0l9&6i4K6u0r3K9X3c8%4M7q4)9J5k6s2c8Z5M7X3g2S2k6q4)9J5k6r3q4F1k6q4)9J5k6r3c8S2L8s2k6A6K9#2)9J5k6s2y4@1j5h3y4C8i4K6u0r3
2014-1-5 13:12
0
雪    币: 138
活跃值: (555)
能力值: ( 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
雪    币: 486
活跃值: (2148)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
8
实验了一下,好多api都hook失败了,不知道是什么原因,Android 4.1.2的模拟器。

另:我要查看一个https提交的表单数据,该hook哪个函数呢?
2014-4-3 21:50
0
雪    币: 259
活跃值: (83)
能力值: ( 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
活跃值: (671)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个必须是linux
2014-7-2 10:24
0
雪    币: 9947
活跃值: (5746)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
很是晕死人的~~~
2014-7-2 15:40
0
雪    币: 1030
活跃值: (369)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
准备自己扩展一下。
2014-7-3 11:33
0
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
····
2014-7-6 14:48
0
雪    币: 259
活跃值: (83)
能力值: ( 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
活跃值: (83)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
17
确实有很多bug,很抱歉没有经过严格测试,一起加入进来完善吧。
2016-3-2 10:06
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
windows 下也是可以的 b0cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3N6$3g2A6P5r3W2F1i4K6g2X3x3K6M7#2y4e0j5^5y4o6y4Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0r3k6r3g2@1j5h3W2D9M7#2)9J5c8U0j5^5x3o6j5K6x3K6V1^5
2017-3-29 17:46
0
游客
登录 | 注册 方可回帖
返回