吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5988|回复: 6
收起左侧

[分享] 刚学习断点,试着破解peace2008的cm20090819

[复制链接]
西氏 发表于 2009-9-12 22:27
本帖最后由 西氏 于 2009-9-12 22:28 编辑

【文章标题】: 刚学习断点,试着破解peace2008的cm20090819
【文章作者】: 西氏
【软件名称】: CM20090819【柿子不软系列之大叔的草莓】
【下载地址】: http://www.52pojie.cn/thread-30934-1-1.html
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  开始走按钮路线,以为时比较字符串的。
  bp __vbaStrCmp  下断
  F9  运行,复制用户名xishi  粘贴注册码xishi,被断下来了,继续f9.两次之后,可以注册了,点击注册又被断下来了
  这时alt+f9,返回,
  00402BF6   .  8B1D 58114000 mov ebx,dword ptr ds:[<&MSVBVM60.__vbaFr>;  msvbvm60.__vbaFreeStr//返回到这里,下断
  00402BFC   .  8BF8          mov edi,eax
  00402BFE   .  F7DF          neg edi
  00402C00   .  1BFF          sbb edi,edi
  00402C02   .  8D4D E8       lea ecx,dword ptr ss:[ebp-18]
  00402C05   .  47            inc edi
  00402C06   .  F7DF          neg edi
  00402C08   .  FFD3          call ebx                                 ;  <&MSVBVM60.__vbaFreeStr>
  然后不停的跟,发现怎么都跟不到关键。
  后来下了看了看发现时之后自然的变成了注册了,说明那个点击注册的是骗人的,真猥琐,害得我搞了2个小时。
  那想了想应该又字符串传递,因为原来是“点击注册”后来换成 注册成功之类的。
  所以下了字符串传递。__vbaStrVarMove 和__vbaStrMove这两个断点。点黏贴注册码的时候断下了。继续f9直到最后一次出现断下来的函数为止
  我的电脑上断了六次。所以选第五次。(因为这样才离“点击注册”换成 ”注册成功“最近,前面可能是些其它变量的传递,要先测试才能知道)
  ALT+F9返回
  00403D7B   .  50            push eax  //返回到这里了。
  00403D7C   .  8B4D DC       mov ecx,dword ptr ss:[ebp-24]
  00403D7F   .  51            push ecx
  00403D80   .  FF15 84104000 call dword ptr ds:[<&MSVBVM60.__vbaStrCm>;  msvbvm60.__vbaStrCmp
  00403D86   .  F7D8          neg eax
  00403D88   .  1BC0          sbb eax,eax
  00403D8A   .  40            inc eax
  00403D8B   .  F7D8          neg eax
  00403D8D   .  66:8985 3CFFF>mov word ptr ss:[ebp-C4],ax
  
  
  
  
  下面是很多相似的也不知道是什么(等高手来解答)
  00403A5D   .  8B95 34FFFFFF mov edx,dword ptr ss:[ebp-CC]
  00403A63   .  52            push edx
  00403A64   .  FF91 A0000000 call dword ptr ds:[ecx+A0]
  00403A6A   .  DBE2          fclex
  00403A6C   .  8985 30FFFFFF mov dword ptr ss:[ebp-D0],eax
  00403A72   .  83BD 30FFFFFF>cmp dword ptr ss:[ebp-D0],0
  00403A79   .  7D 26         jge short CM090819.00403AA1
  00403A7B   .  68 A0000000   push 0A0
  00403A80   .  68 24254000   push CM090819.00402524
  
  走到这个时候
  00403D9D   .  0FBF95 3CFFFF>movsx edx,word ptr ss:[ebp-C4]
  00403DA4   .  85D2          test edx,edx
  00403DA6      0F84 05070000 je CM090819.004044B1  //关键跳
  00403DAC   .  C745 FC 0F000>mov dword ptr ss:[ebp-4],0F
  00403DB3   .  8B45 08       mov eax,dword ptr ss:[ebp+8]
  00403DB6   .  8B08          mov ecx,dword ptr ds:[eax]
  00403DB8   .  8B55 08       mov edx,dword ptr ss:[ebp+8]
  00403DBB   .  52            push edx
  00403DBC   .  FF91 00030000 call dword ptr ds:[ecx+300]
  00403DC2   .  50            push eax
  00403DC3   .  8D45 C4       lea eax,dword ptr ss:[ebp-3C]
  00403DC6   .  50            push eax
  
  上面的关键跳到这(不要跟)
  004044AE   .  83C4 14       add esp,14
  004044B1   >  EB 10         jmp short CM090819.004044C3
  004044B3   >  C745 FC 14000>mov dword ptr ss:[ebp-4],14
  004044BA   .  8B45 08       mov eax,dword ptr ss:[ebp+8]
  004044BD   .  66:C740 34 FF>mov word ptr ds:[eax+34],0FFFF
  004044C3   >  C745 F0 00000>mov dword ptr ss:[ebp-10],0
  004044CA   .  9B            wait
  
  如果不nop掉那个关键跳的话,就在系统的领空再也回来不来了。
  
  一直F8,又走到一个比较重要的地方,
  00403F39   .  8D45 90       lea eax,dword ptr ss:[ebp-70]
  00403F3C   .  50            push eax                                 ; /Length8
  00403F3D   .  0FBF4D D4     movsx ecx,word ptr ss:[ebp-2C]           ; |
  00403F41   .  51            push ecx                                 ; |Start
  00403F42   .  8D55 A0       lea edx,dword ptr ss:[ebp-60]            ; |
  00403F45   .  52            push edx                                 ; |dString8
  00403F46   .  8D45 80       lea eax,dword ptr ss:[ebp-80]            ; |
  00403F49   .  50            push eax                                 ; |RetBUFFER
  00403F4A   .  FF15 74104000 call dword ptr ds:[<&MSVBVM60.#632>]     ; \rtcMidCharVar//f7进去看看
  00403F50   .  8D4D 80       lea ecx,dword ptr ss:[ebp-80]
  00403F53   .  51            push ecx
  00403F54   .  FF15 68104000 call dword ptr ds:[<&MSVBVM60.__vbaBoolV>;  msvbvm60.__vbaBoolVar
  00403F5A   .  50            push eax
  
  
  
  连进两个同样的call程序就跑飞了。
  重新加载。
  。
  这里面又三段
  
  00404170   .  8D55 90       lea edx,dword ptr ss:[ebp-70]
  00404173   .  52            push edx                                 ; /Length8
  00404174   .  0FBF45 D4     movsx eax,word ptr ss:[ebp-2C]           ; |
  00404178   .  50            push eax                                 ; |Start
  00404179   .  8D4D A0       lea ecx,dword ptr ss:[ebp-60]            ; |
  0040417C   .  51            push ecx                                 ; |dString8
  0040417D   .  8D55 80       lea edx,dword ptr ss:[ebp-80]            ; |
  00404180   .  52            push edx                                 ; |RetBUFFER
  00404181   .  FF15 74104000 call dword ptr ds:[<&MSVBVM60.#632>]     ; \rtcMidCharVar
  00404187   .  C785 48FFFFFF>mov dword ptr ss:[ebp-B8],1
  00404191   .  C785 40FFFFFF>mov dword ptr ss:[ebp-C0],2
  每段的值都是一样的
  0012E7CC   00401188  CM090819.00401188
  0012E7D0   0012E914  |RetBUFFER = 0012E914
  0012E7D4   0012E934  |dString8 = 0012E934
  0012E7D8   00000000  |Start = 0
  0012E7DC   0012E924  \Length8 = 12E924
  0012E7E0   0012E914
  
  不知道是什么,我猜应该是中文那几个注册的字符串,还请pace2008,小生我怕怕等大鸟们出来教教小菜。不明白。
  最后怎么想也不明白直接nop掉。发现竟然可以了。不过也有些问题。有时注册带空格的文件名不成功。我怀疑用户名定义的时候
  是不是有个字符串限制,因为跟踪是用户名有个跟26个字母大小写比较的东东。
  还有程序会溢出,用这个用户名
  5394769192718247571624959933172575515731369899253164365389519226243
  31135857284227248638789897216593
  注册不成功,还期待高手进一步解答。
  
  跟踪的中间还发现段这个,不知道是什么。感觉字符串比较重要的东西。
  00403966   .  52            push edx
  00403967   .  FF15 28114000 call dword ptr ds:[<&MSVBVM60.#617>]     ;  msvbvm60.rtcLeftCharVar
  0040396D   .  8D45 90       lea eax,dword ptr ss:[ebp-70]
  00403970   .  50            push eax                                 ; /String8 = 0012E924
  00403971   .  8D4D CC       lea ecx,dword ptr ss:[ebp-34]            ; |
  00403974   .  51            push ecx                                 ; |ARG2
  00403975   .  FF15 DC104000 call dword ptr ds:[<&MSVBVM60.__vbaStrVa>; \__vbaStrVarVal
  0040397B   .  50            push eax
  0040397C   .  FF15 5C114000 call dword ptr ds:[<&MSVBVM60.#581>]     ;  msvbvm60.rtcR8ValFromBstr
  00403982   .  DC0D 08124000 fmul qword ptr ds:[401208]
  
--------------------------------------------------------------------------------
【经验总结】
  不停的跟踪,不停的对比,我中间下过小生破解的文件。一打开猜恍然大悟,原来粘贴注册码的时候已经在注册了,要是一
  直盯着注册那个按钮,估计累死都不知道,里面全是条件语句 case 0...3一直想跳过去也没成功。主要成果还是小生,参
  考了他的爆破版。我只是把我学破解的经过写下来。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于西氏, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年09月12日 22:21:48

免费评分

参与人数 2威望 +2 收起 理由
CHHSun + 1 多多破解P的CM,会在猥琐中长大的
peace2008 + 1 精品文章!分析得非常好,期待继续

查看全部评分

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

CHHSun 发表于 2009-9-12 22:43
在猥琐中不断的成长
 楼主| 西氏 发表于 2009-9-12 22:46
本帖最后由 西氏 于 2009-9-12 22:47 编辑
在猥琐中不断的成长
CHHSun 发表于 2009-9-12 22:43

他的cm太猥琐了。已经做了一天了。知道自己水平还很远,慢慢努力。希望有天能赶上小牛们就行了
什么也不是 发表于 2009-9-12 23:03
Tale 发表于 2009-9-12 23:27
太强大了 成功爆P菊花
ZeNiX 发表于 2009-9-15 09:41
dddddddddddddddddddddddddddddddddddd
jielimiiii 发表于 2009-9-14 20:23


留個證据...
請寫點有內容的東西, 好嗎?
破烂王 发表于 2009-11-2 16:42
看不懂也要看。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-22 17:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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