吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4763|回复: 5
收起左侧

[CrackMe] 吾爱破解2012CM大赛破文-淡然出尘

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

本帖最后由 Chief 于 2013-1-5 22:58 编辑

【文章标题】: 吾爱破解2012CM大赛破文-淡然出尘
【文章作者】: Chief
【作者邮箱】: hi_Chief@163.com
【下载地址】: http://down.52pojie.cn/2012CM/%E ... %E5%87%BA%E5%B0%98/
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【难      度】: 中
--------------------------------------------------------------------------------
【详细过程】

VB程序代码稍微比较多,慢慢玩
双击程序,运行看看,啊?无反应。

现在载入OD---F9运行,额,原来一运行就退出。
  怎么办呢?
  重载,别运行,搜索UINCODE
  来到
  0040143C   push CrackMe.00408154                     (Initial CPU selection)
  004086F7   push CrackMe.004086D4                     蚴@蛄@
  004087B3   push CrackMe.00408790                     蝤@蝴@
  004087FB   push CrackMe.004087D8                     蝤@蝈@
  00408843   push CrackMe.00408820                     蝤@蛴@
  00409AA8   push CrackMe.004088E8                     \
  00409AD5   push CrackMe.004088F0                     .exe
  00409B2E   mov dword ptr ss:[ebp-0x7C],CrackMe.0040  YYYYMMDDHHMMSS
  00409B9B   push CrackMe.00408924                     20120409080810
  00409E6A   mov dword ptr ss:[ebp-0xE4],CrackMe.0040  0
  00409E7E   mov dword ptr ss:[ebp-0xF4],CrackMe.0040  9
  0040A71C   push CrackMe.00408990                     未注册
  0040A74B   mov edx,CrackMe.0040899C                  OllyDbg.exe
  0040A766   mov edx,CrackMe.004089B8                  exescope.exe
  0040A781   mov edx,CrackMe.004089D8                  冰封溪谷.exe
  0040A79C   mov edx,CrackMe.004089F0                  SMARTCHECK.exe
  0040A7B7   mov edx,CrackMe.00408A14                  吾爱破解.exe
  0040A9FF   push CrackMe.00408A2C                     CrackMe By自浩
  0040AB20   push CrackMe.00408A5C                     http://www.52pojie.cn/?fromuid=185372
  0040AB2C   push CrackMe.00408A4C                     open
  0040AC50   push CrackMe.00408AAC                     http://www.52pojie.cn/thread-141805-1-1.html
  0040AC5C   push CrackMe.00408A4C                     open
  0040AE79   push CrackMe.00408B0C                     请输入数字和字母的混合字符串!
  0040B2EB   push CrackMe.004088E8                     \
  0040B30E   push CrackMe.004088F0                     .exe
双击 0040A71C   push CrackMe.00408990                     未注册
  往上
  来到断首
  0040A6A0   > \55            push ebp
  0040A6A1   .  8BEC          mov ebp,esp
  0040A6A3   .  83EC 0C       sub esp,0xC
  0040A6A6   .  68 86124000   push <jmp.&MSVBVM60.__vbaExceptHandler>  ;  SE 处理程序安装
  0040A6AB   .  64:A1 0000000>mov eax,dword ptr fs:[0]
  0040A6B1   .  50            push eax
  0040A6B2   .  64:8925 00000>mov dword ptr fs:[0],esp
  0040A6B9   .  83EC 50       sub esp,0x50
