CrackMe 破解能力测试等级2的注册代码定位及爆破

以下同样是辛大神所述:


 我还是很懒的,能爆破的就爆破
CrackMe 2 的难度在于没有的敏感字符串以及敏感函数的检测,提示字符串彻彻底底没了,可是敏感函数我就呵呵了,那就是常用的一个函数UpdateData,MSDN给的解释就是把输入的内容更新到变量里去,还有某些字符串函数。
算了,要是撇开这个不谈,就是要上调试器下段了
OllyDbg很强大,Message breakpoint on classproc 就可以给按钮下段,事先查壳也没有,再给.text就是代码段下段就好,来回单步步入反复几次不难找到注册代码。。
既然都上调试器了,就懒得去分析,直接爆破算了,输入了用户名密码
NAME:DANTENGJUN
SERIAL:22222222
注册算法处已经被我下段
单步跟进呗

.text:00401581                 push    1
.text:00401583                 mov     ecx, ebx
.text:00401585                 stosb
.text:00401586                 call    ?UpdateData@CWnd@@QAEHH@Z ; CWnd::UpdateData(int)
.text:0040158B                 lea     ecx, [ebx+74h]
.text:0040158E                 call    ds:??B?$CSimpleStringT@D$00@ATL@@QBEPBDXZ ; ATL::CSimpleStringT<char,1>::operator char const *(void)
.text:00401594                 lea     edx, [esp+10h]
.text:00401598
.text:00401598 loc_401598:                             ; CODE XREF: .text:004015A0j
.text:00401598                 mov     cl, [eax]
.text:0040159A                 inc     eax
.text:0040159B                 mov     [edx], cl
.text:0040159D                 inc     edx
.text:0040159E                 test    cl, cl
.text:004015A0                 jnz     short loc_401598 ; 这里不符合算法是个死循环。。果断改掉
.text:004015A2                 mov     al, [esp+16h]
.text:004015A6                 test    al, al
.text:004015A8                 jnz     short loc_4015FA
.text:004015AA                 mov     dl, [esp+15h]
.text:004015AE                 test    dl, dl
.text:004015B0                 jz      short loc_4015FA ; 很明显跳到下面会over,改掉。。
.text:004015B2                 mov     eax, [ebx+78h]
.text:004015B5                 cmp     eax, 186A0h
.text:004015BA                 jl      short loc_4015FA
.text:004015BC                 movsx   esi, byte ptr [esp+12h]
.text:004015C1                 movsx   ecx, byte ptr [esp+11h]
.text:004015C6                 movsx   edi, byte ptr [esp+14h]
.text:004015CB                 add     ecx, esi
.text:004015CD                 movsx   esi, byte ptr [esp+10h]
.text:004015D2                 add     ecx, esi
.text:004015D4                 movsx   esi, byte ptr [esp+13h]
.text:004015D9                 movsx   edx, dl
.text:004015DC                 add     esi, edi
.text:004015DE                 add     esi, edx
.text:004015E0                 cdq
.text:004015E1                 mov     edi, 3E8h
.text:004015E6                 idiv    edi
.text:004015E8                 cmp     ecx, eax
.text:004015EA                 jnz     short loc_4015FA ; 改掉
.text:004015EC                 cmp     esi, edx
.text:004015EE                 jnz     short loc_4015FA ; 接着改
.text:004015F0                 mov     eax, [ebx]
.text:004015F2                 mov     ecx, ebx
.text:004015F4                 call    dword ptr [eax+154h]
.text:004015FA
.text:004015FA loc_4015FA:                             ; CODE XREF: .text:004015A8j
.text:004015FA                                         ; .text:004015B0j ...
.text:004015FA                 mov     ecx, [esp+94h]
.text:00401601                 call    sub_401A49
.text:00401606                 pop     edi
.text:00401607                 pop     esi
.text:00401608                 pop     ebx
.text:00401609                 mov     esp, ebp
.text:0040160B                 pop     ebp
.text:0040160C                 retn

 于是结果很明显
图片

图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值