• 标 题:一个超容易破解的软件! (5千字)
  • 作 者:uhlan
  • 时 间:2001-1-21 9:03:28
  • 链 接:http://bbs.pediy.com

对于第一次学习破解的朋友,这是一个很好的学习软件。
对于高手来说,他们可以在2分钟内就把它给干掉了。^^

软件名:MightyFax 


软件简介:  这是一个很简单的传真软件,没有华丽的外表,但是很实用。

你可以用打印文件的功能从你的 Word 等软件直接把文件传真出去。

另一方面你也可以接收外来的传真。


下载地址:
          http://members.aol.com/rksrks2/mf32.exe    (win9x version)
          http://members.aol.com/rksfiles4/mfnt.exe  (NT version)


我这里演示的是 win9x version



所用的工具:
            1.softICE 4.05.可在下列网址download
http://mud.sz.jsinfo.net/per/aaron/files/debuggers/win/si405w9x.zip

            2.HIEW 6.01
下载地址: http://go2.163.com/%7Etoye/tools/hiew640reg.zip

知识要求: 1。具备基本的汇编知识。
          2。懂得 softICE 的基本操作。

破解思路:
          运行 MightyFAX 时,它会跳出一个窗口,提示我们这个软件还没有注册。并提示
          这个软件还可以用多少天,然后要我们选择注册或是继续试用。
             
          所以我就猜想程序的流程可能是这样的。

        1>  载入程序。

        2>  判断这个程序注册没有
            如果注册了,就跳到主程序。
            如果没有注册, 就继续。

        3>  判断软件有没有过期。
            如果没有过期,就跳到注册窗口,要求注册。
            如果过期了, 就进行一些处理,(比如使程序不能继续使用等)
            然后就跳到注册窗口,要求注册。



从上面可看到,我们只要找到程序在那里判断有没有注册,就很容易破了这个软件的。


让我们开始吧!讲了那么多费话,我鸡蛋也中了不少。555555


I. 找出判断关键!

1)  用 SoftICE 的 Symbol Loader 载入MightyFAX,
    如何载入?到看雪大哥的网页看看吧!http://www.kanxue.com/
    那里有详细的教材。

2) 被 SoftICE 拦下来后,下 wc (这个命令是否使人联想到什么地方了?^^)

3)  然后,就是狂按 F10 啦!一直到跳出那个要求注册的窗口为止。

4)  回到 SoftICE 的 Symbol Loader ,选 File---> Save SoftICE History As...
    吧刚才我们所看到的东西都保存下来。

5)  用随便一个编辑工具打开我们刚才保存的文件。

6) 现在让我们来分析它,我把其中一部分贴在下面了。

  .......

0177:004DA4AE  XOR      EAX,EAX
0177:004DA4B0  PUSH      EBP
0177:004DA4B1  PUSH      004DA619
0177:004DA4B6  PUSH      DWORD PTR FS:[EAX]
0177:004DA4B9  MOV      FS:[EAX],ESP
0177:004DA4BC  MOV      EAX,004DE21C
0177:004DA4C1  MOV      EDX,[004DD4A0]
0177:004DA4C7  CALL      004037F8
0177:004DA4CC  PUSH      00
0177:004DA4CE  PUSH      01
0177:004DA4D0  PUSH      01
0177:004DA4D2  MOV      ECX,004DA634
0177:004DA4D7  MOV      EDX,004DA644
0177:004DA4DC  MOV      EAX,004DA650
0177:004DA4E1  CALL      004ADBF4
0177:004DA4E6  LEA      EAX,[EBP-10]
0177:004DA4E9  CALL      004938B8
0177:004DA4EE  MOV      EDX,[EBP-10]
0177:004DA4F1  MOV      EAX,004DE270
0177:004DA4F6  CALL      004037F8
0177:004DA4FB  LEA      EAX,[EBP-10]
0177:004DA4FE  CALL      004938B8
0177:004DA503  MOV      EAX,[EBP-10]
0177:004DA506  MOV      EDX,[004DE258]
0177:004DA50C  CALL      004AF8F0
0177:004DA511  XOR      AL,01
0177:004DA513  MOV      [004DE1A2],AL
0177:004DA518  MOV      CX,001A
0177:004DA51C  MOV      DX,000A
0177:004DA520  MOV      AX,07D0
0177:004DA524  CALL      004ADCF4
0177:004DA529  MOV      EAX,004DE1A4
0177:004DA52E  MOV      EDX,004DA664
0177:004DA533  CALL      004037F8
0177:004DA538  XOR      EAX,EAX
0177:004DA53A  PUSH      EBP
0177:004DA53B  PUSH      004DA560
0177:004DA540  PUSH      DWORD PTR FS:[EAX]
0177:004DA543  MOV      FS:[EAX],ESP
0177:004DA546  PUSH      004DA66C
0177:004DA54B  CALL      0040583C
0177:004DA550  PUSH      EAX
0177:004DA551  CALL      004057BC
0177:004DA556  XOR      EAX,EAX
0177:004DA558  POP      EDX
0177:004DA559  POP      ECX
0177:004DA55A  POP      ECX
0177:004DA55B  MOV      FS:[EAX],EDX
0177:004DA55E  JMP      004DA56A  ----------> (JUMP )
0177:004DA56A  MOV      EAX,[004DD62C]
0177:004DA56F  CALL      00428D00
0177:004DA574  CALL      00493F1C
0177:004DA579  TEST      AL,AL    ----------->  判断有没有注册
0177:004DA57B  JZ        004DA5B8 -----------> (NO JUMP)  (对比关键,跳则不用注册!)
0177:004DA57D  MOV      EAX,004DE27C
0177:004DA582  MOV      EDX,004DA680
0177:004DA587  CALL      004037F8
0177:004DA58C  MOV      EAX,[004DE258]
0177:004DA591  CALL      004AE4C8
0177:004DA596  CALL      004AE1A4
0258:0070  JNZ      00A3  ------------------>  (JUMP)
:x

........

       
  在整个文件当中,我只找到三个 jump,第一个是无条件的 jump ,所以不用管它。
 
  剩下两个,从前面的程序流程我们可以很容易猜到第一个判断是看注册没有,
 
  第二个是判断有没有过期。

7)  为了检验我们的判断对不对,用 SoftICE 再载入程序。一直按 F10 直到这里。

......
0177:004DA57B  JZ        004DA5B8
........

  下 rfl +z  将 no jump 改为 jump

然后继续按一下 F10, 再按 F5 离开。

8)  这时,我们就可以发现程序直接进入主程序,而不再出现注册窗口。


II.  修改程序。


9)  现在,就让我们来修改它吧。运行 HIEW (同样,看雪大哥的教材也有 HIEW的介绍

先去看看,再继续下去。)



10)用 HIEW 载入 MF.exe

11)按 F4 选择 Decode

12) 按 F5  , 输入偏址: 004DA57B 然后回车。

13)  咦?!怎么出现 “jump out of file” 的提示?

(为什么会这样,各位高手能给点提示吗?)

14)  只好用另外一种方法啦。

15)  用 SoftICE 载入 MF.exe

16) 来到
....
0177:004DA57B  JZ        004DA5B8
.....

        下 d 0177:004da57b

可看到机器码:

    74 3B B8 7C E2 4D 00

17)  用 HIEW 重新载入 mf.exe.

18) 按 F7, 输入 74 3B B8 7C E2 4D 00

19) 按 F3, 将 74 改为 75.

20)  修改好后,F9存盘(按回车后到下一行,再按ESC让对话框消失,然后按F9)。