Android动态逆向分析工具Andbug之大体操作.docx
《Android动态逆向分析工具Andbug之大体操作.docx》由会员分享,可在线阅读,更多相关《Android动态逆向分析工具Andbug之大体操作.docx(17页珍藏版)》请在冰豆网上搜索。
![Android动态逆向分析工具Andbug之大体操作.docx](https://file1.bdocx.com/fileroot1/2023-2/8/cec8af33-694c-45ac-ba51-88d7b89a4adb/cec8af33-694c-45ac-ba51-88d7b89a4adb1.gif)
Android动态逆向分析工具Andbug之大体操作
Android动态逆向分析工具——Andbug之大体操作
一、Andbug的大体操作一、下载andbug修改版本:
gitcloneanbc/作者原版本:
gitcloneswdunlop/AndBug
二、对andbug的部份模块进行编译在Andbug文件夹中利用make命令进行编译
3、对文件途径进行设置
在Andbug文件夹中的andbug文件中,以下修改,修改中的途径,比如作者将Andbug下载到了“/home/anbc/test/test/Andbug/”途径中,将[
4、启动虚拟机emulator-avdAndroid_3
五、查看当前的进行信息
能够看到阅读器应用的进程id是920,包名是:
六、启动andbug./andbugshell-pAndbug有两种启动方式,一种是以进程id方式启动,一种是以包名方式启动通过进程id或包名指定对某个apk进行调试。
如图:
以包名方式启动,进入andbug的shell中
7、列举apk中的类信息命令:
classes作用:
列举出指定apk中利用的所有的Class信息,包括apk中自己实现的Class和所挪用的系统class信息
另外classes命令后边能够跟Class名称的信息,通过添加名称信息,能够列举出符合条件的class的信息。
如:
classesapp如图,列举出所有类途径中包括了app字符串的类信息
八、列举指定类的方式信息命令:
methods功能:
列举出类中的所有方式信息
其中以p/NotificationManager;为例。
——为类名from——函数名Landroid/content/Context;——from函数的参数类型Landroid/app/NotificationManager;——from函数的返回值类型九、断点操作对类设置断点,所有设计该类的操作都会终止下来break
能够通过break-list命令查看断点设置情形
对方式进行断点设置通过下面命令对函数进行中断>>breakdelete
断点触发的情形设置断点后,操作apk程序,一旦程序动身了某个设置的断点,整个程序就会挂起,并显示相关信息。
通过输出的信息能够明白,apk由于挪用了函数被中断下来。
其他信息还包括整个挪用函数的堆栈信息。
删除已设置断点
通过break-remove6将之前设置的中断删除掉
另外:
break-removeall表示删除所有当前设置的断点。
10、恢复运行命令:
resume功能:
触发断点整个进程暂停后,通过挪用resume命令,继续运行该apk注:
由于代码中bug的缘故,需要持续两次挪用resume命令才能恢复apk的运行
如上图,执行两次resume命令后,恢复apk的运行,由于对整个类设置了断点,应用又中断在上。
1一、进程暂停命令命令:
suspend功能:
暂停当前apk进程
由于尚未与该命令配合利用的命令,实际利用中没有太大作用1二、帮忙命令help
13、class-trace类跟踪命令命令:
class-trace功能:
对类的挪用情形进行跟踪能够看到“thread<15>BackgroundHandler”线程,挪用了“,挪用的参数是:
--this=Ljava/io/File;<2096>--newPath=Ljava/io/File;<7352>而且能够看到整个的堆栈挪用的情形。
取消跟踪也能够利用break-remove命令实现。
14、method-trace方式跟踪命令命令:
method-tracerenameTo功能:
对renameTo函数进行跟踪,跟踪与直接设置断点的不同是,利用跟踪不中断目标进程的执行,只对相应函数的挪用信息进行输出。
获取函数挪用的跟踪信息
1五、列举当前线程信息命令:
threads
1六、对线程进行跟踪
命令:
thread-trace将main线程设置为跟踪县城,所有main县城相关的挪用都会被跟踪下来,如下图:
会列出函数挪用的情形,参数,和堆栈情形。
17、显示指定类中的静态变量的信息命令:
statics
1八、查看对象信息通过class-trace命令能够跟踪到目标函数中对象的Id信息,
通过对象的Id利用inspect命令,能够查处该队形的详细信息。
由于在break命令设置断点后,触发断点时反馈的信息,没有包括ObjectId的信息,致使inspect命令用起来不是很方便。
1九、源码关联命令命令:
source与源代码关联起来,能够是smali代码。
命令:
dump展现指定方式的代码。
20、Web输出命令命令:
navi注:
为了支持navi命令,需要安**ottle库。
需要bottle库。
应该是一个web展现的页面需要安**ottle库,来实现。
2一、退出命令命令:
exit
Android动态逆向分析工具
(二)——Andbug扩展功能
标题:
【原创】Android动态逆向分析工具
(二)——Andbug扩展功能作者:
anbc时间:
2021-01-05,10:
40:
29链接:
本文所述功能是在andbug原有功能的基础上实现的信息的功能,包括对apk运行时行为监控功能的实现,和获取apk更详细信息的功能的实现。
Andbug作为一个用于动态逆向分析apk的工具来讲目前只实现了相对简单的功能,还不能算是一个完整功能的调试器。
好在原作者将工具的所有代码都开源了,咱们能够依照自己的实际需求增加信息功能,本文作者要紧增加了对apk运行时的行为进行动态监控的功能,详细信息位于:
anbc/AndBug/。
还有很多功能需要咱们进一步实现,本文后脸部份也会列出一些,文本作者以为需要增加的功能点。
一、扩展功能实现一、davlik虚拟的对java的支持情形
具体含义请查阅相关资料二、类的详情命令:
class-detail功能:
展现出指定类的成员方式、成员变量和静态变量的信息
3、方式的详细内容命令:
method-detailmkdir
4、对apk的运行进行监控执行监控命令命令:
./andbugmonitor-p功能:
对阅读器的运行情形进行监控
、监控点在文件中配置
、监控到的日记信息
、可视化处置后的监控数据
需要进一步完善的功能一、断点设置功能 目前的断点设置功能,仅支持类和方式上设置断点,在代码的其他未知还不支持设置断点。
要想实现一个完整的逆向调试器,需要实现更丰硕的断点功能。
二、单步伐试功能 目前调试器还不支持单步伐试功能,只能在具体函数挪用途设置断点对该处程序的运行情形进行查询,需要进一步增加单步伐试功能,包括 调试时与代码的关联处置 目前尽管后关联源码的的功能,可是很不完善。
关联是需要进一步别离支持汇编代码和java代码不同源码形式的关联,而且将源码显示和断点设置,单步伐试等功能联动起来,才是一个完整的逆向调试功能。
4、对运行中的apk应用的行为进行动态监控 这部份作者已经增加了一部份功能,可是还很不完善,很多功能需要细化。
欢迎大伙儿一路交流。
五、其他功能的丰硕 目前就想到了这些待实现的功能,能够丰硕的功能还有很多。