fart抽取還原

使用fart dump下來ins後,需要手動去還原

這時候會覺得非常麻煩,想要自動化。

我下載了dexlib2和baksmali 發現無從下手不知道怎麼搞

在肉絲大佬幫助下
https://bbs.pediy.com/thread-259854.htm
參考別人的dx代碼去合併,就能還原抽取了

雖然代碼吵得很開心,但是還是得知道怎麼實現得。

首先下載android得source code,我下得是8.1得,10個g。有點大。

其中我們需要在daivak下複製這三個目錄得代碼到自己得項目中

把別人得jar拉到jadx中,在unpacker目錄下可以找到main函數

其中,使用方法就一行代碼。其中得methodCodeitem是自己加得。

一路跟蹤下去 可以發現在transtromMethod得方法中進行了更改。
上面是原有得方法。而我們來看看下半部分得代碼是怎麼還原得

我們和transformCode方法對比着看


兩個紅框中得代碼是一樣得。而後面就開始寫registerSize。

而在自己改得方法中,是直接this.codeOut.write(codeItem.code)

而我們看fart打出來得log


可以發現也是從registerSize打印起得。說明fart dump下來的ins也是從registerSize起的。因此直接寫進去即可

而後面還寫入debugInfo這個數據進去。但是據我瞭解這個東西可有可無,我把這段刪去後,jadx也是能正常顯示還原後的代碼的。

因此整個還原的主要改動就是以上贅述的東西。

當然了,某些地方還要加try catch 。這些細節就不囉嗦。

總結一下,抄代碼真爽(我真垃圾)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章