工具下载
下载完成后直接解压的文件夹就可以了
简单反包
先随便下载个Apk
winds+R然后在弹出的窗口输入cmd命令 回车进入
通过cd命令 切换到apktool.bat和apktool.jar所在的文件夹
当然你也可以通过配置系统环境变量这样就不用切换到目录下了,这里我就先不提了
然后执行
apktool.bat d -s
命令 后面加你要反编译的Apk包 -s的用处是阻止命令把 dex解析成smali文件 这里我需要dex文件就加上了
C:\Users\Administrator>D:
D:\>cd D:\Android 反包工具\apktools
D:\Android 反包工具\apktools>apktool.bat d -s "D:\Android apk\Test.apk"
I: Using Apktool 2.3.4 on Test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:\Users\Administrator\AppData\Local\apktool\framework), using C:\Users\ADMINI~1\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: C:\Users\ADMINI~1\AppData\Local\Temp\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Copying raw classes.dex file...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
D:\Android 反包工具\apktools>
这样就是编译完成了,然后你在apktool.bat所在的文件夹下就能够看到生成了一个为Apk名称的文件夹 我这里就是Test文件夹了这就是编译的东西。
打开Test文件可以看到这样的内容,这里我就先讲.dex文件
简单说 .dex文件就是源码在的地方我们主要就是看它这里只打包了一个.dex文件 看来方法比较少方法多的话会打包好几个dex文件。
接下来将dex文件转成jar文件,然后就可以用jd-gui打开查看转成的 jar文件是在 d2j-dex2jar.bat所在的文件夹下
D:\>cd D:\Android 反包工具\dex2jar-2.0
D:\Android 反包工具\dex2jar-2.0>d2j-dex2jar.bat "D:\Android 反包工具\apktools\Test\classes.dex"
是不是看到你熟悉的Java包了呢
Smali
有时候你会发现dex包转化成jar包错误,中途出现了问题用jd-gui打开看时候发现有些是a,b,c,d或者不能看的字符乱码。
那可能能apk的开发人员做了一些工作,比如混淆。
怎么生成smali文件:在执行apktool命令时候 不加-s 那么apktools命令会自动把dex解析成smali文件。
当然也可以用d2j-dex2smali.bat将 dex转成smail文件。