yijun 发表于 2005-4-9 19:19:25

一个简单的CRACKME

  日期:2005年4月3日   破解人:yijun
———————————————————————————————————————————


【软件名称】:crackme   
【软件大小】: 190KB
【软件限制】:Keyfile and Serial/Name
【破解声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:OD和W32dasm

———————————————————————————————————————————
 
【破解过程】:
这是我以前学习过的一个简单的KEYFILE保护例子,现在和大家分享~~~~~~~~~~~

用W32DASM装载程序,先用串式数据参考(String data refs) 检查程序。
你运行crackme时,选择任一文件,则出现:"Invalid Keyfile",因此在W32DASM查找这字符串,双击来到W32DASM中,向上会看到:

* Possible StringData Ref from Code Obj ->"Runtime Error: 12FF:024"
                                  |
:00427DDE BAD07E4200            mov edx, 00427ED0      //打开文件
:00427DE3 E8A0B8FDFF            call 00403688          //检测文件
:00427DE8 750C                  jne 00427DF6             //如果无效的keyword则跳走
:00427DEA C705E8A6420002000000    mov dword ptr , 00000002
:00427DF4 EB67                  jmp 00427E5D   

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427DE8(C)
|
:00427DF6 C705E8A6420001000000    mov dword ptr , 00000001//准备nag窗口!
:00427E00 6A00                  push 00000000

* Possible StringData Ref from Code Obj ->"Error"
                                  |
:00427E02 68E87E4200            push 00427EE8   //写字符"Invalid Keyfile" 到信息窗口...

* Possible StringData Ref from Code Obj ->"Invalid Keyfile"

你们看到上面的字符串: "Runtime Error: 12FF:024"了吗 ,真有点奇怪?难到是程序的BUG?再激发点灵感,是不是keyfile文件中的Keywords?
试试吧,建一文本文件,把Runtime Error: 12FF:024这一行放进去。运行程序,选择你刚才建的文件,OK,这下没出现错误,成功!现在程序充许你键入name和code。你任意输入点击OK,出现: "Wrong Entry! Try again!"
因此在W32DASM下查找出现的错误,具体如下:

* Possible StringData Ref from Code Obj ->"No way"
                                  |
:0042818A 683C824200            push 0042823C

* Possible StringData Ref from Code Obj ->"Wrong entry! Try again."

向上你会看到:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042810C(C)
|
:0042811A 8D55F4                  lea edx, dword ptr
:0042811D 0FB7C6                  movzx eax, si
:00428120 E8E3E1FDFF            call 00406308
:00428125 8D55F4                  lea edx, dword ptr
:00428128 B903000000            mov ecx, 00000003
:0042812D B804824200            mov eax, 00428204
:00428132 E8CDB6FDFF            call 00403804
:00428137 8D55F4                  lea edx, dword ptr
:0042813A B905000000            mov ecx, 00000005
:0042813F B804824200            mov eax, 00428204
:00428144 E8BBB6FDFF            call 00403804
:00428149 8D95D0FBFFFF            lea edx, dword ptr
:0042814F 8B87EC010000            mov eax, dword ptr
:00428155 E8E6D5FEFF            call 00415740
:0042815A 8B85D0FBFFFF            mov eax, dword ptr
:00428160 8B55F4                  mov edx, dword ptr
:00428163 E820B5FDFF            call 00403688         //关键CALL
:00428168 751E                  jne 00428188         //关键跳转
:0042816A 6A00                  push 00000000

* Possible StringData Ref from Code Obj ->"Gratulations"
                                  |
:0042816C 6808824200            push 00428208

* Possible StringData Ref from Code Obj ->"Well Done! Try the next CrackMe."

下面再用OD载入,在关键CALL下断点,很容易得到序列号~~~~~~

———————————————————————————————————————————

【Crack_总结】:
   关键让大家认识下Keyfile保护~~~~~~~~~~

[ Last edited by yijun on 2005-4-9 at 07:23 PM ]

温柔 发表于 2005-4-14 01:34:41

多学着点
~~~~

zjhfyf 发表于 2005-4-14 13:12:12

练习一下先

ljy3282393 发表于 2005-4-17 23:09:00

收藏,学习

风雪夜 发表于 2005-4-18 12:59:15

我下不了,积分太低。

薄荷草 发表于 2005-4-18 20:26:51

我也是啊!

薄荷草 发表于 2005-4-18 20:27:31

呵呵,再顶一下,!

网络中的黑羽 发表于 2005-4-19 16:45:19

不错,支持,顶一下

gameness 发表于 2005-4-20 01:15:37

啊!!!!! 又要积分~~~~~~~~~~~~~~

machi 发表于 2005-4-20 22:23:57

我是新手,先练习
页: [1]
查看完整版本: 一个简单的CRACKME