本帖最后由 growuphappily 于 2020-3-31 13:18 编辑
0x00 前言
先把14个放在一边,看个简单的——第15个
这个CM可以说是相当简单了
我建议你们先去自己破一下试试,很简单
源程序:
blaster99.rar
(4.59 KB, 下载次数: 2)
(解压密码52pojie.cn)
没吾爱币的看这个:https://www.lanzouj.com/iatkeoh
最近在练160个CrackMe,原帖如下:
https://www.52pojie.cn/thread-709699-1-1.html
目录:
0x01 正文
这次程序图标是.....马桶???(作者在想啥...)
打开就是一个Nag,点取消就退出,点确定才进入主程序
这个我感觉应该不能直接NOP了
0x01.01 去Nag
应该是一个rtcMsgBox,下断点
断下了,单步,来到这里
直接NOP试试?
果然不行,保存之后打开没反应
肯定是rtcMsgBox返回了一个值,然后程序判断这个值,来判断是否退出
当点击取消时寄存器是这样的:
[Asm] 纯文本查看 复制代码 EAX 00000002
ECX B9576F48
EDX 00000000
EBX 00000008
ESP 0018FA08
EBP 0018FAC0
ESI 00000000
EDI 00000003
EIP 00402D03 blaster9.00402D03
C 0 ES 002B 32位 0(FFFFFFFF)
P 1 CS 0023 32位 0(FFFFFFFF)
A 0 SS 002B 32位 0(FFFFFFFF)
Z 1 DS 002B 32位 0(FFFFFFFF)
S 0 FS 0053 32位 7FFDD000(FFF)
T 0 GS 002B 32位 0(FFFFFFFF)
D 0
O 0 LastErr ERROR_SUCCESS (00000000)
点击确定是这样:
[Asm] 纯文本查看 复制代码 EAX 00000001
ECX ED942C05
EDX 00000000
EBX 00000008
ESP 0018FA08
EBP 0018FAC0
ESI 00000000
EDI 00000003
EIP 00402D03 blaster9.00402D03
C 0 ES 002B 32位 0(FFFFFFFF)
P 1 CS 0023 32位 0(FFFFFFFF)
A 0 SS 002B 32位 0(FFFFFFFF)
Z 1 DS 002B 32位 0(FFFFFFFF)
S 0 FS 0053 32位 7FFDD000(FFF)
T 0 GS 002B 32位 0(FFFFFFFF)
D 0
O 0 LastErr ERROR_SUCCESS (00000000)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
可以看到,这个值应该就是eax了
把这个rtcMsgBox的call改成mov eax,0x1(令eax=1的汇编指令)试试?
嗯,可以了
0x01.02 爆破&注册码
先输入假码,确定
之前的rtcMsgBox断下了
运行到返回,单步,来到这里
[Asm] 纯文本查看 复制代码 0040286F . 8975 A4 mov dword ptr ss:[ebp-0x5C],esi
00402872 . 8975 94 mov dword ptr ss:[ebp-0x6C],esi
00402875 . 8975 84 mov dword ptr ss:[ebp-0x7C],esi
00402878 . 89B5 74FFFFFF mov dword ptr ss:[ebp-0x8C],esi
0040287E . 89B5 54FFFFFF mov dword ptr ss:[ebp-0xAC],esi
00402884 . 89BD 3CFFFFFF mov dword ptr ss:[ebp-0xC4],edi
0040288A . FFD7 call edi
0040288C . 50 push eax
0040288D . 8D45 A4 lea eax,dword ptr ss:[ebp-0x5C]
00402890 . 50 push eax
00402891 . E8 AEE8FFFF call <jmp.&MSVBVM50.__vbaObjSet>
00402896 . 8BF8 mov edi,eax
00402898 . 8D4D A8 lea ecx,dword ptr ss:[ebp-0x58]
0040289B . 51 push ecx
0040289C . 57 push edi
0040289D . 8B07 mov eax,dword ptr ds:[edi]
0040289F . FF90 A0000000 call dword ptr ds:[eax+0xA0]
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:[ebp-0x58]
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:[ebp-0x58]
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:[ebp-0x5C]
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:[ebp-0x8C]
004028F1 . 5E pop esi ; 0018F2DC
004028F2 . 8D4D AC lea ecx,dword ptr ss:[ebp-0x54]
004028F5 . C785 7CFFFFFF>mov dword ptr ss:[ebp-0x84],blaster9.004>; UNICODE "Danke, das Passwort ist richtig !"
004028FF . 89B5 74FFFFFF mov dword ptr ss:[ebp-0x8C],esi
00402905 . E8 22E8FFFF call <jmp.&MSVBVM50.__vbaVarCopy>
爆破很简单,把004028E3的jeNOP掉就可以了
再看注册码
这个字符串很可疑
而且下面跟着__vbaStrCmp
输入这个字符串,成功!
0x02 最后
别白嫖了,评个分呗!回帖有70%几率中奖哦! |