hixiaosheng 发表于 2010-2-21 20:43

不用ImportREC脱eXPressor(文字篇)

本帖最后由 当红小生 于 2010-2-21 21:15 编辑

程序代码包括资源等数据全部解密、输入表等数据还原但还未填充系统函数地址、DLL则还未重定位,
此时dump出来的文件只需修正OEP、ImportTableRVA等信息即可正常运行完成脱壳。

下载地址:原版98记事本加壳(自己构造吧!)

bp LoadLibraryExA,然后返回代码(ALT+F9)
发现程序已经解码
00410C81 mov ecx,dword ptr ss: ; EAX-00400000=输入表RVA=6000
00410C84 mov dword ptr ds:,ecx
00410C87 mov eax,dword ptr ss:
00410C8A mov dword ptr ds:,CDC31337 ; 此处填充IID,nop it!



bp GetProcAddress,然后返回代码(ALT+F9)
00410D15    mov dword ptr ss:,eax   ; 保存在ebp-58
00410D18    cmp dword ptr ss:,0
00410D1C    jnz short 98Pk.00410D26
00410D1E    push 0
00410D20    call dword ptr ds:[<&KERNEL32.Exi>; kernel32.ExitProcess
00410D26    lea eax,dword ptr ss:
00410D29    push eax
00410D2A    push 40
00410D2C    push 4
00410D2E    push dword ptr ss:
00410D31    call dword ptr ds:[<&KERNEL32.Vir>; kernel32.VirtualProtect
00410D37    mov eax,dword ptr ss:
00410D3A    mov ecx,dword ptr ss:
00410D3D    mov dword ptr ds:,ecx      ; 填充系统函数nop it!



00410DB0 pop eax
00410DB1 jmp eax; 此处跳向OEP!
00410DB3 pop edi


F7跟进

然后dump,oep为10CC,输入表rva为6000,如果减肥的话把‘.pdata’和‘.ex_cod’就是中间那两个区段去掉,然后重建一下PE就OK了。
写文章就是累啊!

小糊涂虫 发表于 2010-2-22 09:34

膜拜一下~
页: [1]
查看完整版本: 不用ImportREC脱eXPressor(文字篇)