大扎好,我又来发工具软文了。
47fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6Z5L8s2g2%4j5g2)9J5c8W2N6S2L8r3I4T1M7X3g2S2K9$3g2J5
Wallbreaker 取自 wikipedia 上对《三体》"破壁者"的翻译。
Wallbreaker
wikipedia
wallbreaker 是一个超级懒人(我)为了减少编写重复性垃圾代码而产生的一个工具,主要作用是将内存中 Java 类或对象的结构数据进行可视化。
就像介个亚子:
目前我是比较喜欢以 objection 插件的形式来使用,本来我也想自己写交互式控制台,但我觉得 objection 已经写得挺好,直接上车就好了,所以暂时不打算自己实现了。开发的时候就使用 ipython 或者写 testcase 调试。
objection
ipython
testcase
然后就可以愉快的使用 wallbreaker 的几个命令了:
wallbreaker
plugin wallbreaker classsearch <pattern>
根据给的 pattern 对所有类名进行匹配,列出匹配到的所有类名。
plugin wallbreaker objectsearch <classname>
根据类名搜索内存中已经被创建的实例,列出 handle 和 toString() 的结果。
handle
toString()
plugin wallbreaker classdump <classname> [--fullname]
输出类的结构, 若加了 --fullname 参数,打印的数据中类名会带着完整的包名。
--fullname
plugin wallbreaker objectdump <handle> [--fullname]
在 ClassDump 的基础上,输出指定对象中的每个字段的数据。
demo
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
@=llfly 大佬 classsearch 《==》 android hooking search classes com.class.name objectsearch 《==》 android h ...
1. 没啥优点,只是因为search instances似乎有bug经常搜不出来所以开放出来的命令2. *dump在一些难以静态分析的场景下比较有用处,也经常被我用来进行简单调试以快速验证思路。3. 不能,但之后可能会支持直接调用函数
生命练习生 能用到ios上就更好了。。
葫芦娃 好想法!万人血书 iOS 使用 Java 虚拟机!
DiamondH 你就不能给OC也写一个?然后再给Swift也写一个!
葫芦娃 那我还是给 iOS 写个 Java 虚拟机吧,名字就叫 manwe 如何