您现在的位置: 秦皇天下 >> 学院 >> 软件破解 >> 反 汇 编 >> 教程正文
速达3000xp
软件名:速达3000xp
软件简介:用于进、存、销等方面财务软件。
工具:softice 、w32dasm 、 hiew、fi2.5
申明:本文仅用于技术研究,请勿用于商业目的。
时间:2003-5-31
作者:Starlucky
一、分析
该软件用狗加密,无狗时为试用版。FI检测,无壳。
二、静态分析
w32dasm反编译,无响应。估计进入死循环,调出softice,进入W32DASM领空。来到:
: 461AE5 JAE 4612A1;改为7个NOP,即可跳出死循环。
那位大侠指点:在SOFTICE中如何抓取屏幕内容?

编译完成,打开“STRING REFERENCE”,看到什么?嘻嘻,里面有详细提示。如“读软件狗不成功”、“未检测到本软件使用的软件狗,本软件将工作在试用版状态。"”

双击“未检测到本软件使用的软件狗,本软件将工作在试用版状态。"”,来到如下:
|
:00401963 803D9488B20000          cmp byte ptr [00B28894], 00 ;[00B28894] = 0有狗,否则OVER,改为mov byte ptr [00B28894], 00
:0040196A 7435                    je 004019A1  
:0040196C 66C745D83800            mov [ebp-28], 0038

* Possible StringData Ref from Data Obj ->"未检测到本软件使用的软件狗,本软件将工作在试用"
                                       ->"版状态。"
                                 |
:00401972 BA2F5C9400              mov edx, 00945C2F
:00401977 8D45EC                  lea eax, dword ptr [ebp-14]
:0040197A E8DDB35300              call 0093CD5C
:0040197F FF45E4                  inc [ebp-1C]
:00401982 8B00                    mov eax, dword ptr [eax]
:00401984 33C9                    xor ecx, ecx
:00401986 8B15607D9500            mov edx, dword ptr [00957D60]
:0040198C E837870200              call 0042A0C8

双击“读软件狗不成功”,共有两处。
其中一处为:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0083FFEC(C)

* Possible StringData Ref from Code Obj ->"读软件狗不成功."
                                 |
:00840117 B890018400              mov eax, 00840190
:0084011C E8D9181000              call 009419FA
:00840121 8B45FC                  mov eax, dword ptr [ebp-04]
:00840124 BA6C018400              mov edx, 0084016C

它是从0083FFEC处跳转过来,往回看:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0083FFD4(C)
|
:0083FFE8 837DF400                cmp dword ptr [ebp-0C], 00000000 ;如[ebp-0C]=00000000有狗,否则OVER,
:0083FFEC 0F8525010000            jne 00840117;跳向出错
上两句改为PUSH 0 ; POP [EBP-0C],空闲字节用NOP填充。
:0083FFF2 C745F801000000          mov [ebp-08], 00000001

修改后重新运行程序,一切OK。

三、总结
程序中还用几处cmp byte ptr [00B28894], 00及cmp dword ptr [ebp-0C], 00000000,估计运行某项功能时(对该软件,我一窍不通),进行检测。按如上办法进行修改。谢谢你的阅读。
  • 上一篇教程:
  • 下一篇教程: