growuphappily 发表于 2020-3-31 09:40

160个CM之015——超级简单

本帖最后由 growuphappily 于 2020-3-31 13:18 编辑

0x00 前言
先把14个放在一边,看个简单的——第15个
这个CM可以说是相当简单了
我建议你们先去自己破一下试试,很简单
源程序:(解压密码52pojie.cn)
没吾爱币的看这个:https://www.lanzouj.com/iatkeoh
最近在练160个CrackMe,原帖如下:
https://www.52pojie.cn/thread-709699-1-1.html
目录:

题目地址
第一题      https://www.52pojie.cn/forum.php?mod=viewthread&tid=1107523
第二题      https://www.52pojie.cn/forum.php?mod=viewthread&tid=1107888
第三题      ttps://www.52pojie.cn/thread-1108487-1-1.html
第四题      https://www.52pojie.cn/thread-1109140-1-1.html
第五题      太变态了,算了
第六题      https://www.52pojie.cn/thread-1111030-1-1.html
第七题      https://www.52pojie.cn/thread-1112318-1-1.html
第八题      https://www.52pojie.cn/thread-1113163-1-1.html
第九题爆破      https://www.52pojie.cn/thread-1113295-1-1.html
第九题算法         https://www.52pojie.cn/thread-1114003-1-1.html
第十题         https://www.52pojie.cn/thread-1116170-1-1.html
第十一题      https://www.52pojie.cn/thread-1119813-1-1.html
第十一题算法               https://www.52pojie.cn/thread-1120768-1-1.html
第十三题               https://www.52pojie.cn/forum.php?mod=viewthread&tid=1122833&page=1&extra=#pid30408289

第十四题               https://www.52pojie.cn/forum.php?mod=viewthread&tid=1144573&page=1&extra=#pid31010949
第十五题               https://www.52pojie.cn/forum.php?mod=viewthread&tid=1144883&page=1&extra=#pid31020081

0x01 正文
这次程序图标是.....马桶???(作者在想啥...)

打开就是一个Nag,点取消就退出,点确定才进入主程序
这个我感觉应该不能直接NOP了
0x01.01 去Nag
应该是一个rtcMsgBox,下断点

断下了,单步,来到这里

直接NOP试试?
果然不行,保存之后打开没反应
肯定是rtcMsgBox返回了一个值,然后程序判断这个值,来判断是否退出
当点击取消时寄存器是这样的:
EAX 00000002
ECX B9576F48
EDX 00000000
EBX 00000008
ESP 0018FA08
EBP 0018FAC0
ESI 00000000
EDI 00000003
EIP 00402D03 blaster9.00402D03
C 0ES 002B 32位 0(FFFFFFFF)
P 1CS 0023 32位 0(FFFFFFFF)
A 0SS 002B 32位 0(FFFFFFFF)
Z 1DS 002B 32位 0(FFFFFFFF)
S 0FS 0053 32位 7FFDD000(FFF)
T 0GS 002B 32位 0(FFFFFFFF)
D 0
O 0LastErr ERROR_SUCCESS (00000000)

