吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4768|回复: 2
收起左侧

[原创] 160cm之008 爆破、追码 by cqr2287

[复制链接]
KaQqi 发表于 2016-11-4 20:24
160cm不是这么单一的。前面几个基本都是Delphi,这次来个vb
总算换语言了。vb编写的程序真是贼小的。
作者没改软件自带图标。按惯例,打开软件熟悉注册流程。
捕获.PNG
这字符串是什么玩意,我能说我看不懂吗。。。
随便输入。
捕获.PNG
啊哈哈,这软件没有退出!适合玩。




爆破开始。
载入od,使用f12暂停法。
广告:可参见本人第12和14课。
[Asm] 纯文本查看 复制代码
00401EA3   .  FF15 F0304000 call dword ptr ds:[<&MSVBVM50.#rtcMsgBox>;  Msvbvm50.rtcMsgBox
00401EA9   .  8D95 44FFFFFF lea edx,dword ptr ss:[ebp-0xBC]

这是vb函数msgbox。下次下这个断点破解
向上翻找,回溯。
[Asm] 纯文本查看 复制代码
00401E3E   . /E9 95000000   jmp Andréna.00401ED8
00401E43   > |8B3D 48314000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaVa>;  Msvbvm50.__vbaVarDup
00401E49   . |B9 04000280   mov ecx,0x80020004
00401E4E   . |894D 9C       mov dword ptr ss:[ebp-0x64],ecx          ;  ntdll.773F68B0
00401E51   . |B8 0A000000   mov eax,0xA
00401E56   . |894D AC       mov dword ptr ss:[ebp-0x54],ecx          ;  ntdll.773F68B0
00401E59   . |BB 08000000   mov ebx,0x8
00401E5E   . |8D95 74FFFFFF lea edx,dword ptr ss:[ebp-0x8C]
00401E64   . |8D4D B4       lea ecx,dword ptr ss:[ebp-0x4C]
00401E67   . |8945 94       mov dword ptr ss:[ebp-0x6C],eax
00401E6A   . |8945 A4       mov dword ptr ss:[ebp-0x5C],eax
00401E6D   . |C785 7CFFFFFF>mov dword ptr ss:[ebp-0x84],Andréna.0040>;  UNICODE "leider NeiN !"
00401E77   . |899D 74FFFFFF mov dword ptr ss:[ebp-0x8C],ebx
00401E7D   . |FFD7          call edi                                 ;  Msvbvm50.__vbaVarDup; <&MSVBVM50.__vbaVarDup>
00401E7F   . |8D55 84       lea edx,dword ptr ss:[ebp-0x7C]
00401E82   . |8D4D C4       lea ecx,dword ptr ss:[ebp-0x3C]
00401E85   . |C745 8C E01A4>mov dword ptr ss:[ebp-0x74],Andréna.0040>;  UNICODE "Leider Falsch !  Schau noch mal genau nach ..."

我们看到了vb典型判断的下面一个部分。据我推测,jmp上面是成功。
回溯看看。
[Asm] 纯文本查看 复制代码
00401D9D   . /0F84 A0000000 je Andréna.00401E43
00401DA3   . |FF15 2C314000 call dword ptr ds:[<&MSVBVM50.#rtcBeep_5>;  Msvbvm50.rtcBeep
00401DA9   . |8B3D 48314000 mov edi,dword ptr ds:[<&MSVBVM50.__vbaVa>;  Msvbvm50.__vbaVarDup
00401DAF   . |B9 04000280   mov ecx,0x80020004
00401DB4   . |894D 9C       mov dword ptr ss:[ebp-0x64],ecx          ;  ntdll.773F68B0
00401DB7   . |B8 0A000000   mov eax,0xA
00401DBC   . |894D AC       mov dword ptr ss:[ebp-0x54],ecx          ;  ntdll.773F68B0
00401DBF   . |BB 08000000   mov ebx,0x8
00401DC4   . |8D95 74FFFFFF lea edx,dword ptr ss:[ebp-0x8C]
00401DCA   . |8D4D B4       lea ecx,dword ptr ss:[ebp-0x4C]
00401DCD   . |8945 94       mov dword ptr ss:[ebp-0x6C],eax
00401DD0   . |8945 A4       mov dword ptr ss:[ebp-0x5C],eax
00401DD3   . |C785 7CFFFFFF>mov dword ptr ss:[ebp-0x84],Andréna.0040>;  UNICODE "SuCCESFul !"
00401DDD   . |899D 74FFFFFF mov dword ptr ss:[ebp-0x8C],ebx
00401DE3   . |FFD7          call edi                                 ;  Msvbvm50.__vbaVarDup; <&MSVBVM50.__vbaVarDup>

ok。je是关键跳。Nop即可成功。
捕获.PNG
哈哈哈哈。


追码开始。
按照vb程序的惯例,我们在段首下个断点玩玩。
PS:这软件好,成功了还能再次验证。不用重新载入
运行,注册。
断下了f8跟踪。
[Asm] 纯文本查看 复制代码
00401D09   .  57            push edi
00401D0A   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
00401D0D   .  897D 08       mov dword ptr ss:[ebp+0x8],edi
00401D10   .  FF53 04       call dword ptr ds:[ebx+0x4]              ;  Msvbvm50.BASIC_CLASS_AddRef

路过的第一个call。此时eax被赋值1.
[Asm] 纯文本查看 复制代码
00401D54   .  FF92 A0000000 call dword ptr ds:[edx+0xA0]
00401D5A   .  3BC6          cmp eax,esi
00401D5C   .  7D 12         jge short Andréna.00401D70

这也是可疑的。eax为0.
[Asm] 纯文本查看 复制代码
00401D70   > \8B4D D8       mov ecx,dword ptr ss:[ebp-0x28]
00401D73   .  51            push ecx

这两句提取了假码。也就是说,真正判断这里开始。以上call没有用。
[Asm] 纯文本查看 复制代码
00401D74   .  68 541A4000   push Andréna.00401A54                    ;  UNICODE "SynTaX 2oo1"
00401D79   .  FF15 08314000 call dword ptr ds:[<&MSVBVM50.__vbaStrCm>;  Msvbvm50.__vbaStrCmp

这就是假码下面的。eax为1.
[Asm] 纯文本查看 复制代码
00401D8B   .  FF15 5C314000 call dword ptr ds:[<&MSVBVM50.__vbaFreeS>;  Msvbvm50.__vbaFreeStr
00401D91   .  8D4D D4       lea ecx,dword ptr ss:[ebp-0x2C]

指向假码的指针寄存器。
[Asm] 纯文本查看 复制代码
00401D94   .  FF15 60314000 call dword ptr ds:[<&MSVBVM50.__vbaFreeO>;  Msvbvm50.__vbaFreeObj
00401D9A   .  66:3BFE       cmp di,si

si减去了di,结果为0。
我们从新从提取假码处跟踪。
[Asm] 纯文本查看 复制代码
0012F380   00401A54  UNICODE "SynTaX 2oo1"
0012F384   00262C7C  UNICODE "cqr2287"
0012F388   00401D7F  返回到 Andréna.00401D7F 来自 Msvbvm50.__vbaStrCmp
0012F38C   00401A54  UNICODE "SynTaX 2oo1"
0012F390   00262C7C  UNICODE "cqr2287"

堆栈出现如下内容。
[Asm] 纯文本查看 复制代码
0F01F8F6 >  FF7424 08       push dword ptr ss:[esp+0x8]              ; Andréna.00401D7F
0F01F8FA    FF7424 08       push dword ptr ss:[esp+0x8]              ; Andréna.00401D7F
0F01F8FE    6A 00           push 0x0
0F01F900    E8 5E3CFEFF     call Msvbvm50.__vbaStrComp
0F01F905    0FBFC0          movsx eax,ax
0F01F908    C2 0800         retn 0x8

关键call。
那么注册码是否为为SynTaX 2oo1?试试。
捕获.PNG
好的。


第一遍跟踪我便跟到了SynTaX 2oo1。但当时没有肯定。
当时是认为这个时候这个字符串是软件的标题
而我没有想到,cm的注册码是个固定字符串。
长知识了,cm也有这么验证结果的。
感谢各位的观看


免费评分

参与人数 7吾爱币 +1 热心值 +7 收起 理由
siuhoapdou + 1 + 1 谢谢@Thanks!
895515845 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
枫MapleLCG + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
很快再相见123 + 1 我很赞同!
Ps出来的小赵 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
丶小明 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!!!头衔亮了
炽日夕辉 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

huangn2008 发表于 2016-11-4 20:41
本帖最后由 huangn2008 于 2016-11-4 20:43 编辑

期待楼主完成160个目标

点评

谢谢大牛,我会坚持下去。  发表于 2016-11-4 21:05
Very_good 发表于 2016-11-4 21:41
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-17 10:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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