软件名:速达3000xp 软件下载地址http://www.superdata.com.cn/download1/index.asp 软件简介:用于进、存、销等方面财务软件。 工具: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,估计运行某项功能时(对该软件,我一窍不通),进行检测。按如上办法进行修改。谢谢你的阅读。 |
|
查看所有0条评论>>