標籤:
本筆記是針對ximo早期發的脫殼基礎視頻教程,整理的筆記。本筆記用到的工具:
http://download.csdn.net/detail/obuyiseng/9466056
簡介:FSG殼是一款壓縮殼。我們這裡使用9種方式來進行脫殼
工具:ExeinfoPE或PEid、OD、LordPE、ImportREConstructor
脫殼檔案:05.手脫PECompact2.X殼.rar
1 單步 我們發現有兩處call會跑飛,那麼我們需要在跑飛處進入,然後在跟即可。
第一個跑飛的call,我們此時不應該單步而是進入
第二個跑飛的call,我們此時不應該單步而是進入
OEP
2 ESP定律 單步到在此處,並在資料視窗中跟隨,下斷點,單步跟蹤即可,可參考前面的筆記內容。
3 使用BP VirtualFree斷點首先下 bp VirtualFree斷點
然後 SHIFT+F9運行,接著按F2取消斷點
接著ALT+F9執行到使用者代碼
ctrl+f 進行尋找 push 8000(特徵碼)
F2設定斷點 , shift+f9運行到這,然後取消斷點
接著單步跟即可,就會到達OEP
4 同樣設定BP VirtualFree首先設定斷點
然後,兩次SHIFT+F9。
然後,取消斷點。Alt+F9 並執行到使用者代碼
然後單步走,就會到達OEP
5.1、載入程式後,會發現首行有個地址 0040A86D > B8 74DE4500 mov eax,qqspirit.0045DE74
2、在該地址處下斷點 bp 0045de74
3、然後shift+f9運行,並取消斷點
4、我們在該處的retn 下一行 設定斷點,然後shift+f9運行,並取消斷點
045DE74 B8 F9CB45F0 mov eax,F045CBF9
0045DE79 8D88 9E120010 lea ecx,dword ptr ds:[eax+1000129E]
0045DE7F 8941 01 mov dword ptr ds:[ecx+1],eax
0045DE82 8B5424 04 mov edx,dword ptr ss:[esp+4]
0045DE86 8B52 0C mov edx,dword ptr ds:[edx+C]
0045DE89 C602 E9 mov byte ptr ds:[edx],0E9
0045DE8C 83C2 05 add edx,5
0045DE8F 2BCA sub ecx,edx
0045DE91 894A FC mov dword ptr ds:[edx-4],ecx
0045DE94 33C0 xor eax,eax
0045DE96 C3 retn
0045DE97 B8 78563412 mov eax,12345678 //下斷點
5、接著單步跟即可,就會到達OEP
61、設定bp VirtualAlloc 斷點,然後shift+f9 運行,並取消斷點
2、alt+f9 執行到使用者代碼 向下拉,看到JMP。運行到這
3、然後接著單步即可。
7.最後一次異常法;1、選項---》調試設定---》異常------取消所有異常。
2、然後將程式重新載入
3、按shift+f9 ,發現2次shift+f9 就會讓程式跑起來了,(之所以叫最後一次異常法,我們利用的就是利用最後一次異常,也就是說,我們有運行shift+f9有M次,就讓程式跑起來了,那麼我們重新載入程式後,只需要按 M-1次shift+f9即可)
4、由於2次跑飛,我們按1次shift+f9,然後在堆棧視窗中 找SE控制代碼
5、然後 我們轉到 0045de74處, 並在retn下一行下斷 (和第5種類似)
045DE74 B8 F9CB45F0 mov eax,F045CBF9
0045DE79 8D88 9E120010 lea ecx,dword ptr ds:[eax+1000129E]
0045DE7F 8941 01 mov dword ptr ds:[ecx+1],eax
0045DE82 8B5424 04 mov edx,dword ptr ss:[esp+4]
0045DE86 8B52 0C mov edx,dword ptr ds:[edx+C]
0045DE89 C602 E9 mov byte ptr ds:[edx],0E9
0045DE8C 83C2 05 add edx,5
0045DE8F 2BCA sub ecx,edx
0045DE91 894A FC mov dword ptr ds:[edx-4],ecx
0045DE94 33C0 xor eax,eax
0045DE96 C3 retn
0045DE97 B8 78563412 mov eax,12345678//下斷
6、shift+f9運行到該位置,取消斷點後 ,接著單步跟即可
注意:
如果不能用最後一次異常法脫強殼,一用 shift+f9 就直接跑飛,解決如下
在OD外掛程式--StrongOD--Options--Skip Some Exceptions選項取消,重啟OD再試試。
使用完成後,我們要將
異常和
-Skip Some Exceptions選項 恢複
8 兩次記憶體 1、在記憶體視窗中,找到第一個.rsrc, 然後F2下斷點,並運行
2、再次在記憶體視窗中找到
3、然後單步跟即可,當遇到 retn的時候,要在retn下一行設定斷點,然後單步即可。
9 at GetVersion
1、由於該程式是c++編寫,所以可以設定 at GetVersion斷點。
2、向下 在retn處設定斷點,並運行
3、然後取消斷點,單步,向上拖就會看到OEP了
簡單脫殼教程筆記(7)---手脫PECompact2.X殼