吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4532|回复: 95

[原创逆向图文] Java层代码混淆

  [复制链接]
1122cf 发表于 2020-9-27 11:54 | 显示全部楼层 |阅读模式

本帖最后由 1122cf 于 2020-9-27 11:58 编辑

在分析一个程序的Java层逻辑,进行反编译时,偶尔会发现代码中所有的函数名、变量名、类名等都变成了一些杂乱无章的名字,它们没有任何规律可言,这就是程序的混淆。

Java代码混淆就是为了保护Java源代码,对编译好的class文件进行混淆处理。混淆就是对发布出去的程序进行重新组织和处理,通过一些工具,对函数名、变量名、类名、字段进行批量重命名。使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义。

1.1  混淆的例子及作用

学习混淆之前,先来看一下没有被混淆的例子,下面是程序的反编译,如下图所示。

图片1.png

从图中可以发现,这里的反编译逻辑非常清楚,反编译之后的源码和当时写的代码完全相同。

保护Java源代码的第一步就是混淆,对代码进行修改,让反编译出来的代码不容易被看懂,具体的操作流程如下所示。

1.打开androidkiller工具,如下图所示。

图片2.png

2.打开其中一个smali文件夹,如图1.3所示。打开后,发现里面内容已被修改,正常开发中不会存在这种命名,如下图所示。

图片3.png 图片4.png

3.任意打开其中一个文件,会发现代码也发生了相应的变化,如下图所示。

图片5.png

4.此时需要借助jdax-gui工具,将代码进行还原处理,如下图所示。

图片6.png

5.还可以借助一些工具,达到简单混淆的目的,点击面层菜单中的图标,它会将把代码重新混淆,如下图所示。

图片7.png

6.再次打开,则会对代码重新反编译并且重命名,更加方便我们进行区分,如下图所示。

图片8.png

注意:混淆只是增加逆向的时间,但整体的逻辑不会混淆。也就是说,代码混淆并不能一劳永逸地解决代码保护的问题,它只是把读代码的时间变得比开发代码的时间还要长。

1.2  ProGuard介绍以及混淆特点

ProGuard就是一个混淆代码的开源项目,能够对字节码进行混淆、缩减体积、优化等处理。ProGuard还包括以下4个功能:

1. 压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。
2. 优化(Optimize):对字节码进行优化,移除无用的指令。
3. 混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名。
4. 预检(Preveirfy):在Java平台上对处理后的代码进行预检,确保加载的class文件是可执行的。

总而言之,Proguard是一个Java类文件压缩器、优化器、混淆器、预校验器。压缩环节会检测以及移除没有用到的类、字段、方法以及属性。优化环节会分析以及优化方法的字节码。混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(逆向)。

ProGuard工作原理
ProGuard由shrink、optimize、obfuscate和preveirfy四个步骤组成,每个步骤都是可选的,我们可以通过配置脚本来决定执行其中的哪几个步骤。

图片9.png

小结
通过本次的分享,我们知道了混淆的概念是指通过一些工具,对函数名、变量名、类名,字段进行重命名。同时,对混淆和非混淆例子之间的区别以及混淆的特点也有了一定的了解。

如果你也对安卓逆向感兴趣,欢迎到评论区留言,有问题也可以及时更新的

如果对你有帮助,大家给评评分,评分是免费的

评分

参与人数 19威望 +1 HB +41 THX +6 收起 理由
lies + 1
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
459121520 + 1
大龙科技 + 1
消逝的过去 + 2
sjtkxy + 1 + 1
冷亦飞 + 1
天使替我爱你 + 1
zyyujq + 1
1271791345 + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
dDack + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
alles + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
playboy + 2
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
我是好人 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
绝版小胖 + 1
拿着雪糕 + 1 + 1
king51999 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
Shark恒 + 1 + 20 + 1 [快捷评语]--你将受到所有人的崇拜!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lvbuqing 发表于 2020-9-27 14:40 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 1122cf 发表于 2020-9-27 16:41 | 显示全部楼层

混淆是比加固少,但是还是有的,就学学看嘛
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
13775954419 发表于 2020-10-27 16:49 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
拿着雪糕 发表于 2022-1-30 12:13 | 显示全部楼层

感谢分享,学习一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
SzuPpJd5860 发表于 2022-3-1 01:19 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
LSABYgo2164 发表于 2022-3-6 18:58 | 显示全部楼层

谢谢!看起来就比较高大上
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
wAYxfpIgc 发表于 2022-3-6 20:39 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
SuCRI 发表于 2022-3-6 20:44 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
WGIJlqH 发表于 2022-3-6 21:01 | 显示全部楼层

不知道来晚了没有
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表