安卓加固與脫殼零基礎掌握vm18.百阿愛測殼_第1頁
安卓加固與脫殼零基礎掌握vm18.百阿愛測殼_第2頁
安卓加固與脫殼零基礎掌握vm18.百阿愛測殼_第3頁
安卓加固與脫殼零基礎掌握vm18.百阿愛測殼_第4頁
安卓加固與脫殼零基礎掌握vm18.百阿愛測殼_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1看雪懸賞問答資料導智能設AndroidiOS安軟件逆向編程技術加殼脫殼算法資源WEB安全CTF招聘專區(qū)職業(yè)生涯外文翻茶余飯后會員專企業(yè)SRC項版發(fā)發(fā)新1『Android安全1 scxc4小時前加固逆向分析—dex還上DEXdump與修復下面開始一、首先,我們知dex必然會調用dalvik/vm/DvmDex.cpp中以下兩個函數任意一個dvmDexFileOpenFromFddvmDexFileOpenFromFdDexFile DexFile1dvmDexFileOpenFromFd(int DvmDex**23 4DexFile*5MemMap6 parseFlags 7 result -8 9parseFlags|= (lseek(fd, SEEK_SET) ALOGE("lseek goto} (sysMapFileInShmemWritableReadOnly(fd, ALOGE("Unable mapgoto pDexFile dexFileParse((u1*)memMap.addr,memMap.length, (pDexFile NULL)ALOGE("DEXparsegoto = (pDvmDex NULL)dexFilegoto} sysCopyMap(&pDvmDex->memMap,pDvmDex->isMappedReadOnly *ppDvmDex = 1 2 directly-mapped header3 DexOptHeader*4 pointers directly-mappedstructs arrays 5 6 7 8 9 These mapped of "auxillary" included the DexClassLookup* // points start DEX data track overheadforauxillarystructures additionalapp-specificdatastructureswith 通過pDexFile->baseAddr獲取到dex加載的基址 1DexHeader2 includesversion3 adler32checksum4 SHA- 5 lengthof 6 offset 7 8 9 通過pDexFile->pHeader->fileSize獲取到dex文件大小 fd open("/sdcard/dump.dex",O_CREAT O_WRONLY,write(fd,pDexFile->baseAddr,pDexFile->pHeader-這這時我們已經得到dex了。 殼對dex做了什么?1、修改DexClassDef中的classDataOff字段保存的偏移為負偏22、將classdata數據classdata的數據保存在/data/data/xxxx/.1/1.jardex之前先分配空間給jar包,所以他的偏移為負值,內存結構如下圖:1、獲取到pDexFile后,我們遍歷pDexFile->pClassDefs調用dexGetClassData獲取到ClassData。將ClassData經過wri eb128函數編碼,寫入到文件classdata并記錄每個class的大?。―exhunter做法#definelog(...){FILE =fopen("/sdcard/dumpdex.log", if

VA_ARGSloghookvoid{constDexClassDef*pClassDefs=pDexFile- classDefsSize=pDexFile->pHeader-DexMapList* =(DexMapList*)(g_pDexFile->baseAddr pDexFile- cls_dat_off i i pMaps- {

if(pMaps->list[i].type //0x2000{cls_dat_off=pMaps->list[i].offset; }log("classdata_offset:0x%x\n", classdata (u4 i<classDefsSize;{const data dexGetClassData(g_pDexFile,DexClassData =if(!pData) int open("/sdcard/classdata",O_APPEND O_CREAT intclass_data_len=uint8_t*out EncodeClassData(pData,log("%d,",class_data_len);//classdatacls_dat_off write(fd,out, 以以上ReadClassData、EncodeClassData函數用的Dexhunter的。Dexhunter作者3、將classdata寫入到classdata偏移處4、通過程序修復classdef中的偏移5、運行完后我們已經獲取到正確的 out.dex拖入JEB已經可以正常解析baidu_unpack_so.zip上次的so的idbdump.zipclassdata、dump.dex、log文件out.zipbaidu_unpack_so.zip(1.72MB,38)dump.zip(3.46MB,33)out.zip(3.45MB,33 回回復 帖已收到0次贊賞,累計¥06收ddddddfx4時2樓scxc4時3樓1回回ddddddfxddddddfx怪客3時4樓2zfdyqzfdyq3時5樓1不知世事3時6樓hanhaochi3時7樓回回scxc3時8樓1hanhaochiYoungs3Youngs3時9樓峰峰3時10樓大神,onCreateinvoke-static{v1,p00},Lcom/baidu/protect/A;->V(ILjava/lang/Object;[Ljbject;)V,這個函數,流程的沒法看了clumsybirda2時11樓看見樓上的評論白高興了唉,oncreatedexscxc1時 1

12樓峰峰大神,onCreatevoke-static{v1,p0,v0},Lcom/baidu/protect/A;->V(ILjavect;[L

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論