免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動!
內容參考于:微塵網校
上一個內容:3.Android逆向協議-APP反反編譯及回編譯
工具下載:
鏈接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取碼:6tw3
復制這段內容后打開百度網盤手機App,操作更方便哦
上一個內容寫了App反編譯與回編譯,本次來寫打包失敗的解決方法
首先打開 AndroidKiller并拖入一個apk
下方apk說 39285EFA.dex 文件有問題,沒法識別
![]()
首先apk是一個壓縮包,通過壓縮軟件可以直接打開,然后把文件復制出來,然后把文件拖到二進制文本編輯器里(010 editor、winhex(它啟動的有點慢))
使用二進制編輯器打開 39285EFA.dex 文件發現它很明顯有問題,dex文件它有格式
![]()
一個正確的dex文件(從apk找一個),正確的dex文件開頭是dex 數字,然后上方并不是dex但卻是dex后綴,dex文件有它自己的格式,上方文件并不滿足dex文件格式所以在反編譯的時候按照dex文件格式反編譯就會報錯
![]()
這個解決辦法是直接打開apk,把apk打開之后找到 39285EFA.dex 文件把它在壓縮包里刪了,刪除之后再次反編譯,注意AndroidKiller會有歷史記錄,相同文件它不會重新讀取apk文件,這樣我刪了39285EFA.dex文件AndroidKiller里是沒有刪的,所以它還會有問題,這個要把 AndroidKiller 的歷史記錄刪了,或把apk文件的名字改了
![]()
回編譯(二次編譯)可能會出現資源的錯誤,如下圖出現.9.png的文件錯誤,這個是圖片,這種圖片被特殊處理了,它被拉伸的時候不會失真(不會模糊),這種的APKtool不能正常處理,解決辦法,把圖片手動搞出搞成9.png,但是圖片很多手動搞不現實,所以在不修改資源文件的情況下使用一個參數把資源文件過濾掉
![]()
參數編輯,如下圖
![]()
然后輸入-r
![]()
點完確定之后
![]()
然后還是把 AndroidKiller 的歷史記錄給刪掉或吧apk改名,然后重新反編譯apk,然后再次編譯上方的.9.png錯誤就會沒有了,這里要注意,剛開始把39285EFA.dex文件刪了,在編譯的時候把 39285EFA.dex 文件再放回去
![]()
在彈出的窗口總把39285EFA.dex文件復制進去
![]()
然后點下圖紅框位置刷新
![]()
刷新完之后就可以看到了
![]()
然后如果要改資源文件,改的資源文件不報錯,其它的資源文件報錯,那就把apk中原本的文件復制一下,粘貼到工程管理器中(上方復制39285EFA.dex的操作),然后重新編譯
如果改的資源文件報錯,那就把資源文件使用二進制編譯器來修改(直接對編譯后的文件做修改,使用010 Editor或winhex工具)
由于是協議分析 ,協議分析只是找接口,所以打包這方面不會寫的很細
?