⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crack35.htm

📁 为所有对破解感兴趣的朋友准备的礼物。希望大家能够喜欢。
💻 HTM
字号:
<html>

<head>

<title>看雪学苑</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style type="text/css">

<!--

.p8 {  font-size: 8pt}

.p9 {  font-size: 9pt}

a:hover {  color: #00FF00}

a {  text-decoration: none}

.p12 {  font-size: 12pt; font-weight: bold; color: #FF3333}

-->

</style>

</head>



<body bgcolor="#FFFFFF">

<p><a href="index.htm" tppabs="http://toye.dihou.org/index.htm"><span class="p9">首页</span></a><span class="p9">>><a href="crack.htm" tppabs="http://toye.dihou.org/crack.htm">破解心得</a></span> 

  <br>

</p>

<table width="100%" cellspacing="0">

  <tr>

    <td> 

      <div align="center">

        <div align="left">

          <pre class="p9">                   WinHex免注册版本的实现<br>

</pre>

        </div>

      </div>

      <pre class="p9">WinHex是个很优秀的Edit Tool,它的版本升级很快,目前好象到9.64了吧。

前面我已介绍了9.5和9.62版的免注册版破解方法,对于初学者来说,大概

有点云里雾里,什么感觉了、运气了,有点玄虚。实际上,还是有章可循

的。这不,今天下载了个9.64版,用了不到二十分钟的时间就破了。

破解常备兵器:

屠龙刀:SoftIce for Win 4.95

依天剑:W32Dasm 8.93

玄铁剑:Hiew 6.40

碧血剑:UltraEdit 8.0

破WinHex只需屠龙刀和玄铁剑两把“粗笨”兵器足矣。



将9.64版本安装上以后,反复打开、关闭若干次后,出现了一个提示对话框,

大意是:这是一个共享软件,可以任意传播和使用,要想得到它的全部功能,

就掏钱注册吧。赶紧设断

    bpx lockmytask

按确定后被断,按几次F12回到WinHex代码区



    0163:0040CE61 Call user32.IsDlgButtonChecked

    0163:0040CE66 dec eax

    0163:0040CE67 sete byte ptr [0045A7F5]

    0163:0040CE6E mov eax, dword ptr [ebp+10]

    0163:0040CE71 push eax

    0163:0040CE72 mov eax, dword ptr [ebp+08]

    0163:0040CE75 push eax

    0163:0040CE76 Call user32.EndDialog

    0163:0040CE7B jmp 0040CE92   〈-返回此处



这是操作提示对话框的调用代码,没有有价值的线索,又按了N次F12(N是几没

有必要告诉你,自己一试便知),再次回到WinHex代码区



    0163:00405018 push ebp

    0163:00405019 mov ebp, esp

    0163:0040501B push ebx

    0163:0040501C push 00000000

    0163:0040501E mov ebx, dword ptr [ebp+08]

    0163:00405021 push ebx

    0163:00405022 push ecx

    0163:00405023 push edx

    0163:00405024 push eax

    0163:00405025 Call user32.DialogBoxParamA

    0163:0040502A pop ebx   〈-返回此处

    0163:0040502B pop ebp

    0163:0040502C ret 0004



这是程序对对话框函数DialogBoxParamA的一个调用,快抓住狐狸的尾巴了。

慢慢追踪,按F12



    0163:0040CF23 mov byte ptr [0045A7AD], 01

    0163:0040CF2A cmp dword ptr [0045A8F0], 00000000

    0163:0040CF31 je 0040CF3B

    0163:0040CF33 mov ebx, dword ptr [0045A8F0]

    0163:0040CF39 jmp 0040CF41

    0163:0040CF3B mov ebx, dword ptr [0045500C]

    0163:0040CF41 push 0040CE04

    0163:0040CF46 mov ecx, dword ptr [0045B728]

    0163:0040CF4C mov edx, 000003E8

    0163:0040CF51 mov eax, ebx

    0163:0040CF53 call 00405018

    0163:0040CF58 mov byte ptr [0045A7AD], 00   〈-返回此处



因为上面的几个短跳均未跳过0040CF53,因此以上的几个内存地址应该不是存放

注册标志的地方。再按两次F12



*   0163:0044E739 cmp byte ptr [0045A7FB], 00

    0163:0044E740 jne 0044E75D

    0163:0044E742 mov eax, 00000004

    0163:0044E747 call 00402980

    0163:0044E74C dec eax

*   0163:0044E74D je 0044E75D

    0163:0044E74F cmp byte ptr [0045A7BF], 00

*   0163:0044E756 jne 0044E75D

    0163:0044E758 call 00432804

    0163:0044E75D mov eax, ebx   〈-返回此处

哈,有戏!在三个*出均可跳过0044E758(即调用对话框)。

[0045A7FB]和[0045A7FB]可疑,下断

    bpm 0045A7BF

重新运行WinHex,被断,将[0045A7BF]设为1,好象没什么作用,判断该处似乎

是决定共享版WinHex运行几次后弹出提示对话框的。PASS,再下断

    bpm 0045A7FB

事实上,从程序流程来看,是否跳过对话框,[0045A7FB]处的优先处理权要高于

[0045A7FB]。果然,重新运行WinHex,被断



**  0163:0043FA2D cmp byte ptr [0045A787], 00

    0163:0043FA34 setne al

    0163:0043FA37 mov edx, 0045A803

    0163:0043FA3C sub edx, 00000008

    0163:0043FA3F mov byte ptr [edx], al     ;EDX=0045A7FB

    0163:0043FA41 push 00000000   〈-此处被断



    d 0045A7FB

将[0045A7FB]改为1,按F5,程序在几处被断,都是来比较[0045A7FB]的值,啥

话也别说,接着按F5,来到主程序窗口。乌拉!已经成注册版本了。

再回过头分析上面的代码,发现[0045A7FB]的值由[0045A787]决定的,[0045A787]

不为0,就表示程序已注册过了。再下断

    bpm 0045A787

重新运行WinHex,程序只在**下一处被断,以前我还纳闷,什么地方给[0045A787]

赋值呢,现在想来,大概是这样的:



    BOOL registed;         /缺省值为FALSE

    ...

    注册模块    

    {

        if  注册码正确

        {

            registed=TRUE;

        }

    }   

    ...

    if registed            /这里对应**处

    {

       已注册版本;

    }

    else

    {

       未注册版本;

    }

 

这里,变量registed即对应内存单元[0045A787],因为一直没有正确的注册,

所以registed=TRUE语句始终没有被执行。

找到了钥匙,开锁就是举手之劳。将**处改为

    cmp byte ptr [0045A787], 01

即可。**处的代码为803D87A7450000,调出Hiew,按F4进入DECODE模式,按F7

搜索803D87A7450000,找到后按F3,把后面的0000改为0001,按F9存盘,退出。

至此,你已得到了全部功能的WinHex9.64免注册版本,是不是感觉挺简单?



写这个破解文章比破解还累,用了我一个下午的时间。但想想看雪同志是那样

勤勤恳恳,辛辛苦苦地为大家整理破解教程,我还能说什么,只要大家高兴就

好。





南阳:woLONGwxd   2001-1-8</pre>

    </td>

  </tr>

</table>

<p> </p>

<p> </p>

<p> </p>

<a href="index.htm" tppabs="http://toye.dihou.org/index.htm"><span class="p9">首页</span></a><span class="p9">>><a href="crack.htm" tppabs="http://toye.dihou.org/crack.htm">破解心得</a></span> 

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -