美文网首页
《第3期-11 里诺仓库》学习笔记

《第3期-11 里诺仓库》学习笔记

作者: 听说我在混吃等死 | 来源:发表于2018-11-16 20:04 被阅读0次

    一、破解过程
    1、通过查找字符串“注册”找到了注册验证的地方,很快就找到了关键call。
    006D5AD5 . E8 AE020000 call 006D5D88
    这里调用了关键call 006D5D88,修改关键call的返回值为1,就能够让软件提示注册成功。但是重启以后还会死未注册。
    这说明这是一个重启验证的软件。要想爆破它,就得修改软件启动时的验证代码。但是怎么找到那里呢?
    不急,去关键call

    006D5D88  /$  55            push    ebp                              ;  这就是关键call
    

    单步F8,发现了这个:

    006D5DE8  |.  E8 FF000000   call    006D5EEC                         ;  这个call后,真码出来了。
    

    调用了006D5EEC后,真码就出来了。

    2、过去看看006D5EEC这个call

    006D5EEC  /$  55            push    ebp
    

    来到这个生成真码的call。发现它被两处地方调用了,一处是上面提到的006D5DE8,另外一处是

    006D7BD7   .  E8 10E3FFFF   call    006D5EEC                         
    

    006D5DE8处的调用是在点击注册时,生成真码与填写的假码进行对比。那么006D7BD7这里为什么也要生成真码呢?可以肯定也是为了将生成的真码和假码进行对比。那么在006D7BD7下断点。

    3、重新运行程序,发现在程序界面出来之前就断下来了,说明这里就是重启验证的地方了。

    006D7BD7   .  E8 10E3FFFF   call    006D5EEC                         ;  过了这个call。就生成了真码
    006D7BDC   .  8B55 C0       mov     edx,dword ptr ss:[ebp-0x40]      ;  edx就是真码了
    006D7BDF   .  A1 3C3F7000   mov     eax,dword ptr ds:[0x703F3C]      ;  
    006D7BE4   .  8B00          mov     eax,dword ptr ds:[eax]
    006D7BE6   .  8B80 80060000 mov     eax,dword ptr ds:[eax+0x680]     ;  eax就是假码了
    006D7BEC   .  E8 4BD2D2FF   call    00404E3C                         ;  在这里比较真码和假码了
    006D7BF1      75 7D         jnz     short 006D7C70                   ;  这里就是关键跳,直接nop掉。
    

    对这些代码进行简单分析,就找到了关键跳,直接nop掉就行了。此时就不会再出现要试用的界面了,直接进入主界面。

    4、把修改后的程序进行保存。

    二、总结
    这个软件的破解关键就是找到软件启动时的重启验证的代码。我自己是歪打正着找到的,而视频中是用的设置API断点的方法。
    既然是重启验证,那么在验证时肯定要读取原来输入的假码;而注册表就是保存假码的好地方。根据这个,对RegCreateKeyExA这个API下断点从而找到了重启验证的地方。

    相关文章

      网友评论

          本文标题:《第3期-11 里诺仓库》学习笔记

          本文链接:https://www.haomeiwen.com/subject/fmdhfqtx.html