首页
社区
课程
招聘
[原创] 使用 Wallbreaker 快速分析 Java 类/对象结构
发表于: 2020-6-16 00:59 16299

[原创] 使用 Wallbreaker 快速分析 Java 类/对象结构

2020-6-16 00:59
16299

大扎好,我又来发工具软文了。

https://github.com/hluwa/Wallbreaker

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

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

就像介个亚子:

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

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

plugin wallbreaker classsearch <pattern>

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

plugin wallbreaker objectsearch <classname>

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

plugin wallbreaker classdump <classname> [--fullname]

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

plugin wallbreaker objectdump <handle> [--fullname]

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

demo


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2020-6-21 12:50 被葫芦娃编辑 ,原因:
收藏
免费 8
支持
分享
最新回复 (11)
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
2
看名字以为是翻墙工具~
2020-6-16 10:38
1
雪    币: 248
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
大佬 
classsearch  《==》 android hooking search classes com.class.name
objectsearch   《==》  android heap search instances com.class.name
相对于这两个自带命令有什么优点 ? 

ClassDump  有什么实际的用处 ?

ObjectDump  可以直接查看函数的结果吗 ?
2020-6-18 10:47
0
雪    币: 916
活跃值: (3434)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
@=llfly 大佬 classsearch  《==》 android hooking search classes com.class.name objectsearch   《==》  android h ...

1. 没啥优点,只是因为search instances似乎有bug经常搜不出来所以开放出来的命令
2. *dump在一些难以静态分析的场景下比较有用处,也经常被我用来进行简单调试以快速验证思路。
3. 不能,但之后可能会支持直接调用函数

最后于 2020-6-18 21:38 被葫芦娃编辑 ,原因:
2020-6-18 21:37
0
雪    币: 2281
活跃值: (12804)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
5
让我想起葫芦侠
2020-7-6 16:37
0
雪    币: 349
活跃值: (450)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
能用到ios上就更好了。。
2023-6-2 17:45
0
雪    币: 916
活跃值: (3434)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
生命练习生 能用到ios上就更好了。。
好想法!万人血书 iOS 使用 Java 虚拟机!
2023-6-2 18:43
0
雪    币: 1114
活跃值: (2094)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
葫芦娃 好想法!万人血书 iOS 使用 Java 虚拟机!
你就不能给OC也写一个?然后再给Swift也写一个!
2023-6-2 18:44
0
雪    币: 916
活跃值: (3434)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
9
DiamondH 你就不能给OC也写一个?然后再给Swift也写一个!
那我还是给 iOS 写个 Java 虚拟机吧,名字就叫 manwe 如何
2023-6-2 18:45
0
雪    币: 1114
活跃值: (2094)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
葫芦娃 那我还是给 iOS 写个 Java 虚拟机吧,名字就叫 manwe 如何
虚拟机核心功能是不是能在IOS上实现JIT?
2023-6-2 19:03
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark
2023-6-2 22:47
0
雪    币: 31
活跃值: (3269)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
missking 的 集成, 而来,寻源
2024-10-19 13:16
0
游客
登录 | 注册 方可回帖
返回
//