本帖最后由 show0p 于 2019-5-21 12:12 編輯
麻婆云授權(quán)網(wǎng)絡(luò)驗(yàn)證脫殼破解教程(附工具及源碼)
QQ圖片20190520232004.png (800.5 KB, 下載次數(shù): 863)
下載附件
保存到相冊(cè)
2019-5-20 23:20 上傳
實(shí)戰(zhàn)教你過(guò)麻坡云授權(quán)驗(yàn)證
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)
這里是麻婆脫殼
接下來(lái)的操作,懂得都懂
第一步:
去掉壓縮殼到了mapo的入口后
dump,不需要重建輸入表(簡(jiǎn)稱(chēng)dump1)
ok,能運(yùn)行,將dump1放入od
接下來(lái)需要獲取兩個(gè)offset(偏移)
一個(gè)是mapo的GetProcAddress,和mapo_encApiTable的存儲(chǔ)地址
首先獲取GetProcAddress函數(shù)地址
搜索特征碼:
8B F8 5F 5E 5D 5B 81 C4 10 01 00 00 C3 03 FE 8B C7 5F 5E 5D 5B 81 C4 10 01 00 00 C3 CC
然后來(lái)到這里
004F1F20 8BF8 mov edi,eax ; kernel32.BaseThreadInitThunk
004F1F22 5F pop edi ; kernel32.76FC33CA
004F1F23 5E pop esi ; kernel32.76FC33CA
004F1F24 5D pop ebp ; kernel32.76FC33CA
004F1F25 5B pop ebx ; kernel32.76FC33CA
004F1F26 81C4 10010000 add esp,0x110
004F1F2C C3 retn
004F1F2D 03FE add edi,esi
004F1F2F 8BC7 mov eax,edi
004F1F31 5F pop edi ; kernel32.76FC33CA
004F1F32 5E pop esi ; kernel32.76FC33CA
004F1F33 5D pop ebp ; kernel32.76FC33CA
004F1F34 5B pop ebx ; kernel32.76FC33CA
004F1F35 81C4 10010000 add esp,0x110
004F1F3B C3 retn
先將004F1F22處的代碼改成:
jmp 004F1F31,并且記下這個(gè)地址:004F1F3B
然后保存這個(gè)exe(簡(jiǎn)稱(chēng)dump2)
接著在址:004F1F3B下斷,運(yùn)行
斷下來(lái)之后
執(zhí)行到返回+F8
直到出現(xiàn)mov eax,[0xXXXXX] push xxxx這樣的代碼
像這種
00665C93 A1 CB485100 mov eax,dword ptr ds:[0x5148CB]
00665C98 68 A25C6600 push dll_inj_.00665CA2
00665C9D ^ E9 439AF8FF jmp dll_inj_.005EF6E5
然后內(nèi)存窗口跟隨這個(gè)地址
可以看到他是長(zhǎng)這樣的,那就是他了。第一個(gè)值里面存的就是被加密的api地址
我們記下這個(gè)地址:5148CB
然后結(jié)束掉調(diào)試
打開(kāi)DLL注入工具
第一個(gè)選擇dump2.exe
第二個(gè)選擇獲取數(shù)據(jù)的dll
然后點(diǎn)運(yùn)行
這是后讓我們輸入GetProcAddressRet
那么我們就輸入004F1F3B-400000=F1F3B
然后點(diǎn)確認(rèn)輸入后又讓輸入EncApi地址
我們輸入:5148CB-400000=1148CB
接下來(lái)就是等待授權(quán)窗口出來(lái),然后保存獲取的數(shù)據(jù),會(huì)在運(yùn)行目錄下生成mapoSafeApi.txt文件
關(guān)閉軟件后,就可以開(kāi)始脫殼了
將mapo.exe放入od中,跑到mapo的真正入口
然后在入口的下一行就是oep,直接下斷運(yùn)行輸入正確卡號(hào)登錄進(jìn)入軟件直到斷下來(lái)
斷下來(lái)之后,直接dump,勾選上重建輸入表
保存到dump3.exe,保存后運(yùn)行dump3.exe發(fā)現(xiàn)說(shuō)缺失,其實(shí)是函數(shù)名錯(cuò)誤了
將dump3.exe放入cff中找到user32.dll中的這個(gè)函數(shù)
發(fā)現(xiàn)是NtdllDefWindowProc_A
其實(shí)這個(gè)函數(shù)只在ntdll中,user32的應(yīng)該是DefWindowProcA,改完后保存,這樣就不會(huì)提示缺失了
然后關(guān)閉od
打開(kāi)MapoSafe.exe后
待修復(fù)文件選擇:dump3.exe的路徑
api表填mapoSafeApi.txt的路徑
結(jié)束地址填代碼段的大小(用CFF看)
然后直接點(diǎn)開(kāi)始修復(fù)
完畢后,點(diǎn)保存,生成new_mapo.exe
emmm,忘了一步,
ok,回到這里、我們重新點(diǎn)開(kāi)始修復(fù)保存
發(fā)現(xiàn)還是崩潰,我們看一下輸入日志
30-RVA_Patch>>jmp_xxx:41D4E0-該行不在索引中.
發(fā)現(xiàn)這個(gè)是沒(méi)有修復(fù)
我們?nèi)apoSafeApi.txt找找30這個(gè)索引對(duì)應(yīng)的函數(shù),發(fā)現(xiàn)30是缺失的,這里暫時(shí)先不管
往下看,發(fā)現(xiàn)69也沒(méi)有修復(fù)
69-RVA_Patch>>jmp_xxx:466FA8-該行不在索引中.
查了下mapoSafeApi.txt是有對(duì)應(yīng)的api函數(shù)的
69-ntdll.dll-RtlSizeHeap
我們看一下,dump3.exe有沒(méi)有導(dǎo)入這個(gè)函數(shù),沒(méi)有我們就添加,然后點(diǎn)重新修復(fù)保存
添加保存后,重新修復(fù)并保存
再運(yùn)行,發(fā)現(xiàn)就能運(yùn)行起來(lái)了
看看功能
ok,功能沒(méi)問(wèn)題
教程到這里
因?yàn)闀r(shí)間匆促,只能先告訴你們?cè)趺从眯迯?fù)工具和基本操作,后面會(huì)告訴你們?yōu)槭裁?/font>
拜拜,這里是要開(kāi)心。我愛(ài)你
|