甜橙 发表于 2007-6-30 01:02:39

Winhex的破解[转载]

winhex这个编辑器功能很强大,可以改ram。当初出来新版本而老注册号不能用时,
只好自己解决。好像从9.1*版本到现在的9.41,我都是这么做的,连跟踪都不用做,
找特征串,几分钟就搞定。有了注册码,不知大家还感不感兴趣,还是贴出来,
供参考。遇到新版本也可以试试。

要求:W32dasm,任意16进制编辑器,呵呵,比如老版本的winhex

下面以V9.25版为例,关键代码如下:
:00448611 mov dword ptr , eax
:00448618 jmp WINHEX.00448680
:0044861A mov eax, dword ptr
:0044861F call WINHEX.0042C608
:00448624 cmp eax, dword ptr
1 :0044862A jne 0044864A ->*******此处让它跳到0044864E,即不用做下面的比较
16进制751E改为EB22。4E-2C=22为跳的长度

:0044862C cmp byte ptr , 00
2 :00448633 jne 0044864E ->*******就是上面要改的地址
:00448635 mov al, 03
:00448637 call WINHEX.0040B5AC

:0044863C not ax
:0044863F movzx eax, ax
:00448642 cmp eax, dword ptr
:00448648 je 0044864E
:0044864A xor eax, eax
:0044864C jmp WINHEX.00448650
3 :0044864E mov al, 01 ->********跳到这里,要赋值了
4 :00448650 mov byte ptr , al ->****记下0044EE8B,它就是整个程序
判断的特征地址。如为1表示注册过,因此将程
序中所有mov byte ptr , 00都让它
赋1

例如:
:00438111 call WINHEX.004049F8
:00438116 mov dword ptr , eax
:0043811B call WINHEX.0043679C
:00438120 cmp byte ptr , 00
:00438127 je 00438130
:00438129 mov byte ptr , 00 ***一个需要改的地方
:00438130 push 00000000
:00438132 mov eax, dword ptr

mov eax, dword ptr


上面是代码,拿到一个新版本,先用w32dasm反编译,然后:
1。搜索特征串mov dword ptr [2*edi+
只有一个,找到下面的jne处,改为强制跳转,例如改为jmp 0044864e,
跳转长度16进制一减就可以。
2。看0044864e处将al=1赋值给什么地址,如0044ee8b,记下
3。查找所有赋0语句,例如mov byte ptr , 00
很快找到一个,记下其16进制机器码,例如c6058bee440000,就不用找了。
全部将其替换为c6058bee440001
4。随便一个16进制编辑器,修改即可。

chenking84 发表于 2007-8-31 10:42:30

好深奥哦!!!

na509 发表于 2008-3-21 21:18:07

版主这招,叫做爆破winhex这个编辑器注册限制,不错,看来我要进看雪论坛重温一下共享软件破解,呵呵!

na509 发表于 2008-3-21 21:18:42

版主这招,叫做爆破winhex这个编辑器注册限制,不错,看来我要进看雪论坛重温一下共享软件破解,呵呵!
转自中国硬盘基地技术社区 http://bbs.intohard.com ,原文地址:http://bbs.intohard.com/viewthread.php?tid=31639

huluzi 发表于 2008-4-14 23:06:30

汇编的东西,是比较复杂点!

freesoft00 发表于 2008-5-13 18:38:57

是否可以得到法政版的效果

shy 发表于 2008-8-5 17:17:18

哈哈,,就是喜欢破解的软件!

黑涩的眼泪 发表于 2008-8-11 14:51:09

好文章我顶一下

dfuy 发表于 2008-8-26 12:23:53

不错,喜欢相关的知识

制君 发表于 2009-2-1 13:21:43

我没看懂是什么。我菜得很呀
页: [1] 2
查看完整版本: Winhex的破解[转载]