0040A6A0   > \55            push ebp------------------retn掉。
运行,OK窗口出现。如下图

  
  这里要运用VB断点脚本 插件--ODbgscript ---选取  Delphi & VB事件断点查找脚本.osc
  
  运行-来到
  004096A6   . /E9 F50F0000   jmp CrackMe.0040A6A0                     ;  断在这里
  004096AB   . |816C24 04 4B0>sub dword ptr ss:[esp+0x4],0x4B
  004096B3   . |E9 D8130000   jmp CrackMe.0040AA90
  004096B8   . |816C24 04 530>sub dword ptr ss:[esp+0x4],0x53
  004096C0   . |E9 FB140000   jmp CrackMe.0040ABC0
  004096C5   . |816C24 04 5F0>sub dword ptr ss:[esp+0x4],0x5F
  004096CD   . |E9 1E160000   jmp CrackMe.0040ACF0
  004096D2   . |816C24 04 5F0>sub dword ptr ss:[esp+0x4],0x5F
  004096DA   . |E9 11170000   jmp CrackMe.0040ADF0
  004096DF   . |816C24 04 630>sub dword ptr ss:[esp+0x4],0x63
  004096E7   . |E9 44180000   jmp CrackMe.0040AF30
  004096EC   . |816C24 04 4F0>sub dword ptr ss:[esp+0x4],0x4F
  004096F4   . |E9 37190000   jmp CrackMe.0040B030
  004096F9   . |816C24 04 FFF>sub dword ptr ss:[esp+0x4],0xFFFF
  00409701   . |E9 9A190000   jmp CrackMe.0040B0A0
  00409706   . |816C24 04 5F0>sub dword ptr ss:[esp+0x4],0x5F
  0040970E   . |E9 ED190000   jmp CrackMe.0040B100
  00409713   . |816C24 04 FFF>sub dword ptr ss:[esp+0x4],0xFFFF
  0040971B   . |E9 C01A0000   jmp CrackMe.0040B1E0
  00409720   . |816C24 04 FFF>sub dword ptr ss:[esp+0x4],0xFFFF
  00409728   . |E9 831C0000   jmp CrackMe.0040B3B0
我们要的是按钮事件,现在断点一个一个取消,直到找到按钮事件。
  00409699   . /E9 B2050000   jmp CrackMe.00409C50                     ;  按钮事件
  0040969E   . |816C24 04 3F0>sub dword ptr ss:[esp+0x4],0x3F
  004096A6   . |E9 F50F0000   jmp CrackMe.0040A6A0                     ;  断在这里
  004096AB   . |816C24 04 4B0>sub dword ptr ss:[esp+0x4],0x4B
  004096B3   . |E9 D8130000   jmp CrackMe.0040AA90
  004096B8   . |816C24 04 530>sub dword ptr ss:[esp+0x4],0x53
  004096C0   . |E9 FB140000   jmp CrackMe.0040ABC0
找到了,F8单步
  到了
  00409C50   > \55            push ebp
  00409C51   .  8BEC          mov ebp,esp
  00409C53   .  83EC 18       sub esp,0x18
  00409C56   .  68 86124000   push <jmp.&MSVBVM60.__vbaExceptHandler>  ;  SE 处理程序安装
  00409C5B   .  64:A1 0000000>mov eax,dword ptr fs:[0]
  00409C61   .  50            push eax
  00409C62   .  64:8925 00000>mov dword ptr fs:[0],esp
  00409C69   .  B8 40010000   mov eax,0x140
  00409C6E   .  E8 0D76FFFF   call <jmp.&MSVBVM60.__vbaChkstk>
  00409C73   .  53            push ebx
  00409C74   .  56            push esi
  00409C75   .  57            push edi
F8单步往下跟.
  这里出现我们刚才输的假用户名
  00409D38   > \C785 C0FEFFFF>mov dword ptr ss:[ebp-0x140],0x0
  00409D42   >  8B85 74FFFFFF mov eax,dword ptr ss:[ebp-0x8C]
  00409D48   .  8985 C4FEFFFF mov dword ptr ss:[ebp-0x13C],eax         ;  假用户名
  00409D4E   .  C785 74FFFFFF>mov dword ptr ss:[ebp-0x8C],0x0
  00409D58   .  8B8D C4FEFFFF mov ecx,dword ptr ss:[ebp-0x13C]
  00409D5E   .  898D 4CFFFFFF mov dword ptr ss:[ebp-0xB4],ecx
  00409D64   .  C785 44FFFFFF>mov dword ptr ss:[ebp-0xBC],0x8
  00409D6E   .  8D95 44FFFFFF lea edx,dword ptr ss:[ebp-0xBC]
  00409D74   .  8D4D CC       lea ecx,dword ptr ss:[ebp-0x34]
