能力值:
( LV3,RANK:25 )
|
-
-
2 楼
win7 64
7D858C96 GetTickCount /EB 02 JMP SHORT 7D858C9A
7D858C98 |F3: PREFIX REP: ; Superfluous prefix
7D858C99 |90 NOP
7D858C9A \8B0D 2403FE7F MOV ECX,[7FFE0324]
7D858CA0 8B15 2003FE7F MOV EDX,[7FFE0320]
7D858CA6 A1 2803FE7F MOV EAX,[7FFE0328]
7D858CAB 3BC8 CMP ECX,EAX
7D858CAD ^ 75 E9 JNZ SHORT 7D858C98
7D858CAF A1 0400FE7F MOV EAX,[7FFE0004]
7D858CB4 F7E2 MUL EDX
7D858CB6 C1E1 08 SHL ECX,8
7D858CB9 0FAF0D 0400FE7F IMUL ECX,[7FFE0004]
7D858CC0 0FACD0 18 SHRD EAX,EDX,18
7D858CC4 C1EA 18 SHR EDX,18
7D858CC7 03C1 ADD EAX,ECX
7D858CC9 C3 RETN
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢你的回复。我对这段CMP ECX,EAX这句有些疑惑,如果地址7FFE0324中的值(MOV到ECX)和地址7FFE0328中的值(MOV到EAX)不相等的话,JNZ SHORT 7D858C98岂不是会永远成立?这样不会是一个死循环吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我将这段汇编内嵌后,用VS2010调试,运行会卡死。用单步调试发现确实是卡死在cmp ecx, eax,eax和ecx的值总是差一点点。
|
能力值:
( LV3,RANK:25 )
|
-
-
5 楼
那是系统的GetTickCount api反汇编,你以为那是我自己写的吗
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
解决了,怪我汇编水平差。。。嵌入的汇编寻址方式没搞对。。。我开始直接按照你贴的反汇编代码,写的
mov ecx, [7FFE0324h]
后来突然意识到,貌似立即数加方括号不能当做偏移地址。。。于是改成了
mov ecx, ds:[7FFE0324h]
然后就好了,谢谢你贴的代码。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
全局加速那种一样可以加速你的程序
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
能说一下思路吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
UserSharedData对于用户来说不是一块只读的内存区域吗,你说的全局加速难道是指有办法可以直接篡改UserSharedData中的数据?
|
|
|