///////////////////////////////////////////////////////////////////////////////
//
// FileName : DumpECode.oms(把易格式原體從PE檔案中分離出來)
// Author : monkeycz
// Date : 2004-11-28 21:36
// Comment : 搜尋易格式所在的節,然後dump出易格式原體。由於沒有經過裝載器
// 重定位,dump出來的原體也不需要修復重定位資訊。
//
///////////////////////////////////////////////////////////////////////////////
mov reg04,0x400000 //ImageBase,需要自行修改
invoke Search, reg04, "2E65636F64" //查詢易格式所在節
cmp reg00,-1
je nofind //沒有找到:(
mov reg01,reg00
add reg01,0x0C //到VirtualAddress處
invoke ReadMemLong,reg01,0x04 //讀取易格式的VirtualAddress
mov reg05,reg00
//invoke PrintNum, reg05, 16
add reg05,reg04 //當前易格式所在的節記憶體中的偏移
//invoke PrintNum, reg05, 16
add reg01,0x04 //到SizeOfRawData處
invoke ReadMemLong,reg01,0x04 //取出易格式的尺寸
mov reg03,reg00
//invoke PrintNum, reg03, 16
invoke InputText,"Please input the filename:"
cmp reg00,0x00
je cancel
invoke DumpMem,reg05,reg03,FreeBufferReg //dump
je error
invoke msg,"Dump the E code finish!"
halt
nofind:
invoke msg,"No find the E code!"
halt
cancel:
halt
error:
invoke msg,"Write file error!"
halt上非