關(guān)于apk 逆向中的一些工具的使用冰更,看了不少文章绽榛,也使用過有很長(zhǎng)一段時(shí)間了,今天對(duì)此做一總結(jié):
幾種文件之間的轉(zhuǎn)換命令:
-
odex -> smali
java -jar baksmali.jar -a <api_level> -x <odex_file> -d <framework_dir>
-
smali ->dex
java -Xmax512M -jar samli-2.0.jar <smali_dir> -o classes.dex
-
dex ->odex
在android平臺(tái)下使用命令dexopt-wrapper實(shí)現(xiàn):dexopt-wrapper 123.apk 123.odex
-
對(duì)odex的簽名,用于對(duì)修改后的odex文件接剩,使用源文件的一部分文件頭:
busybox dd if=android.policy.odex.bak of=android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
-
對(duì)apk的簽名 使用專門的簽名工具:
java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk
Apktools的使用
Apktool 是apk的逆向分析工具,可用于對(duì)apk的打包 解包萨咳。
APKtool 軟件包有 2 個(gè)程序組成:apktool.jar 和 aapt 運(yùn)行 apktools.jar 需要 java 環(huán)境(1.6.0 版本以上)懊缺。
apktool.jar 用于解包,apktool.jar 和 aapt.exe 聯(lián)合用于打包。
java -jar /data/dtgy.package/bin/apktool.jar d -f -s --keep-broken-res $APK_FILE $APK_DIR
For additional info, see: http://code.google.com/p/android-apktool/
AXMLPrinter2.jar
java -jar AXMLPrinter2.jar AndroidManifest.xml #解開在apk 中的 AndroidManifest.xml-
dex2jar 一個(gè)工具集鹃两,可用來反編譯dex文件到class等遗座,然后結(jié)合jd-gui查看java代碼
示例:./dex2jar-2.0/d2j-dex2jar.sh classes.dex -o 1.zip