前言;本文主要是介紹脫殼的方法,並不涉及原理,若是想要了解加固及脫殼的原理,請移駕別處。git
最近遇到一款app須要開通Vip才能進行視頻下載,像我這種貧窮的程序員怎麼能忍,既然沒錢解決問題那就用技術解決吧!果斷開始反編譯,但反編譯以後的文件倒是下面這樣的程序員
額,這明顯是通過加固後的文件,將真正的dex文件隱藏起來了,這就想讓我放棄嗎?確定不可能,因而便有了本文。github
在操做以前,請確保已經具有如下條件:shell
雖然網上已經有dumpDex.apk的成品,但有可能你找到的是比較老的版本了,致使脫殼不成功,即費時又費力,不如本身動手編譯最新源碼,生成最新的apk,這樣能夠大大的提升脫殼成功率。bash
dumpDex的倉庫地址爲:github.com/WrBug/dumpD…app
怎麼將dumpDex導入AndroiddStudio就不說了,這裏主要說下,導入項目編譯源碼的時候會遇到哪些錯誤及解決方法。工具
「SSL peer shut down incorrectly」錯誤gradle
解決方法:將gradle-wrapper.properties
中的如下代碼ui
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
複製代碼
改爲spa
distributionUrl=http\://services.gradle.org/distributions/gradle-4.1-all.zip
複製代碼
便可解決問題。
Error while executing process cmake/3.6.4111459/bin/cmake with arguments {--build /Users/funaihui/搞基/dumpDex/app/.externalNativeBuild/cmake/debug/x86_64 --target nativeDump}
解決方法:將app中的build.gradle
中註釋掉的這句
// ndk {
// abiFilters "armeabi", "armeabi-v7a","arm64-v8a"
// }
複製代碼
取消註釋並且還要將"armeabi"
這代碼刪除,不然還會報其餘錯誤。
解決上面兩個錯誤,這時編譯的時候就不會報錯了,出現如下界面則說明編譯編譯成功
但這個時候,你會發現AndroidStudio的工具欄中app
上面仍然有個紅色的叉號,以下圖
這個時候你不要認爲尚未編譯成功,其實已經成功了,出現這種狀況是由於app沒有主運行界面。這時點擊菜單欄上面的Build-->Build Apk便可生成apk文件。
安裝dumpDex.apk後還要作如下幾件事:
arm32機型將 lib/armeabi/libnativeDump.so 複製到 /data/local/tmp/libnativeDump.so ,權限 設置爲777,arm64機型還須要將將 lib/arm64-v8a/libnativeDump.so 複製到 /data/local/tmp/libnativeDump64.so能夠經過文件管理器操做,也可使用以下adb shell命令。使用adb命令操做的代碼以下
#僅適用於32位手機
adb shell
su
cp /data/data/com.wrbug.dumpdex/lib/libnativeDump.so /data/local/tmp
chmod 777 /data/local/tmp/libnativeDump.so
複製代碼
在Xposed中☑️dumpDex.apk模塊並激活便可。
上面的準備工做作完後,就能夠愉快的脫殼了。脫殼的方法是啓動Xposed,而後運行通過加固的app,這是界面可能會卡住,這時不要當即關掉,可能當即關掉會形成脫殼不完正,只須要等待幾分鐘關掉便可。
這時會在/data/data/包名/dump
目錄下生成脫殼後的真正的dex文件,拿到真正的dex文件後你就能夠作你想作的事了。
若是不能編譯生成dumpDex.apk
,能夠點擊這裏進行下載。若是遇到什麼其餘問題能夠在下方留言討論。