锐捷认证v3.02 有多网卡限制和使用代理服务的限制。
使用锐捷认证后,无法组件内部局域网,很不方便。
经观察,锐捷认证v3.02一分钟就检测一次。
先用 W32DASM 反汇编8021x.exe,然后查找 60EA0000,
这是因为1分钟=60000毫秒= 0x0000EA60毫秒(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 0000EA60
: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 0000EA60
: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 0000EA60 用 UltraEdit 修改为 push 00003075
即把一分钟改30秒,在多网卡的情况下运行认证系统,看是否半分钟后出现运行
环境不正确的提示,发现还是一分钟后提示,修改无效。
把第一处改还原,修改第二处,看结果,发现半分钟后就出现提示,说明这里就
是关键。如何修改呢?简单的方法是把时间改的尽可能大,把push 0000EA60
修改为:
push FFFFEA60
然后试试,发现使用多网卡后,一分钟就提示的窗口消失了。
然后使用代理CCPROXY,看是否有问题,经过一天的运行,正常的很。
时间FFFFEA60是多少? >45天,45天重启一次,也可以忍受了。
哈哈,真是简单。只静态分析了一下,未调试就把它搞定了。
方法:
用UltraEdit打开 8021x.exe, 查找60EA00006A06,
修改为60EAFFFF6A06即可。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!