此文續(xù)Android apk 文件反編譯, 當(dāng)時(shí)說(shuō)要寫個(gè)腳本做個(gè)自動(dòng)化的方法來(lái)解壓.apk文件.
此腳本早己寫好,只是一直未發(fā)出來(lái).現(xiàn)在發(fā)出現(xiàn)來(lái),供參考或使用.里面有注釋,看不懂的就沒(méi)辦法了.
把下面腳本拷出來(lái)保存為XXX.bat文件,運(yùn)行前先把a(bǔ)pk文件拷貝到與此腳本同一路徑.然后運(yùn)行XXX.bat yours.apk.
REM this script is used to decompress the .apk file @echo off REM 此腳本傳入的要解壓的文件名 set EXT_FILE=%1 REM apktool 和 dex2jar 兩個(gè)工具的解壓路徑 set DECOAPK_HOME="E:\zy_share\tools\Android" REM 解壓后的文件所在路徑 set TMP_DIR=temp REM dex2jar工具的路徑 set DEX2JAR_HOME="%DECOAPK_HOME%\dex2jar-0.0.7.3-SNAPSHOT" @echo on REM 復(fù)制一個(gè) apk 文件,后綴名為 .zip copy "%EXT_FILE%" "%EXT_FILE%.zip" REM 解壓此 .zip 文件到 當(dāng)前的 temp 目錄下. unzip %EXT_FILE% -d %TMP_DIR%
REM 用 apktool 解壓 .apk 文件到 temp 目錄中 cd temp java -jar %DECOAPK_HOME%\apktool\apktool.jar decode ../%EXT_FILE%
REM 解壓 classes.dex 文件 set CLASSPATH= FOR %%i IN ("%DEX2JAR_HOME%\lib\*.jar") DO CALL "setclasspath.bat" %%i echo %CLASSPATH% java -cp "%CLASSPATH%" pxb.android.dex2jar.v3.Main classes.dex
REM 解壓 classes.dex.dex2jar.jar 文件 mkdir classes cd classes jar -xf ../classes.dex.dex2jar.jar cd .. jad -o -r -f -ff -s java -d src classes/**/*.class cd .. |
別高興得太早,轉(zhuǎn)出換過(guò)程中可能會(huì)有jad.exe轉(zhuǎn)不了的文件,那就把那就手動(dòng)做最后一點(diǎn)轉(zhuǎn)換吧.可以把出錯(cuò)的.class文件刪除,再轉(zhuǎn).轉(zhuǎn)完可能也通不過(guò)編譯.但代碼的大致結(jié)構(gòu)和類都出來(lái)了.有第三類庫(kù)的,你就直接去下載回來(lái)替換掉就行了.
以上提供的方法請(qǐng)大家自律地使用于合法用途. |