返回列表 发帖

Morphine 的简单脱壳

【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
            
【调试环境】:WinXP、Ollydbg、PEiD、PETools
            
—————————————————————————————————
【脱壳过程】:
         
         
很少注意这个Morphine壳,Morphine只是对Section Table动了手脚,没有加密输入表等。
感觉更像是一个简单的“伪装”壳罢了。看到论坛里这几天有兄弟讨论这个,所以抽点时间看了看。
jingulong没时间写教程,我就来代写一下吧。
脱壳目标用csjwaman上传之Morphine加壳的“PE文件分析器.exe”。
—————————————————————————————————
一、恢复 Section Table

005F125B     F8                clc
//进入Ollydbg后暂停在这
005F125C     85C9              test ecx,ecx
005F125E     F5                cmc
005F125F     57                push edi
005F1260     74 05             je short PE.005F1267
下断:BP VirtualAlloc
中断后取消断点,Alt+F9返回
005F10FD     FFD3              call ebx
005F10FF     59                pop ecx
//返回这里
005F1100     85C0              test eax,eax
005F1102     75 13             jnz short PE.005F1117
005F1104     6A 40             push 40
005F1106     68 00100000       push 1000
005F110B     51                push ecx
005F110C     50                push eax
005F110D     FFD3              call ebx
005F110F     85C0              test eax,eax
005F1111     0F84 3A010000     je PE.005F1251
—————————————————————————
看看寄存器情况:
EAX 00400000
ECX 77E5986B kernel32.77E5986B
EDX 7FFE0304
EBX 77E5980A kernel32.VirtualAlloc
ESP 0012F7A0
EBP 0012FFB0
ESI 005F18FB ASCII "CODE"
EDI 0012FDB8 ASCII "PE"
EIP 005F10FF PE.005F10FF
转存005F18FB处看看,这里就是原来的段表信息:
005F18FB   43 4F 44 45 00 00 00 00 90 62 0B 00 00 10 00 00    CODE....恇
005F190B   00 64 0B 00 00 04 00 00 00 00 00 00 00 00 00 00    .d
005F191B   00 00 00 00 60 00 00 E0 44 41 54 41 00 00 00 00    ....`.. DATA....
005F192B   98 22 00 00 00 80 0B 00 00 24 00 00 00 68 0B 00    ?...

返回列表 回复 发帖