吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7100|回复: 14
收起左侧

unpackme 一个oep好找关键是修复

[复制链接]
jmty2008 发表于 2008-12-28 15:03
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

雨后的芬芳 发表于 2008-12-28 15:09
不错。支持下。
ximo 发表于 2008-12-28 16:48
anti-dump?
输入表的修复貌似也不难,REC的等级一修复就OK的,懒得分析加密的地方了.

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
小生我怕怕 发表于 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:[eax]
0046B7E5    64:8920         mov dword ptr fs:[eax],esp
0046B7E8    EB 01           jmp short UnPackMe.0046B7EB   //单步F8走过这个JMP
━━━━━━━━━━━━━━━━━━━━━━━━━━
0046B7EB    0000            add byte ptr ds:[eax],al       //停在这里一串空代码,注意堆栈窗口
0046B7ED    0000            add byte ptr ds:[eax],al
0046B7EF    0000            add byte ptr ds:[eax],al
0046B7F1    0000            add byte ptr ds:[eax],al
━━━━━━━堆栈窗口━━━━━━━━━━━━━━
0012FFBC   0012FFE0   指针到下一个 SEH 记录
0012FFC0   0046B78E   SE 句柄                             //SE句柄处,右键数据窗口跟随
0012FFC4   7C816FD7   返回到 kernel32.7C816FD7
0012FFC8   7C930738   ntdll.7C930738
0012FFCC   FFFFFFFF
━━━━━━━数据窗口━━━━━━━━━━━━━━
0046B78E  57EC8B55                              //右键断点---内存访问
0046B792  8B10458B                              //下好断,shift+f9运行
0046B796  0000C4B8
0046B79A  3337FF00
━━━━━━━━━━━━━━━━━━━━━━━━━━
0046B78E    55              push ebp                        //程序停在这里
0046B78F    8BEC            mov ebp,esp                     //取消内存断点,F8单步向下走
0046B791    57              push edi
0046B792    8B45 10         mov eax,dword ptr ss:[ebp+10]
0046B795    8BB8 C4000000   mov edi,dword ptr ds:[eax+C4]
0046B79B    FF37            push dword ptr ds:[edi]
0046B79D    33FF            xor edi,edi
0046B79F    64:8F07         pop dword ptr fs:[edi]
0046B7A2    8380 C4000000 0>add dword ptr ds:[eax+C4],8
0046B7A9    8BB8 A4000000   mov edi,dword ptr ds:[eax+A4]
0046B7AF    C1C7 07         rol edi,7
0046B7B2    89B8 B8000000   mov dword ptr ds:[eax+B8],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 00000000  mov eax,dword ptr fs:[0]
004271C5    50              push eax
IAT加密指令是这个
0046B66C    8932            mov dword ptr ds:[edx],esi
这句NOP掉就可以啦!

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
 楼主| 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 00000000  mov eax,dword ptr fs:[0]
004271C5    50              push eax

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

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(手动修复  
0046B66C    8932            mov dword ptr ds:[edx],esi               ; 这里应该NOP掉
  可以找到部分 IAT 指针   好像有什么东东   到不了OEP     郁闷中)
 楼主| jmty2008 发表于 2008-12-30 11:17
都这么懒的,都不是手动修复:( :(
小生我怕怕 发表于 2008-12-30 13:21
原帖由 jmty2008 于 2008-12-30 11:17 发表
都这么懒的,都不是手动修复:( :(

你只要先到OEPDUMP一份,然后从载程序,把我说的加密地址NOP掉,在次运行程序填上OEP,IAT指针就回来啦,修复即可!
wgz001 发表于 2008-12-31 11:03
期待楼主发个IAT加密的分析   
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 04:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表