國內的破文如果質量也有這麼好就太棒了
翻譯一篇基礎破文(不是逐字翻)
1 用OD打開加了EP1.4殼的程序,把插件IsDebug&ExtraHide裏的兩個選項都選上
2 F9運行之後會發現在OD裏面的程序中斷了,而原來的軟件卻運行了起來,這是因爲
殼用了CreateProcess創建了一個新的進程,就是說軟件和殼是不連在一起的,但是在有
些時候卻是跟殼連在一起運行的,所以在CreateProcess調用之前找到一個關鍵跳轉,取其
反則可以讓軟件和殼連在一起運行(這樣比較容易找到OEP)
譯註:你不能直接在je上面斷點,然後重新運行殼,因爲殼還沒把je所在的代碼解密,所以OD會
提示你說這個斷點用不了,我先把它禁止掉。所以你要單步殼讓它走完解壓代碼的部分,再手動把
進制了的斷點重啓
3 斷點在該je改成jnz再跳轉之後,我們需要找OEP,我第一個想到的方法就是斷API了,但是要斷什麼API
取決於原編譯語言,我們把OD代碼拉到401000處,右鍵分析一下看到boolean 還有其他一些字符串,證明了
這是delphi寫的程序(自己可以拉個delphi程序在401000處看看)
4 所以我們可以斷GetModuleHandleA,因爲很多模塊都會調用這個函數,所以要給這個斷點設置一個條件(ESP==4)
5 斷下來之後自己走出去吧,很快就到OEP了,出去的時候代碼比較亂,要分析一下,還是看不到OEP的樣子,看到哪有
55(push ebp)就直接ctrl+g到達55那個字節就看到oep的樣子了,再下個硬件斷點重新運行,輸入表沒什麼要修復的,也沒對OEP
做手腳,不是個好殼,就是說這個殼比較簡單。。