biggates的心得

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

这几天用到一个软件,未注册版有100条的限制。根据About信息里提供的信息联系原作者,没有任何回应。无奈之下尝试自行 Crack 。现将过程摘录如下:
原则:
1、Crack 版本不外传
2、不涉及具体的软件名称
3、不对外承接 Crack 类工作

首先用 ollydbg 打开主程序,搜索达到100条后, MessageBox的提示的字符串。找到的结果为:
0041F260

之后,找到调用这一字符串的位置(共有三处):
0040DBC0 PUSH XXXXXXXX.0041F260
0040F317 PUSH XXXXXXXX.0041F260
004101B7 PUSH XXXXXXXX.0041F260

之后分别对三处代码进行观察,发现基本的过程极为相似:
0040DBAE    MOV    ECX, XXXXXXXX.0047B290
0040DBB3    CALL    XXXXXXXX.0040ACD0
0040DBB8    TEST    EAX, EAX
0040DBBA    JE    SHORT XXXXXXXX.0040DBD6
; 估计 0040DBD6 是正常处理的部分,代码很长,很复杂。
0040DBBC    PUSH    0
0040DBBE    PUSH    0
0040DBC0    PUSH    XXXXXXXX.0041F260
0040DBC5    CALL    <jmp.&MFC42.#1200>

; 0040F317 :
0040F2FE      mov     edx,dword ptr ds:[edi+7A]
0040F301      mov     ecx,XXXXXXXX.0047B290
0040F306      inc     edx
0040F307      mov     dword ptr ds:[edi+7A],edx
0040F30A      call    XXXXXXXX.0040ACD0
0040F30F      test    eax,eax
0040F311      je      short XXXXXXXX.0040F32D
0040F313      push    0
0040F315      push    0
0040F317      push    XXXXXXXX.0041F260
0040F31C      call    <jmp.&MFC42.#1200>

; 004101B7 :
0041019E      mov     edx,dword ptr ds:[edi+7A]
004101A1      mov     ecx,XXXXXXXX.0047B290
004101A6      inc     edx
004101A7      mov     dword ptr ds:[edi+7A],edx
004101AA      call    XXXXXXXX.0040ACD0
004101AF      test    eax,eax
004101B1      je      short XXXXXXXX.004101CD
004101B3      push    0
004101B5      push    0
004101B7      push    XXXXXXXX.0041F260
004101BC      call    <jmp.&MFC42.#1200>

由于整个过程很简单,JE之前只涉及到一个 CALL  XXXXXXXX.0040ACD0,因此观察这处代码:
0040ACD0    MOV    EAX,    DWORD PTR DS:[ECX+1E4]
0040ACD6    XOR    EAX, EAX
0040ACD8    CMP    EDX, 64H
0040ACDB    SETGE    AL
0040ACD8    RETN

将 0040ACDB 这里的 SETGE 语句改为 NOP ,Crack 完成。
posted on 2008-01-13 22:14  biggates  阅读(220)  评论(0编辑  收藏  举报