点击确定是这样:
EAX 00000001
ECX ED942C05
EDX 00000000
EBX 00000008
ESP 0018FA08
EBP 0018FAC0
ESI 00000000
EDI 00000003
EIP 00402D03 blaster9.00402D03
C 0ES 002B 32位 0(FFFFFFFF)
P 1CS 0023 32位 0(FFFFFFFF)
A 0SS 002B 32位 0(FFFFFFFF)
Z 1DS 002B 32位 0(FFFFFFFF)
S 0FS 0053 32位 7FFDD000(FFF)
T 0GS 002B 32位 0(FFFFFFFF)
D 0
O 0LastErr ERROR_SUCCESS (00000000)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
可以看到,这个值应该就是eax了
把这个rtcMsgBox的call改成mov eax,0x1(令eax=1的汇编指令)试试?
嗯,可以了
0x01.02 爆破&注册码
先输入假码,确定
之前的rtcMsgBox断下了
运行到返回,单步,来到这里
0040286F   .8975 A4       mov dword ptr ss:,esi
00402872   .8975 94       mov dword ptr ss:,esi
00402875   .8975 84       mov dword ptr ss:,esi
00402878   .89B5 74FFFFFF mov dword ptr ss:,esi
0040287E   .89B5 54FFFFFF mov dword ptr ss:,esi
00402884   .89BD 3CFFFFFF mov dword ptr ss:,edi
0040288A   .FFD7          call edi
0040288C   .50            push eax
0040288D   .8D45 A4       lea eax,dword ptr ss:
00402890   .50            push eax
00402891   .E8 AEE8FFFF   call <jmp.&MSVBVM50.__vbaObjSet>
00402896   .8BF8          mov edi,eax
00402898   .8D4D A8       lea ecx,dword ptr ss:
0040289B   .51            push ecx
0040289C   .57            push edi
0040289D   .8B07          mov eax,dword ptr ds:
0040289F   .FF90 A0000000 call dword ptr ds:
004028A5   .3BC6          cmp eax,esi
004028A7   .7D 11         jge short blaster9.004028BA
004028A9   .68 A0000000   push 0xA0
004028AE   .68 F41D4000   push blaster9.00401DF4
004028B3   .57            push edi
004028B4   .50            push eax
004028B5   .E8 84E8FFFF   call <jmp.&MSVBVM50.__vbaHresultCheckObj>
004028BA   >FF75 A8       push dword ptr ss:
004028BD   .68 DC1D4000   push blaster9.00401DDC                   ;UNICODE "2G83G35Hs2"
004028C2   .E8 83E8FFFF   call <jmp.&MSVBVM50.__vbaStrCmp>
004028C7   .8BF8          mov edi,eax
004028C9   .8D4D A8       lea ecx,dword ptr ss:
004028CC   .F7DF          neg edi
004028CE   .1BFF          sbb edi,edi
004028D0   .47            inc edi
004028D1   .F7DF          neg edi
004028D3   .E8 60E8FFFF   call <jmp.&MSVBVM50.__vbaFreeStr>
004028D8   .8D4D A4       lea ecx,dword ptr ss:
004028DB   .E8 52E8FFFF   call <jmp.&MSVBVM50.__vbaFreeObj>
004028E0   .66:3BFE       cmp di,si
004028E3   .0F84 F3000000 je blaster9.004029DC ;跳往失败
004028E9   .6A 08         push 0x8
004028EB   .8D95 74FFFFFF lea edx,dword ptr ss:
004028F1   .5E            pop esi                                  ;0018F2DC
004028F2   .8D4D AC       lea ecx,dword ptr ss:
004028F5   .C785 7CFFFFFF>mov dword ptr ss:,blaster9.004>;UNICODE "Danke, das Passwort ist richtig !"
004028FF   .89B5 74FFFFFF mov dword ptr ss:,esi
00402905   .E8 22E8FFFF   call <jmp.&MSVBVM50.__vbaVarCopy>
爆破很简单,把004028E3的jeNOP掉就可以了

再看注册码
这个字符串很可疑

而且下面跟着__vbaStrCmp
输入这个字符串,成功!
0x02 最后
别白嫖了,评个分呗!回帖有70%几率中奖哦!

默之然i 发表于 2020-3-31 20:50

gtu111 发表于 2020-3-31 09:56
大佬,怎么从基础学吗一直摸不着头脑~

先学一门编程语言,最好是C语言。
然后再去看点数据结构,掌握链表和栈的基本知识
之后再学点汇编,不要求会写汇编,只要能看得懂最基本的指令就好。例如jnz,jz,pop, mov, 等等
学汇编可以看王爽的汇编语言或者CSAPP的第三章。私以为前者过于详细,个人比较倾向于后者。
最后就可以去看吾爱破解的入门教程了,看完之后你就会醍醐灌顶,所有的知识都连通了起来。而不是丈二摸不着头脑。

以上是我的学习之路,你可以参考参考。
如果对计算机一点了解都没有就上手破解的话,难度是非常非常的高
破解与安全这块本身要求就比较高,需要大量的知识作为基础。
最重要的是培养出兴趣来。
希望你能坚持到最后,加油!:lol

gtu111 发表于 2020-3-31 20:54

默之然i 发表于 2020-3-31 20:50
先学一门编程语言,最好是C语言。
然后再去看点数据结构,掌握链表和栈的基本知识
之后再学点汇编,不 ...

{:301_972:}非常感谢大佬~我会慢慢学的

小鱼cc 发表于 2020-3-31 09:51

鄙人做到第三题就做不走了   仰望大佬

gtu111 发表于 2020-3-31 09:56

{:301_979:}大佬,怎么从基础学吗一直摸不着头脑~

growuphappily 发表于 2020-3-31 09:58

小鱼cc 发表于 2020-3-31 09:51
鄙人做到第三题就做不走了   仰望大佬

只爆破也不会吗{:301_1008:}

小鱼cc 发表于 2020-3-31 10:01

growuphappily 发表于 2020-3-31 09:58
只爆破也不会吗

简单的爆破还是可以应付一下 {:1_907:}太难的就不行了

墨染风华 发表于 2020-3-31 10:03

来咯来咯{:301_997:}

浩然123 发表于 2020-3-31 10:05

大佬,怎么从基础学吗一直摸不着头脑

growuphappily 发表于 2020-3-31 10:26

gtu111 发表于 2020-3-31 09:56
大佬,怎么从基础学吗一直摸不着头脑~

去看吾爱破解官方教程啊
如果看不懂,,那就先去学学汇编{:301_1008:}

growuphappily 发表于 2020-3-31 10:29

小鱼cc 发表于 2020-3-31 10:01
简单的爆破还是可以应付一下 太难的就不行了

爆破都不是很难,除了那个变态的第5题。。
会的话就继续往下做吧,那个第5题就算了。。。

QQ5785 发表于 2020-3-31 10:45

小白路过,
页: [1] 2 3
查看完整版本: 160个CM之015——超级简单