android dex 解析工具 android怎樣破解已使用加殼技術(shù)的APP?
android怎樣破解已使用加殼技術(shù)的APP?要用DEX shell破解應(yīng)用程序,關(guān)鍵是獲得解密的源DEX?,F(xiàn)在Android shell技術(shù)還不成熟,大多是通過(guò)dexclassloader或隱藏函數(shù)
android怎樣破解已使用加殼技術(shù)的APP?
要用DEX shell破解應(yīng)用程序,關(guān)鍵是獲得解密的源DEX?,F(xiàn)在Android shell技術(shù)還不成熟,大多是通過(guò)dexclassloader或隱藏函數(shù)opendexfile加載源DEX,然后動(dòng)態(tài)替換應(yīng)用程序啟動(dòng)源程序,這與windows上傳統(tǒng)的PE文件shell不同。為了破解傳統(tǒng)的shell,我們需要跟蹤控制流找到OEP,然后從內(nèi)存中轉(zhuǎn)儲(chǔ)源程序并重構(gòu)輸入表。最困難的是遵循shell的控制流。為了增加破解的難度,安全工程師采用了多種技術(shù)使破解難度加大。安全工程師和黑客對(duì)抗的關(guān)鍵是很難找到OEP。在Android平臺(tái)上,由于新興的dexshell技術(shù)還不成熟,一些可選的shell方法可以繞過(guò)分析算法直接轉(zhuǎn)儲(chǔ)源程序。例如,Android在4.0版之后提供了opendexfile的功能,從內(nèi)存中加載DEX。所需參數(shù)是內(nèi)存中源索引的地址。因此,只要您中斷函數(shù)并從寄存器中找到內(nèi)存地址,就可以從內(nèi)存中轉(zhuǎn)儲(chǔ)解密的源DEX并直接反編譯以獲得源代碼。此外,opendexfile函數(shù)類似于libdvm.so公司這個(gè)圖書館關(guān)系密切。它提供了大量操作DEX文件的函數(shù)。如果您斷開這個(gè)庫(kù)中的相關(guān)函數(shù),然后從內(nèi)存中猛烈地轉(zhuǎn)儲(chǔ)一個(gè)大的內(nèi)存區(qū)域,通??梢灾苯硬东@內(nèi)存中的源Dex。