继续F8
  00409E0A     /0F8F 02010000 jg CrackMe.00409F12                      ;  可疑跳转
  00409E10   . |C745 FC 06000>mov dword ptr ss:[ebp-0x4],0x6
  00409E17   . |C785 4CFFFFFF>mov dword ptr ss:[ebp-0xB4],0x1
  00409E21   . |C785 44FFFFFF>mov dword ptr ss:[ebp-0xBC],0x2
  00409E2B   . |8D85 44FFFFFF lea eax,dword ptr ss:[ebp-0xBC]
可疑的跳转,状态=未实现。
00409E0A     /0F8F 02010000 jg CrackMe.00409F12 
让他往下跳试下,改标志位 S 1改为 S 0  ---跳转实现
  
  单步跟
  00409F3B   .  52            push edx                                 ; ||var28
  00409F3C   .  8D85 44FFFFFF lea eax,dword ptr ss:[ebp-0xBC]          ; ||
  00409F42   .  50            push eax                                 ; ||SaveTo8 = 0012F44C
  00409F43      FF15 A0104000 call dword ptr ds:[<&MSVBVM60.__vbaVarMu>; |\__vbaVarMul
  00409F49   .  50            push eax                                 ; |var28
  00409F4A   .  8D8D 34FFFFFF lea ecx,dword ptr ss:[ebp-0xCC]          ; |
  00409F50   .  51            push ecx                                 ; |SaveTo8
到这里程序退出
00409F43      FF15 A0104000 call dword ptr ds:[<&MSVBVM60.__vbaVarMu>; |\__vbaVarMul
重新载入
  这次不让他跳试试
00409E0A     /0F8F 02010000 jg CrackMe.00409F12  
到了这里
  00409EEA   .  8D4D BC       lea ecx,dword ptr ss:[ebp-0x44]
  00409EED   .  51            push ecx
  00409EEE   .  8D95 44FFFFFF lea edx,dword ptr ss:[ebp-0xBC]
  00409EF4   .  52            push edx
  00409EF5   .  FF15 C0104000 call dword ptr ds:[<&MSVBVM60.__vbaVarCa>;  msvbvm60.__vbaVarCat
  00409EFB   .  8BD0          mov edx,eax
  00409EFD   .  8D4D AC       lea ecx,dword ptr ss:[ebp-0x54]
  00409F00   .  FF15 0C104000 call dword ptr ds:[<&MSVBVM60.__vbaVarMo>;  msvbvm60.__vbaVarMove
  00409F06   >  C745 FC 0A000>mov dword ptr ss:[ebp-0x4],0xA
  00409F0D   .^ E9 D8FEFFFF   jmp CrackMe.00409DEA
  00409F12   >  C745 FC 0B000>mov dword ptr ss:[ebp-0x4],0xB
  00409F19   .  C785 1CFFFFFF>mov dword ptr ss:[ebp-0xE4],0xC
  00409F23   .  C785 14FFFFFF>mov dword ptr ss:[ebp-0xEC],0x2
  00409F2D   .  8D45 AC       lea eax,dword ptr ss:[ebp-0x54]
  00409F30   .  50            push eax                                 ; /var18
往上跳回去了, - -!
00409F0D   .^ E9 D8FEFFFF   jmp CrackMe.00409DEA
貌似计算什么东西。
  
  不管他F8继续---先跑一遍,让他往上跳,第二遍,还是把S 1改成 S 0   算法就不分析了。
  跳转实现,F8走,还是到了
  00409F3B   .  52            push edx                                 ; ||var28
  00409F3C   .  8D85 44FFFFFF lea eax,dword ptr ss:[ebp-0xBC]          ; ||
  00409F42   .  50            push eax                                 ; ||SaveTo8
  00409F43      FF15 A0104000 call dword ptr ds:[<&MSVBVM60.__vbaVarMu>; |\__vbaVarMul
  00409F49   .  50            push eax                                 ; |var28
  00409F4A   .  8D8D 34FFFFFF lea ecx,dword ptr ss:[ebp-0xCC]          ; |
这次没退出了。
  00409F43      FF15 A0104000 call dword ptr ds:[<&MSVBVM60.__vbaVarMu>; |\__vbaVarMul
  
  F8继续走,VB代码长,不急慢慢跟
  到了
  0040A171   . /EB 0A         jmp XCrackMe.0040A17D
  0040A173   > |C785 B8FEFFFF>mov dword ptr ss:[ebp-0x148],0x0
  0040A17D   > \8B8D 74FFFFFF mov ecx,dword ptr ss:[ebp-0x8C]
  0040A183   .  51            push ecx                                 ;  假码
  0040A184   .  8B95 78FFFFFF mov edx,dword ptr ss:[ebp-0x88]
  0040A18A   .  52            push edx
出现我们刚才输的假码
  
  F8继续,来到
  0040A1ED   .  83C4 0C       add esp,0xC
  0040A1F0   .  0FBF95 F0FEFF>movsx edx,word ptr ss:[ebp-0x110]
  0040A1F7   .  85D2          test edx,edx
  0040A1F9      0F84 1C030000 je CrackMe.0040A51B                      ;  关键跳
  0040A1FF   .  C745 FC 10000>mov dword ptr ss:[ebp-0x4],0x10
  0040A206   .  8B45 08       mov eax,dword ptr ss:[ebp+0x8]
  0040A209   .  8B08          mov ecx,dword ptr ds:[eax]
  0040A20B   .  8B55 08       mov edx,dword ptr ss:[ebp+0x8]
  0040A20E   .  52            push edx
  0040A1F9      0F84 1C030000 je CrackMe.0040A51B  -----状态=实现跳转
很大的跳转,应该是关键了,测试下
  既然是实现状态,我们让他别跳。
  0040A1F9      0F84 1C030000 je CrackMe.0040A51B 
Nop掉,运行

  哈哈,“您给的确认码是正确的” OK了。

  
  完毕。
  

yes,天又亮了,各位早安,    睡觉去了。      
  
  
  
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于Chief, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2012年05月01日 6:15:12


本帖子中包含更多资源

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

x

免费评分

参与人数 1热心值 +1 收起 理由
Peace + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.

查看全部评分

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

小咪咪 发表于 2012-5-1 08:04
Cheif牛越来越犀利了  您让小菜情何以堪


点评

哈哈,我运气好而已,纯无技术。。。。。  发表于 2012-5-1 11:41
tk86935367 发表于 2012-5-1 09:10
犀利,奋斗到天明啊。

点评

呵呵,必须的。  发表于 2012-5-1 11:58
微0渺 发表于 2012-5-5 02:04
这样破解是不正确的吧、怎么保存后不能运行啊、是不是有什么验证?

点评

别开玩笑了。 未注册上面0040A6A0----RETN掉 0040A1F9 Je---NOP掉 复制全部修改 ,没问题 正常运行,而且注册成功   发表于 2012-5-12 16:32
微0渺 发表于 2012-5-12 19:35
尽管照你的话,没有保存运行成功!你的一句“别开玩笑了。”我知道一定是我错了、膜拜、大牛牛啊!再膜拜!

点评

你什么系统?我XP无压力。你这段话我听的懂...不必这样讲...  发表于 2012-5-12 23:44
奕彤依格 发表于 2014-3-23 22:45
MEI YOU KA ZEN ME BU XING
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 21:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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