Wallbreaker
https://github.com/hluwa/Wallbreaker (阅读原文跳转)
Wallbreaker
取自 wikipedia
上对《三体》"破壁者"的翻译。
wallbreaker 是一个超级懒人(我)为了减少编写重复性垃圾代码而产生的一个工具,主要作用是将内存中 Java 类或对象的结构数据进行可视化。
就像介个亚子:
应用场景
群友1: 大佬们,`[object Object]`怎么取出来?
答: 使用 wallbreaker.
群友2: 大佬们,脱不下壳怎么进行动态分析?
答: 使用 wallbreaker.
群友3: 大佬们,怎么找一个接口类的实现类?
答: 使用 wallbreaker.
群友4: 大佬们,不会写代码怎么做 Android 逆向? (想多了,不存在的)
答: 使用 wallbreaker.
...
如何使用
目前我是比较喜欢以 objection
插件的形式来使用,本来我也想自己写交互式控制台,但我觉得 objection
已经写得挺好,直接上车就好了,所以暂时不打算自己实现了。开发的时候就使用 ipython
或者写 testcase
调试。
objection
-
安装 objection
:pip3 install objection
-
下载 wallbreaker
到自己的插件目录:git clone https://github.com/hluwa/Wallbreaker ~/.objection/plugins/Wallbreaker
-
启动frida-server,使用 -P
参数带着插件启动objection
:objection -g com.app.name explore -P ~/.objection/plugins
然后就可以愉快的使用 wallbreaker
的几个命令了:
搜索类
plugin wallbreaker classsearch <pattern>
根据给的 pattern 对所有类名进行匹配,列出匹配到的所有类名。
搜索对象
plugin wallbreaker objectsearch <classname>
根据类名搜索内存中已经被创建的实例,列出 handle
和 toString()
的结果。
ClassDump
plugin wallbreaker classdump <classname> [--fullname]
输出类的结构, 若加了 --fullname
参数,打印的数据中类名会带着完整的包名。
ObjectDump
plugin wallbreaker objectdump <handle> [--fullname]
在 ClassDump 的基础上,输出指定对象中的每个字段的数据。
演示视频
点击阅读原文见 Readme 中的 demo video
原文始发于微信公众号(秃头的逆向痴想):使用 Wallbreaker 快速分析 Java 类/对象结构
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论