ximo 发表于 2009-1-30 15:42

继续UnPackMe

同一壳,换了个加壳选项。
难度同样不大,继续蹂躏吧,呵呵。

iawen 发表于 2009-1-30 15:58

晕倒,继续练手了,感谢一下小超的无私奉献,哈:
00418B93      833E 00         cmp dword ptr ds:,0
00418B96      EB 34         jmp short EdrTest.00418BCC//将这句改成JMP,就可以跳过IAT加密了
            //这里我已经改过了,呵呵
这次是不是把DLL集成到一起了,没看见加载DLL啊!

小糊涂虫 发表于 2009-1-30 17:17

正在蹂躏中。。。。:D

zapline 发表于 2009-1-30 17:21

继续被蹂躏:Q

jmzhwf 发表于 2009-1-30 17:28

继续被LZ蹂躏

iawen 发表于 2009-1-30 17:47

呵呵,DLL也给分离出来了,哈:

1、对DLL的代码段下断点,然后F9运行
中断后,就可以Dump下来了,注意".reloc" 段,我Dump时没有Dump下来,分了2 次Dump,呵呵!

2、然后对照PE头修改!
由于PE对多出了200个空字节,所以,将4个“PointerToRawData“的值减去200即可!
当然,你也可以先不理会多不多200字节,直接对照区段大小来修改:
如图:

PE段的大小是1000,是TEXT段的起始地址是1000了,故把1200改成--1000就OK了:
003E01E4    00100000                                       DD 00001000       ;PointerToRawData = 1000

TEXT段的大小是6000,由rdata段的起始地址是6000+1000了,故为7000:
003E020C    00700000                                       DD 00007000       ;PointerToRawData = 7000

依次:
1000         TEXT
7000         rdata
8000         data
b000         reloc[加上本身的1000,我也不知道为什么,有达人指点一下!]:D

[ 本帖最后由 chenguo 于 2009-1-30 17:48 编辑 ]

iawen 发表于 2009-1-30 18:46

我也明白reloc的地址为什么多出1000了,哈

那不是要加上本身的地址,而是因为他VC值多出了1000,是C000,
而实际地址则应该是B000,哈;P
页: [1]
查看完整版本: 继续UnPackMe