欢迎来到 嗅灵易学

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

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

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

duelist crackme 4 破解 (下)      (希望转载的时候保持完整)
作者    丁丁虾  ddxia/[CCG]
E_mail        ddxia@263.net (如果Crackme教学文章中有错,请来信:))
Web            http://go18.163.com/~ddxia
目标     duelist crackme 4
目标URL    http://go18.163.com/~ddxia/crackme/DueList/Due-cm4.zip
工具          SoftIce4.01 for NT  TOPO V1.2  Hiew  winapi.hlp 
     下一步,如果按Crackme的要求是让我们写一个KEYGEN,俺天性就是懒懒懒.......于是
想出个馊主意,把增加代码把这个Crackme本身变成一个KEYGEN,孙悟空七十二变 呵呵~~~~~~~~
      步骤如下:
      1、先用TOPO软件定位我们加入代码的位置
      2、用HIEW来修改程序。
     用TOPO V1.2来玩一玩!首先在SCAN选项中选取 EXEC ONLY,是扫描代码段中有没有空
余的地方,增加我们要加入的代码。OPEN文件 due-cm4.exe 发现有285个字节可以利用。找个吉
利的数88,好!利用88个字节进行修改程序,程序定位在内存中位置为4014e3  物理位置为AE3。

        我们想达到的目的是当程序判断我们的CODE是错误的时候,让程序本身跳出一个对话框
来告诉大家正确的CODE :)
        首先,我们确定那里是合适加入代码的地方??很关键哦!我们找啊找,找到一个好
朋友 呵呵~~~~~
       
比较程序代码:
:u 401244 L20
001B:00401244  C8000000            ENTER    0000,00
001B:00401248  B801000000          MOV      EAX,00000001
001B:0040124D  8B7D08              MOV      EDI,[EBP+08]
001B:00401250  8B750C              MOV      ESI,[EBP+0C]
001B:00401253  8B4D10              MOV      ECX,[EBP+10]
001B:00401256  F3A6                REPZ CMPSB
001B:00401258  67E305              JCXZ      00401260
001B:0040125B  B800000000          MOV      EAX,00000000
                  ^^^^^^^^^^^^^^^^^^^^^^^^---->修改这句代码,
                            jmp 4014e3
                            而且非常的巧,代码长度一样    
001B:00401260  C9                  LEAVE
001B:00401261  C20C00              RET      000C
    ok let's go goo! 运行HIEW(真是一个酷B的软件),打开due-cm4.exe.
    按F4可以改变显示模式,选择DECODE。找到上面的代码
    按F3可以修改代码,按F2为切换到ASM模式。输入 JMP 0AE3(注意了这里的跳转地址为
物理地址)
    按F9存盘哦!
    按F5 可以GOTO  输入AE3!!
    在AE3处输入
内存地址    物理地址    代码 
4014E3        AE3          mov esi,[ebp][0000C]
4014E6        AE6          push 0
4014E8        AE8          push 4014FF
4014ED        AED         push esi
4014EE        AEE         push 0
4014F0        AF0         call  966
4014F5        AF5         mov eax,0
4014FA        AFA          jmp 860
        存盘
    按F4切换到HEX模式下,输入
4014FF            AFF  Correct Code:  (Edit by ddxia) 00
                            ^^^-->注意在HEX方式下输入    
    赶紧去试一试:)
    哎哟!差点忘了,再把以下这段消息
    Your registration info is invalid... Note that most.....
    改为:请输入小于等于8个字符的USER名(不能包括数字)CODE的长度要和USER的一样 00
    终于修改完了,好累啊!懒人经常走弯路。    
    啊!小子,没有完呢?想丢笔去HAPPY  呵呵~~~~~
    我们来弄明白这为什么要这样改???
内存地址    物理地址    代码 
4014E3        AE3          mov esi,[ebp][0000C]  ;把正确的CODE放入ESI
4014E6        AE6          push 0                      
4014E8        AE8          push 4014FF              
4014ED        AED         push esi         
4014EE        AEE         push 0
4014F0        AF0         call  966          ; CALL MESSAGEBOX         
4014F5        AF5         mov eax,0          ; 恢复被我们修改的代码
4014FA        AFA          jmp 860              ; 跳回LEAVE的位置
    看看WINAPI.HLP中的MESSAGEBOXa,需要什么参数
    int MessageBox(
        HWND hWnd,        // 窗口句柄     0------>缺省
        LPCTSTR lpText,        // 内容的地址    ESI---->CODE
        LPCTSTR lpCaption,    // 标题的地址     4014FF->我们加进的一串字符
        UINT uType         // 对话框的类型  0------>普通类型,只有一个OK按钮
      );    
    然后我们研究一下为什么是CALL 966 ??这个嘛!呵呵~~~~ Let's see
    40122b     call 401366        ---->当按F3 它就会变成call 966知道为什么了吧 :)
    401366  jmp messageboxa
    
    再来看一看 jmp 860 860又什么东东?:) 这个卖个关子了 呵呵!!
    (提示:按F5 输入860,回车,你就明白了 哈哈~~)
    
    终于写完了,怎么还没有人CALL我的,看来今天晚没有时间去HAPPY了,要整理整理我的
站点了 (遭到投诉了 呵呵~~~~~)
                 22:05

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

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

0 0 0 举报
复制成功