image-20210718135911756
上图有的工具不是最新版,主要是因为懒得去更新,而不是因为我选的这个版本版本稳定啊之类的。
下面用网上的一个apk样本,和我自己写的一个apk样本, 简单说一下这三个工具的优缺点。
01 apk样本相关
样本1
来源:
https://www.52pojie.cn/thread-311989-1-1.html
样本1 是被 dexguard加固壳加固过的样本,dexguard在国内用户不多,是歪果仁写的加固壳, 这个加固壳的特点就是,java层混淆很强,比国内的很多壳强多了。
这个样本是14年的,混淆不是那么变态,这两年的dexguard真是让人看了就想直接回收站。
image-20210717142632323
样本2
来源:一个不愿透漏姓名的某铁头 自己写的
某铁头自己写的这个apk,写了一个字符串加密的方法,并且进行了调用,就是为了让大佬们对比某工具,反混淆优化的效果。
image-20210718145316084
之所以选择这两个样本,是为了更好的展示这几个反编译器的优缺点。
02 JADX-GUI 登场
github地址:https://github.com/skylot/jadx
编译好的release版本地址: https://github.com/skylot/jadx/releases
当前演示版本:1.2.0
Jadx-Gui的优点
1.反编译的代码可读性强
1.1 有调试信息的apk反编译对比:
首先看源代码
image-20210717154736883
image-20210717153949792
image-20210717154456741
在有调试信息的apk里, 完美还原了所有的变量名。
看完smali, 看看反编译的java代码。
image-20210717234041817
这里看看友商的表现
1.1.1 jeb出来挨锤
首先是 debug版带调试信息apk Jeb 和 Jadx反编译的对比
这里可以看到,参数和一个局部变量的名字并没有完美还原。
image-20210718000632314
行吧,下一个。
行吧 这一场 jadx-gui 成功 ko Jeb .
1.1.2 GDA出来挨锤
image-20210718004615153
这里e2 我猜测作者 可能是考虑到多重异常嵌套的情况下
为了区分,所以加了一个随机数?
但是这里类型都错了还是比较减分的。
同样的问题,换到3.85就没有了, 这里想着,可能是GDA作者做新功能 类似frida 支持啊之类的太累,所以出了bug?
image-20210718183131721
行吧 下一个吧。
这一场 jadx-gui 成功 ko GDA .
1.2 无调试信息 被混淆过的apk反编译对比:
如果没有调试信息,又会咋样呢?
这里找了一个用Proguard混淆过代码,并且删除过.source信息的样本。
image-20210717180807532
image-20210719000739307
这里看看jadx对方法体对代码的还原。
image-20210717181451405
这里可以看到,在没有任何调试信息,还被Proguard混淆过后,Jadx自己实现了一套重命名的规则。
简直是福音一样,代码变得清晰可见,吊打友商。
看看友商是啥样
1.2.1 GDA和JEB同时被锤。
image-20210719000610974
这里GDA和jeb两个友商恢复的代码,可读性都不咋样
不管是 p0 p1 p2 还是 arg8 arg10 arg11
可读性都不强,自己一个一个改 可太累了
2. 字符串 搜索简单便捷 展示信息全
image-20210719020101968
2.1 GDA出来挨锤
image-20210718011005022
这里GDA搜索字符串 详情,只展示了字符串信息,没展示引用代码。
字符串所在的方法,对应的包名啊类名啊,都没有展示。
这里字符串少还好,如果十多个地方引用到了,我不得看看包名,类名,引用代码,然后定位我想要分析的位置吗。
害,下一个。
2.2 JEB出来挨锤
image-20210718011140925
查看引用之后
image-20210718011216640
JEB这里搜索字符串这个步骤 就比较麻烦了,
多了一个查看交叉引用的操作,把操作分解成了2个操作。
而且详情展示这里,展示的也不是java代码 ,而是smali, 咋,是让我人肉翻译成java吗?
行吧,下一个
3. 免费
另外两个工具,JEB Pro 和 GDA Pro都是收费的
这个没啥说的,恰饭挺正常的。
jadx-gui 不要钱就是香。
持续更新移动安全,iot安全,编译原理相关原创视频文章
视频演示:https://space.bilibili.com/430241559

评论列表