愛加密脫殼

2021-09-27 13:20:20 字數 2066 閱讀 7894

關鍵字:libdvm dexfileopenpartialpk fopen

樣本:mtkediter原版.apk

反編譯 查殼 有愛加密殼

脫殼:0x1:

adb shell

suchmod 755 /data/local/tmp/as

/data/local/tmp/as

0x2:

adb forward tcp:23946 tcp:23946

0x3:

adb shell

am start -d -n com.zxjw.mtkediter/.ui.detection

0x4:

開ida附加

module 裡選擇 libdvm.so

再選擇 dexfileopenpartialpk

在這下個斷點

這個apk 還有檢測 ptracerid 埠 反除錯

在 fopen 處也下個斷點

f9執行

0x5:

開啟 monitor(ddms)

0x6:

jdb -connect com.sun.jdi.socketattach:hostname=127.0.0.1,port=8700

則到了fopen斷點處

0x7:

hex view視窗裡 右鍵

synchronize with r0

注意觀察 r0值的文字顯示

出現這個 /proc/***/status 關鍵字後

說明已經開啟了 檢測的 關鍵文字了

返回到上級

再 f8 單步步過 除錯 注意還是看 r0值的 文字顯示

這個 name欄位名 是status檔案裡的 第乙個字段

說明在這裡的時候 一步步的 提取出欄位 那我們就在這下斷點

直到 提取 ptracerid 字段

如果有多次 檢測的時候 我們就多次修改吧 直到 執行到 dexfileopenpartialpk 斷點處

這個_z21dvmdexfileopenpartialpkvipp6dvmdex 函式的

第乙個引數是 dex檔案 基址

第二個引數是 dex檔案 大小

在 hex view視窗裡 紅色位置 可以很清楚的看到

第乙個紅色標記處 是 基址

第二個紅色標記成是 大小 這個地方要注意下 記憶體中數值是 高低位互換的

a4 11 03 00 高低位轉換下 真正的值則是 03 11 a4 即是 0x311a4

這時我們用 ida 指令碼 提取出來 dex(這個時候是脫殼後的 僅僅是對這個樣本來說 這裡是脫殼後的 不同的加殼 不一樣的)

指令碼命令

auto fp,addr_start,addr_now,size,addr_end;

addr_start = r0;

size = r1;

addr_end = addr_start+size;

fp=fopen(「c:\dump.dex」,「wb」);

for(addr_now = addr_start;addr_now或者

auto fp,addr_start,addr_now,size,addr_end;

addr_start = 0x6141952c;

size = 0x311a4;

addr_end = addr_start+size;

fp=fopen(「c:\dump.dex」,「wb」);

for(addr_now = addr_start;addr_now都是可以的

run 提取完後 到 jeb裡 檢測下

ok 完成脫殼

Youpk 實戰脫殼 愛加密 梆梆脫殼

下面是我整理的乙份常用的脫殼機的對比 這裡在網上找了梆梆2020 加固過的樣本。這裡加殼前的 比較簡單 只有乙個類mainactivity mainactivity 裡只有簡單的add 和 sub方法。可以看到方法裡面的 也比較簡單,返回相加相減的值。這裡可以看到 加殼後 mainactivity ...

「愛加密」 動態脫殼法

測試環境為 安卓2.3 ida6.6 下面看具體操作步驟 具體怎樣用ida動態除錯我就不多說了,網上己經有很多文章了,下面直接進入正題。1.準備好調式環境後 用ida附加程序。2.附加成功後按 g 鍵 跳到dvmdexfileopenpartial函式與fopen函式與fgets函式去下好斷點。3....

愛加密企業版靜態脫殼機編寫

0x00 apk加固簡介 0x01 愛加密流程簡單分析 dalvik 0x02 殼執行流程大致如下 0x03 愛加密企業版加固後apk反編譯如下 從上圖可以看到方法指令都被抽走了 0x04 靜態脫殼機編寫 加殼時將方法指令抽走後自定義格式加密存放在assets ijiami.ajm檔案中,通過ida...