如何使用apktool测试混淆
发布网友
发布时间:2022-04-23 12:57
我来回答
共1个回答
热心网友
时间:2023-07-12 15:45
之前我曾经写过一篇如何为用ADT创建的Android项目添加Proguard混淆支持的文章(
为Eclipse ADT创建的android项目通过ant添加proguard混淆支持
),当时我就说过,相信随着Google Android的不断更新发展以及Eclipse ADT插件的不断改进,总有一天,做Android项目时能够和J2ME项目一样方便的一键打包混淆。现在新版的SDK和ADT就已经添加了这样的功能(SDK Tools中已经整合了Proguard的发行包,连这步配置都省了!),虽然还不是一键,但也就是小改一个配置文件的事,相对以前的手改ant xml build file的做法来说已经是极大的简化了添加混淆支持的难度了。
先说说我写这篇文章时用的开发环境:Eclipse 3.5.2+ADT 9.0.0+SDK Tools R9+SDK Platform-tools R2。
声明我不保证在其他版本的IDE ADT和SDK Tools下我的方法是否可行且不会产生问题!
有一个问题需要先注意一下,就是现在版本的SDK和ADT的整合Proguard混淆对有空格的SDK路径和项目路径支持不好,所以混淆之前先把空格路径的问题解决一下,虽然我记得之前的手改xml方法好像不太会有空格路径问题,不过这次还是不要在SDK和项目路径中出现空格为好,免得自找没趣。
其实在用比较新版的SDK和ADT创建Android项目时,你会发现生成的项目结构里多了一个以前没有的文件:proguard.cfg,这就是SDK整合了Proguard的一个重要标志(具体从哪版开始变成这样我还真没注意),有兴趣你可以打开看一下,做过原来ant xml方式混淆的朋友可以看出来这里面写的就是当初Proguard混淆target里的混淆设置参数,什么keep啊之类的,当时是要自己写,这次是SDK直接生成好了!
虽然有proguard.cfg,但是默认情况下,混淆是没有启用的,想打开混淆支持,只需要在default.properties中加入这样一段参数:proguard.config=proguard.cfg就可以了(注意:这个文件里的注释写着类似这个文件是自动生成的,所作修改可能会被覆盖等等,让把自定义的东西加到额外的build.properties里,其实也无所谓,盖了也就是一句话的事!),简单明了。
然后在执行项目打包apk时sdk就会自动添加Proguard混淆支持了,可以右键项目->Android Tools->Export Signed (或Unsigned) Application Package…,生成的apk包可以用如apktool解包看看混淆效果。
如何使用apktool测试混淆
解压刚刚下载的文件,并将解压的文件放入c:\windows目录下 启动控制台,输入apktool,回车可查看到apktool工具常用指令,如图 新建一个文件夹,用于存放apk及待解压的文件,这里笔者将文件夹建在d:\apk目录,同时放入用于测试的android app包(test.apk)控制台输入:apktool d d:\apk\test.apk d:\a...
android代码混淆以及怎么判断一个apk代码是否被混淆过
一、下载apktool工具 二、运行apktool.bat d xxx.apk,把apk反编译成smali 三、如果想要进一步查看源码,可下载smali2java 四、使用smali文件的文件名进行分析,如果存在1个或1个以上的资源类的smali文件,就可以证明该apk没有被混淆过。
android混淆代码@param cloudcallback怎么留
源码中的类名,方法名,变量名是否已经改变 方法二: 一、下载apktool工具 二、运行apktool.bat d xxx.apk,把apk反编译成smali 三、如果想要进一步查看源码,可下载smali2java 四、使用smali文件的文件名进行分析,如果存在1个或1个以上的资源类的smali文件,就可以证明该apk没有被混淆...
怎么用正则把混淆还原?
一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件 下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test (命令中...
Android项目里如何混淆自己打的jar包或者防止被反编译?
我们打出的apk是混淆的,根本原因是这样的。1、代码编译成class文件2、代码打成jar包3、混淆jar包4、用jar包生成classes.dex5、resources.ap_6、生成apk以及签名只不过工具帮我们一次性全做了,如果你要写批处理来做,就要按上面的步骤来做了。 到eoeAndroid网站查看回答详情>> ...
apktool回编360加固的apk出现:qihoo 属性的错误。
1)APKtool2)dex2jar3)jd-gui4)签名工具相关技术的基本要求1)具有一定的阅读JAVA代码的能力2)稍微有点Android基础,越多越好3)会用eclipse的一些Android调试的相关工具4)了解一下smali的语法规范和字段的自定范围5)有点应变能力思想转换能力、6)虽然代码的修改是修改其smali文件(用到smali语法),虽然...
如何在Mac上面进行AndroidApk反编译
如果是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool 下载地址:下载:apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)具体步骤:将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar 在命令行...
Android APP的破解技术有哪些?如何防止反编译
1)APKtool 2)dex2jar 3)jd-gui 4)签名工具 防止反编译,介绍一种有效对抗native层代码分析的方法——代码混淆技术。代码混淆的学术定义如下:代码混淆(code obfuscation)是指将计算机程序的代码,转换成一种功能上等价,所谓功能上的等价是指其在变换前后功能相同或相近。其解释如下:程序P经过混淆变换...
APP漏洞如何检测,如何检测出app有漏洞?
1 程序机密性检测:检查代码混淆、dex保护监测、so保护监测、程序签名检测等安全问题。2 组件安全检测:扫描代码组件的Activity、Broadcast Receiver、service、Content Provider存在的安全漏洞。3 数据及业务安全检测:检测APP是否存在数据安全问题,用户账号密码泄漏等风险。参考内容:http://www.ineice.com/ ...
android 加入library如何混淆
1.在proguard-project.txt文件中添加不需要混淆的类和第三方的jar包 这个是保持自己包中不需要混淆的类,如果有些类调用了jni也不需要混淆,不然会出错。还有如果项目中有其他项目作为library引入,那这些项目的一些类也不能混淆。这个是保持项目中的第三方jar不混淆 另外加上上面几句话,不然会在控制台...