王尘宇王尘宇

研究百度干SEO做推广变成一个被互联网搞的人

反编译工具篇 1) jadx 爆锤 jeb 和 GDA


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

相关文章

评论列表

发表评论:
验证码

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。