android应用是否混淆过和apktool的使用

来源:互联网 发布:鄂尔多斯网络推广招聘 编辑:程序博客网 时间:2024/06/07 22:15

1.应用是否混淆过?

 方案一:

         一、 下载dex2jar包,解压

         二、把apk包的后缀名改为.zip

         三、把apk压解压拿到classes.dex文件,并放到dex2jar所在的目录下

         四、运行命令dex2jar.exe  classes.dex

         五、下载jd-gui

         六、把jar包加载到jd.gui,查看源码,源码中的类名,方法名,变量名是否已经改变

 

   方法二:

      一、下载apktool工具

      二、运行apktool.bat d xxx.apk,把apk反编译成smali

      三、如果想要进一步查看源码,可下载smali2java

      四、使用smali文件的文件名进行分析,如果存在1个或1个以上的资源类的smali文件,就可以证明该apk没有被混淆过。如下图所示:

     

 备注:是apk的核心代码下的资源文件在混淆后不应该出现上述文件,反之则说明该apk没有进行混淆;使用方案一也是要进入核心代码

2.apktool的使用

 下载地址:https://ibotpeaches.github.io/Apktool/install/

备注:网址内是英文,如果小伙伴英文不好,可以使用google浏览器有中英文转换,配置步骤在下载页面可以看到

第一步:检测是否配置成功:在cmd命令行中输入apktool

 

这是配置成功的界面

第二步:将要反编译的apk存放在一个文件夹中,并在命令行中切换到文件夹路径 


接下来为apktool安装框架。

在命令提示符窗口输入 

apktool if framework-res.apk   回车

这样框架就会自动安装好。

下面可以正常进行apk的反编译和回编译了。命令如下

apktool d xxx.apk     →这是反编译命令。xxx.apk就是在E:/apktool目录下欲反编译的apk文件

apktool b xxx       →这是回编译命令。xxx就是反编译后的文件所在文件夹,这个文件夹一般是以之前反编译的文件名为名称,例如我反编译SystemUI.apk,就会在E:/apktool目录下生成一个SystemUI文件夹,回编译命令就可以这样写“apktool b SystemUI”。回编译完成会在SystemUI文件夹生成一个dist文件夹和一个build文件夹。dist文件夹里面存放的就是回编译后不带有签名的apk文件,build文件夹里面还有一个apk文件夹,里面存放的就是回编译后没有打包成apk的文件。


反编译后生成的文件在你的目录下



原创粉丝点击