本人大连交大大三学生,专业软件工程,学习程序语言三年(不信看我诞生地),可以告诉你们,修改HW.DLL是可行的,下面是方法,我省略了一小部分,什么原因你们自己清楚,基本学过C语言的都能看明白,最后一步你们也可以做出来
下面发教程
经观察,该木仓后并不是立即掉线,而是等一秒左右才会弹出非法,所以方法如下
先用 W32DASM 反汇编8021x.exe,然后查找 10EA000,
这是因为1分钟=1000毫秒= 0x00EA10毫秒(settimer的时间参数为UINT )
只发现有两处:
第一处:
* Reference To: MFC42.Ordinal:06E8, Ord:06E8h
|
:0042B253 E868340000 Call 0042E6C0
:0042B258 8B4E20 mov ecx, dword ptr [esi+20]
:0042B25B 6A00 push 00000000
:0042B25D 6860EA0000 push 0x00EA10
:0042B262 6A0A push 0000000A
:0042B264 51 push ecx
* Reference To: USER32.SetTimer, Ord:027Ah
|
:0042B265 FF1514384300 Call dword ptr [00433814]
第二处:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004069C0(C)
|
:004069E8 6A00 push 00000000
:004069EA 6860EA0000 push 0x00EA10
:004069EF 6A06 push 00000006
:004069F1 6A00 push 00000000
:004069F3 FFD7 call edi
:004069F5 8BCE mov ecx, esi
:004069F7 8986D80E0000 mov dword ptr [esi+00000ED8], eax
:004069FD E83E220000 call 00408C40
:00406A02 5F pop edi
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00406948(C)
|
:00406A03 5E pop esi
:00406A04 C20800 ret 0008
第一处的后面有很明显的一个settimer,所以,怀疑在这里。
把第一处的 push 0x00EA10 用 UltraEdit 修改为 push 003075
即把一秒钟改30秒,进游戏,看是否半分钟后出现非法
环境不正确的提示,发现还是一分钟后提示,修改无效。
把第一处改还原,修改第二处,看结果,发现半分钟后就出现提示,说明这里就
是关键。如何修改呢?简单的方法是把时间改的尽可能大,把push 0x00EA10
修改为:
push FFEA60(使用ULTRA EDIT不可直接改哦,怎么改我不说,你们自己想吧,省略这一步)
然后试试,发现非法窗口消失了
然后使用*****CCPROXY,看是否有问题,经过一天的运行,正常的很。
时间FFEA60是多少? >45天,45天重启一次,也可以忍受了。