美文网首页
《第3期-08 职称直考通》学习笔记

《第3期-08 职称直考通》学习笔记

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

    一、破解过程


    查找字符串”很抱歉,注册失败“,会出来很多结果。找到和出错提示相符的,分析汇编代码,会找到关键跳;

    00453310  |.  E8 4B20FBFF   call    00405360
    00453315  |.  833D 0CDB5D00>cmp     dword ptr ds:[0x5DDB0C],0x1
    0045331C  |.  0F84 23090000 je      00453C45
    00453322  |.  E8 399BFBFF   call    0040CE60
    

    只是更改关键跳是不够的,但是找到了常量0x5DDB0C,可以使用“查找所有常量”法了。在找到的所有的结果上设置断点。
    2、再次点击注册,会断下来,

    004532C0      E8 DB3F0000   call    004572A0                         
    004532C5      A3 0CDB5D00   mov     dword ptr ds:[0x5DDB0C],eax      
    

    分析一下代码: 004572A0这个call的返回值放到eax中,然后eax的值给了[0x5DDB0C]。这就说明004572A0的返回值给了[0x5DDB0C]。那么004572A0这个call就是关键call了。
    3、进入04572A0这个关键call。
    在断首下断点后,单步执行,发现最后eax的值为1。但是在单步过程中是有不少跳转,跳过了eax赋值为其他值的:2、3、4、5。于是猜测,是不是eax改为这些值就是注册版了呢?试验着将断首改为


    修改为5,得到的是:


    修改为4,得到的是:


    修改为3,得到的是:


    修改为2,得到的是:


    不同的值对应于不同的版本。
    二、视频总结
    视频中,作者也是通过查找字符串找到了常量0x5DDB0C;接下来对0x5DDB0C地址处的内存下硬件写入断点,从而找到了关键call——04572A0;然后进入04572A0这个call内部,单步运行,注意堆栈窗口中出现假码和可疑字符串在一起,就复制下来。
    最后把复制处的可疑字符串试一试。

    相关文章

      网友评论

          本文标题:《第3期-08 职称直考通》学习笔记

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