1.Hook OpenMemory的導出方法名
適用于Android6、Android7、Android8、Android9的脫殼
/data/lib/libart.so nmlibart.so|grepOpenMemory
Android7.1.2 _ZN3art7DexFile10OpenMemoryEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_10OatDexFileEPS9_ Android9.0 _ZN3art7DexFile10OpenMemoryERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEjPNS_6MemMapEPS7_
Interceptor.attach(Module.findExportByName("libart.so", "_ZN3art7DexFile10OpenMemoryEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_10OatDexFileEPS9_"), { onEnter: function (args) { //dex起始位置 var begin = args[1] //修改一下dex起始位置varbegin=this.context.x0 //打印magic console.log("magic : " + Memory.readUtf8String(begin)) //dex fileSize地址 var address = parseInt(begin,16) + 0x20 //dex 大小 var dex_size = Memory.readInt(ptr(address)) console.log("dex_size :" + dex_size) //dump dex到/sdcard/目錄下 var file = new File("/sdcard/xxx.xxx.xxx/" + dex_size + ".dex", "wb") file.write(Memory.readByteArray(begin, dex_size)) file.flush() file.close() }, onLeave: function (retval) { if (retval.toInt32() > 0) { /* do something */ } } });
2.Hook OpenCommon的導出方法名
/data/lib/libart.so nm libart.so |grep OpenCommon
Android8.1.0(方法的簽名) _ZN3art7DexFile10OpenCommonEPKhmRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_PNS0_12VerifyResultE Android9.0(方法的簽名) _ZN3art13DexFileLoader10OpenCommonEPKhjS2_jRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_NS3_10unique_ptrINS_16DexFileContainerENS3_14default_deleteISH_EEEEPNS0_12VerifyResultE
nm libdexfile.so |grep OpenCommon
Android10 libdexfile.so /apex/com.android.runtime/lib/libdexfile.so /apex/com.android.runtime/lib64/libdexfile.so _ZN3art13DexFileLoader10OpenCommonEPKhjS2_jRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_NS3_10unique_ptrINS_16DexFileContainerENS3_14default_deleteISH_EEEEPNS0_12VerifyResultE
https://github.com/chzphoenix/frida-unpack https://www.cnblogs.com/wuxianyu/p/14274667.html
審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Android
+關注
關注
12文章
3939瀏覽量
127641
原文標題:APP基于Frida脫殼
文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Inline Hook Syscall詳解
在安全、性能分析等領域,經常會需要對系統調用syscall進行hook。有些模塊在kernel代碼中已經預先hook,例如syscall trace event。
linux的類似hook函數
hook在windows下可以說是知名度相當高的一種"高級“技術想在linux下面實現像windows下的那種hook的功能,不過網上的資料很少(LD_PRELOAD 也可以做類似的事)
發表于 07-25 07:48
怎樣去使用RT-Thread系統中的Hook功能呢
生成額外代碼允許用戶通過“插入宏的方式”在編譯時刻精細控制具體HOOK哪個位置可以插入任意代碼塊——其中就包括函數指針、對普通函數的調用等等2、使用方法2.1 總開關? 在rtconfig.h定義宏開關
發表于 06-14 10:34
講講Hook技術的攻防對抗思路
1、論Hook技術的攻防對抗 首先,簡單認識下Hook 技術。 Hook技術是一門廣泛用于計算機攻防對抗的技術。它可以監視系統或者進程中的各種事件消息,截獲發往目標窗口的消息進行處理。 我們
發表于 09-28 11:12
利用Hook技術實現進程控制
Windows 系統是基于消息,建立在事件驅動基礎上的操作系統。Hook 是Windows 系統消息處理機制中的一個監視點。Hook 機制允許應用程序截獲消息并進行處理,它為我們實現進程的控制
發表于 09-12 16:08
?10次下載
Linux下的網絡HOOK實現
最近瘋狂的研究Linux的種種功能,也頗有心得,這里講述一下Linux下的Net的Hook,使用net的Hook可以實現很多很多非常底層的功能
發表于 05-14 10:27
?5154次閱讀
在嵌入式設備中使用Malloc Hook的試驗
在嵌入式設備中,計劃使用malloc hook來進行內存跟蹤,以便測試程序的內存使用。 試驗1: 在程序開始,增加了mtrace函數,定義環境變量MALLOC_TRACE。 發現了
發表于 04-02 14:37
?704次閱讀
內核級HOOK的幾種實現方法與應用說明
實現內核級HOOK 對于攔截、分析、跟蹤系統內核起著致關重要的作用。實現的方法不同意味著應用側重點的不同。如想要攔截NATIVE API 那么可能常用的就是HOOKSERVICE TABLE 的方法
發表于 11-10 17:35
?5次下載
RTOS操作系統中HOOK函數有什么用途?
在很多操作系統中,都存在這樣一類API(函數接口):HOOK函數,也叫鉤子函數。 比如:Windows桌面系統、μC/OS、 FreeRTOS等RTOS中,都可以看見HOOK函數的存在。 下面結合
MACSV數據庫導出、導入的方法
MACSV數據庫導出、導入的方法(現代電源技術期末考試)-文檔為MACSV數據庫導出、導入的方法詳解文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,
發表于 09-17 15:41
?2次下載
評論