使用 Wallbreaker 快速分析 Java 类/对象结构

admin 2023年5月16日07:58:23评论34 views字数 1139阅读3分47秒阅读模式


Wallbreaker

https://github.com/hluwa/Wallbreaker (阅读原文跳转)

Wallbreaker 取自 wikipedia 上对《三体》"破壁者"的翻译。

wallbreaker 是一个超级懒人(我)为了减少编写重复性垃圾代码而产生的一个工具,主要作用是将内存中 Java 类或对象的结构数据进行可视化。

就像介个亚子:

使用 Wallbreaker 快速分析 Java 类/对象结构

应用场景

群友1: 大佬们,`[object Object]`怎么取出来?
答: 使用 wallbreaker.

群友2: 大佬们,脱不下壳怎么进行动态分析?
答: 使用 wallbreaker.

群友3: 大佬们,怎么找一个接口类的实现类?
答: 使用 wallbreaker.

群友4: 大佬们,不会写代码怎么做 Android 逆向? (想多了,不存在的)
答: 使用 wallbreaker.

...

如何使用

目前我是比较喜欢以 objection 插件的形式来使用,本来我也想自己写交互式控制台,但我觉得 objection 已经写得挺好,直接上车就好了,所以暂时不打算自己实现了。开发的时候就使用 ipython 或者写 testcase 调试。

objection

  1. 安装 objection: pip3 install objection
  2. 下载 wallbreaker 到自己的插件目录: git clone https://github.com/hluwa/Wallbreaker ~/.objection/plugins/Wallbreaker
  3. 启动frida-server,使用 -P 参数带着插件启动 objection: objection -g com.app.name explore -P ~/.objection/plugins

然后就可以愉快的使用 wallbreaker 的几个命令了:

搜索类

plugin wallbreaker classsearch <pattern>

根据给的 pattern 对所有类名进行匹配,列出匹配到的所有类名。

搜索对象

plugin wallbreaker objectsearch <classname>

根据类名搜索内存中已经被创建的实例,列出 handletoString() 的结果。

ClassDump

plugin wallbreaker classdump <classname> [--fullname]

输出类的结构, 若加了 --fullname 参数,打印的数据中类名会带着完整的包名。

ObjectDump

plugin wallbreaker objectdump <handle> [--fullname]

在 ClassDump 的基础上,输出指定对象中的每个字段的数据。

演示视频

点击阅读原文见 Readme 中的 demo video


原文始发于微信公众号(秃头的逆向痴想):使用 Wallbreaker 快速分析 Java 类/对象结构

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月16日07:58:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用 Wallbreaker 快速分析 Java 类/对象结构http://cn-sec.com/archives/799794.html

发表评论

匿名网友 填写信息