欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

duelist crackme 2 破解(下) (3千字)

duelist crackme 2 破解(下) (3千字)

duelist crackme 2 破解(下)      (希望转载的时候保持完整)
作者    丁丁虾  ddxia/[CCG]
E_mail        ddxia@263.net (如果Crackme教学文章中有错,请来信:))
Web            http://go18.163.com/~ddxia
目标     duelist crackme 2
目标URL    http:\\go.163.com\~ddxia\crackme\DueList\Due-cm2.zip
工具          SoftIce4.01 for NT  WinHex    winapi.hlp
    
    经过一下午的苦活,终于有时间写下辑了 呵呵~~~~~
001B:00401114  33F6                          XOR      ESI,ESI
001B:00401116  43                              INC      EBX
            ^^^^^^^^^^^^^^^^^^^^^^^^^^----->>ebx值是指向碰到第一个01时的指针
001B:00401117  8A831A214000        MOV      AL,[EBX+0040211A]
001B:0040111D  3C00                        CMP      AL,00
001B:0040111F  7418                        JZ        00401139
            ^^^^^^^^^^^^^^^^^^^^^^^^^^------>判断是否到文件尾部
001B:00401121  3C01                        CMP      AL,01
001B:00401123  7414                        JZ        00401139
            ^^^^^^^^^^^^^^^^^^^^^^^^^^------>由于上回已经知道01有两个,这里假设两个01为连在一起,所以要跳
001B:00401125  83FE0F                  CMP      ESI,0F
001B:00401128  730F                        JAE      00401139
001B:0040112A  32861A214000      XOR      AL,[ESI+0040211A]
001B:00401130  898660214000      MOV      [ESI+00402160],EAX
001B:00401136  46                            INC      ESI
001B:00401137  EBDD                      JMP      00401116
001B:00401139  43                            INC      EBX
            ^^^^^^^^^^^^^^^^^^^^^^^^^^------>移动指向字节的指针
    下面这一段代码基本和上回说的代码相同。            
001B:0040113A  33F6                      XOR      ESI,ESI
001B:0040113C  8A831A214000  MOV      AL,[EBX+0040211A]
001B:00401142  3C00                    CMP      AL,00
001B:00401144  7409                      JZ        0040114F
001B:00401146  3C01                    CMP      AL,01
001B:00401148  74F2                    JZ        0040113C
001B:0040114A  03F0                    ADD      ESI,EAX
001B:0040114C  43                          INC      EBX
001B:0040114D  EBED                  JMP      0040113C
001B:0040114F  81FEB2010000  CMP      ESI,000001B2
            ^^^^^^^^^^^^^^^^^^^^^^^^^^------>剩余的累加和为1B2
001B:00401155  75A0                    JNZ      004010F7
001B:00401157  6A00                    PUSH      00
001B:00401159  68C9114000        PUSH      004011C9
001B:0040115E  6A00                    PUSH      00
001B:00401160  6A05                    PUSH      05
001B:00401162  FF3577214000    PUSH      DWORD PTR [00402177]
001B:00401168  E842020000        CALL      USER32!DialogBoxParamA
001B:0040116D  EB53                    JMP      004011C2
    AA+AA+5E=1B2
    于是可以得到一个文件的内容为
    AA AA 81 01 01 AA AA 5E 00..............至少要有18个字节!这样就OK了
    本想收工了。后来把程序又看了一遍,发现还有一个地方不是很明白。
001B:00401125  83FE0F                  CMP      ESI,0F
001B:00401128  730F                        JAE      00401139
001B:0040112A  32861A214000      XOR      AL,[ESI+0040211A]
001B:00401130  898660214000      MOV      [ESI+00402160],EAX
001B:00401136  46                            INC      ESI
001B:00401137  EBDD                      JMP      00401116
    大家如果有时间可以进一步研究这段程序,你发现好好玩的哦!^_^
    给点提示:
    AA AA 81 01 ........中间...........01 AA AA 5E 00..............至少要有18个字节
                        |--->>允许有    小于16个字节的存在。将会显示在对话框中
                    如果大于16个字节,会死循环^_^

                 18:33:33

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功