Android安全防护之旅---带你把Apk混淆成中文语言代码

本文介绍了一种将Android应用混淆成中文代码的方法,通过修改开源混淆工具Proguard的源码,使其生成中文词语。分析了混淆工具的工作原理,展示了如何将混淆规则应用于实际APK,增加了代码的阅读难度,提升应用安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               

一、前言

最近想爆破一个app,没有加壳,简单的使用Jadx打开查看源码,结果把我逗乐了,代码中既然都是中文,而且是一些比较奇葩的中文字句,如图所示:


瞬间感觉懵逼了,这app真会玩,我们知道因为Java语言是支持双字符的,所以可以将包名,类名,变量名,方法名定义成中文,或者其他国家的语言都可以的。所以本身这种做法是不会运行报错的,比如下面我们新建一个Java工程看一下效果:


运行是没有任何问题的。看到这里的时候觉得很好奇,所以就先没去看他的源码了,而是想着怎么实现这种混淆的功能。下面就来介绍一下这种高度混淆的原理:


二、分析混淆工具源码

首先我们知道每个正式app发布之前都会进行代码混淆,而关于混淆的知识点,可以自行搜索了解了,混淆有很多好处,优化代码,增加安全性等,而混淆一般是采用了proguard.jar工具,这个工具混淆之后的代码默认都是26个大小写字母,所以如果想把代码混淆成中文,那么就需要对这个工具下手。幸好这个工具是开源的,所以从网上搜他的源码下载下来,导入工程即可:


找到入口类Proguard,这里为了演示方便,咋们就直接模拟一个命令直接运行看效果,关于命令后面会说到。这里有一个解析命令的类功能:


这里可以看到混淆规则,也就是我们一般用到的proguard.cfg文件,后面会介绍这个文件内容。那么下面我们就不要在深入代码了,直接找到混淆代码的地方即可,可以通过包名中有obfuscate快速找到这个类:SimpleNameFactory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值