jmty2008 发表于 2008-12-28 15:03

unpackme 一个oep好找关键是修复

脱了的写教程吧.....:lol :lol :lol

雨后的芬芳 发表于 2008-12-28 15:09

不错。支持下。

ximo 发表于 2008-12-28 16:48

anti-dump?
输入表的修复貌似也不难,REC的等级一修复就OK的,懒得分析加密的地方了.

[ 本帖最后由 ximo 于 2008-12-28 16:49 编辑 ]

小生我怕怕 发表于 2008-12-28 17:21

没有发现什么难的啊!简单写下步骤
0046B060 >90            nop                        //OD载入
0046B061    90            nop
0046B062    60            pushad
0046B063    E8 00000000   call UnPackMe.0046B068       //在此执行ESP定律
0046B068    5D            pop ebp
━━━━━━━━━━━━━━━━━━━━━━━━━━
0046B7DF    50            push eax                     //ESP定律后程序停在这里
0046B7E0    33C0            xor eax,eax
0046B7E2    64:FF30         push dword ptr fs:
0046B7E5    64:8920         mov dword ptr fs:,esp
0046B7E8    EB 01         jmp short UnPackMe.0046B7EB   //单步F8走过这个JMP
━━━━━━━━━━━━━━━━━━━━━━━━━━
0046B7EB    0000            add byte ptr ds:,al       //停在这里一串空代码,注意堆栈窗口
0046B7ED    0000            add byte ptr ds:,al
0046B7EF    0000            add byte ptr ds:,al
0046B7F1    0000            add byte ptr ds:,al
━━━━━━━堆栈窗口━━━━━━━━━━━━━━
0012FFBC   0012FFE0   指针到下一个 SEH 记录
0012FFC0   0046B78E   SE 句柄                           //SE句柄处,右键数据窗口跟随
0012FFC4   7C816FD7   返回到 kernel32.7C816FD7
0012FFC8   7C930738   ntdll.7C930738
0012FFCC   FFFFFFFF
━━━━━━━数据窗口━━━━━━━━━━━━━━
0046B78E57EC8B55                              //右键断点---内存访问
0046B7928B10458B                              //下好断,shift+f9运行
0046B7960000C4B8
0046B79A3337FF00
━━━━━━━━━━━━━━━━━━━━━━━━━━
0046B78E    55            push ebp                        //程序停在这里
0046B78F    8BEC            mov ebp,esp                     //取消内存断点,F8单步向下走
0046B791    57            push edi
0046B792    8B45 10         mov eax,dword ptr ss:
0046B795    8BB8 C4000000   mov edi,dword ptr ds:
0046B79B    FF37            push dword ptr ds:
0046B79D    33FF            xor edi,edi
0046B79F    64:8F07         pop dword ptr fs:
0046B7A2    8380 C4000000 0>add dword ptr ds:,8
0046B7A9    8BB8 A4000000   mov edi,dword ptr ds:
0046B7AF    C1C7 07         rol edi,7
0046B7B2    89B8 B8000000   mov dword ptr ds:,edi          //走到这里时注意EDI里的值就是我们的OEP
0046B7B8    B8 00000000   mov eax,0                              //CTRL+G输入EDI的值004271B0
0046B7BD    5F            pop edi
0046B7BE    C9            leave
0046B7BF    C3            retn
━━━━━━━━━━━━━━━━━━━━━━━━━━
004271B0    55            push ebp                         //F2下断,SHIFT+F9运行
004271B1    8BEC            mov ebp,esp                      //运行importRCE把程序修复,修复时无效指针用等级1就可以解决
004271B3    6A FF         push -1                        //直接importRCE把程序DUMP,修复即可
004271B5    68 600E4500   push UnPackMe.00450E60
004271BA    68 C8924200   push UnPackMe.004292C8
004271BF    64:A1 00000000mov eax,dword ptr fs:
004271C5    50            push eaxIAT加密指令是这个
0046B66C    8932            mov dword ptr ds:,esi
这句NOP掉就可以啦!

[ 本帖最后由 小生我怕怕 于 2008-12-28 17:35 编辑 ]

jmty2008 发表于 2008-12-28 19:04

0012FFBC   0012FFE0   指针到下一个 SEH 记录
0012FFC0   0046B78E   SE 句柄                           //SE句柄处,右键数据窗口跟随
0012FFC4   7C816FD7   返回到 kernel32.7C816FD7
0012FFC8   7C930738   ntdll.7C930738
0012FFCC   FFFFFFFF

这里不用这么麻烦,直接上面的空代码处F8,之后再一下alt+f9就到oep了,无效指针用importRCE 1.6的没反应,必须用1.7,其实我的原意是想大家不用importRCE而是手动修复这些无效指针

小生我怕怕 发表于 2008-12-28 23:23

加密语句在这个地址完成 0046B66C
执行输入表我们都是1.6修复的!

wgz001 发表于 2008-12-29 09:28

内存映射,项目 21
地址=00463000
大小=00008000 (32768.)
物主=UnPackMe 00400000
区段=.rsrc
包含=resources
类型=Imag 01001002
访问=R
初始访问=RWE

内存映射,项目 17
地址=00401000
大小=0004A000 (303104.)
物主=UnPackMe 00400000
区段=.text
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE

两次内存到达OEP

004271B0    55            push ebp
004271B1    8BEC            mov ebp,esp
004271B3    6A FF         push -1
004271B5    68 600E4500   push UnPackMe.00450E60
004271BA    68 C8924200   push UnPackMe.004292C8
004271BF    64:A1 00000000mov eax,dword ptr fs:
004271C5    50            push eax

修复用等级一   修复可以运行

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(手动修复
0046B66C    8932            mov dword ptr ds:,esi               ; 这里应该NOP掉
可以找到部分 IAT 指针   好像有什么东东   到不了OEP   郁闷中)

jmty2008 发表于 2008-12-30 11:17

都这么懒的,都不是手动修复:( :(

小生我怕怕 发表于 2008-12-30 13:21

原帖由 jmty2008 于 2008-12-30 11:17 发表 http://bbs.52pojie.cn/images/common/back.gif
都这么懒的,都不是手动修复:( :(
你只要先到OEPDUMP一份,然后从载程序,把我说的加密地址NOP掉,在次运行程序填上OEP,IAT指针就回来啦,修复即可!

wgz001 发表于 2008-12-31 11:03

期待楼主发个IAT加密的分析   :victory:
页: [1] 2
查看完整版本: unpackme 一个oep好找关键是修复