首頁  >  文章  >  運維  >  Android中動態匯出dex檔案的方法是什麼

Android中動態匯出dex檔案的方法是什麼

WBOY
WBOY轉載
2023-05-30 16:52:511716瀏覽

1.啟動ida 連接埠監聽

1.1啟動Android_server 服務

Android中動態匯出dex檔案的方法是什麼

1.2埠轉送

Android中動態匯出dex檔案的方法是什麼

#1.3軟體進入偵錯模式

Android中動態匯出dex檔案的方法是什麼

#2.ida 下斷

2.1 attach  附加進程

Android中動態匯出dex檔案的方法是什麼

2.2 斷三項

Android中動態匯出dex檔案的方法是什麼

#2.3 選擇進程

Android中動態匯出dex檔案的方法是什麼

2.4 開啟Modules

搜尋art

Android中動態匯出dex檔案的方法是什麼

#PS:小知識

Android 4.4版本之前系統函數在libdvm.so

Android 5.0之後系統函式在libart.so

2.5 開啟Openmemory()函式

在libart.so搜尋Openmemory函式並且跟進去。

Android中動態匯出dex檔案的方法是什麼

PS:小知識

一般來說,系統dex都會在這個函數中進行加載,但是會出現一個問題,後面說。

2.6 下斷點

Android中動態匯出dex檔案的方法是什麼

#3.執行程式到下斷處

3.1 jdb轉送執行程式

Android中動態匯出dex檔案的方法是什麼

#3.2 查看IDA運行

成功下斷,並且運行到我們下斷的地方。

Android中動態匯出dex檔案的方法是什麼

3.3 查看dex的位置

#開啟暫存器窗口,可以看到R1就是我們的dex

Android中動態匯出dex檔案的方法是什麼

然後在Hex視窗中開啟R1。

Android中動態匯出dex檔案的方法是什麼

很明顯就看到了dex檔案的二進位結構。如果不明白可以看看之前的dex檔案分析。

3.4 提取關鍵訊息

第一個關鍵訊息:位址偏移:0xF35CA328

Android中動態匯出dex檔案的方法是什麼

第二個關鍵訊息:檔案偏移:70 35 01 00,轉換一下就是0x00013570

Android中動態匯出dex檔案的方法是什麼

使用16進位加法器進行相加,F35DD898

Android中動態匯出dex檔案的方法是什麼

#4. dump

4.1 使用腳本進行dump

static main(void){    auto fp, begin, end, dexbyte;    / /開啟或建立一個檔案    fp = fopen("d:\\dump.dex", "wb");    //dex基址    begin =  0xF34C6320;    //dex基址dex檔案大小= begin; dexbyte

Android中動態匯出dex檔案的方法是什麼

#44444 她,run# 這些腳本#家# 她# 她#家# 她#家# 她#家# 她家# 她 她筆 然後腳本腳本Android中動態匯出dex檔案的方法是什麼#腳本填好了之後,點選run即可。

############4.3 成功dump################

以上是Android中動態匯出dex檔案的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除