Немного теории...
в dll PhysicsReq.dll есть несколько полезных ф-й
Code:
sign:?SetRunSpeed@Proxy@physics@@QAEXM@Z def:void __thiscall physics::Proxy::SetRunSpeed(float) sign: ?SetWalkSpeed@Proxy@physics@@QAEXM@Z def: void __thiscall physics::Proxy::SetWalkSpeed(float)
Для этого необходимо знать адреса процедур (GetProcAddress в помощь), и указатель this данного обьекта(это домашнее задание )
процедура спидхака
Code:
[b][color=#006699]void [/color][/b][color=#006699][/color]speedHack[b][color=#CC0000]([/color][color=#006699]bool [/color][/b][color=#006699][/color]activate[b][color=#CC0000], [/color][color=#006699]float [/color][/b][color=#006699][/color]speed[b][color=#CC0000]) { [/color][color=#006699]if[/color][color=#CC0000](![/color][/b][color=#CC0000][/color]thisProxyPhysics[b][color=#CC0000]) [/color][color=#006699]goto [/color][/b][color=#006699][/color]_error[b][color=#CC0000]; [/color][color=#006699]if[/color][color=#CC0000](![/color][/b][color=#CC0000][/color]activate [b][color=#CC0000]&& [/color][/b][color=#CC0000][/color]savedSpeed [b][color=#CC0000]< [/color][/b][color=#CC0000][/color][color=#AC00A9]1[b][/b][/color][b][color=#CC0000]) [/color][color=#006699]goto [/color][/b][color=#006699][/color]_error[b][color=#CC0000]; [/color][color=#006699]if[/color][color=#CC0000]([/color][/b][color=#CC0000][/color]activate[b][color=#CC0000]) { [/color][/b][color=#CC0000][/color]_asm [b][color=#CC0000]{ [/color][/b][color=#CC0000][/color]mov ecx[b][color=#CC0000],[[/color][/b][color=#CC0000][/color]thisProxyPhysics[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]push [b][color=#CC0000][[/color][/b][color=#CC0000][/color]speed[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]call [b][color=#CC0000][[/color][/b][color=#CC0000][/color]SetRunSpeedOrig[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]mov ecx[b][color=#CC0000],[[/color][/b][color=#CC0000][/color]thisProxyPhysics[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]push [b][color=#CC0000][[/color][/b][color=#CC0000][/color]speed[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]call [b][color=#CC0000][[/color][/b][color=#CC0000][/color]SetWalkSpeedOrig[b][color=#CC0000]] } } [/color][color=#006699]else [/color][color=#CC0000]{ [/color][/b][color=#CC0000][/color]_asm [b][color=#CC0000]{ [/color][/b][color=#CC0000][/color]mov ecx[b][color=#CC0000],[[/color][/b][color=#CC0000][/color]thisProxyPhysics[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]push [b][color=#CC0000][[/color][/b][color=#CC0000][/color]savedSpeed[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]call [b][color=#CC0000][[/color][/b][color=#CC0000][/color]SetRunSpeedOrig[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]mov ecx[b][color=#CC0000],[[/color][/b][color=#CC0000][/color]thisProxyPhysics[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]push [b][color=#CC0000][[/color][/b][color=#CC0000][/color]savedWalkSpeed[b][color=#CC0000]] [/color][/b][color=#CC0000][/color]call [b][color=#CC0000][[/color][/b][color=#CC0000][/color]SetWalkSpeedOrig[b][color=#CC0000]] } } [/color][/b][color=#CC0000][/color]speedHackEnabled [b][color=#CC0000]= [/color][/b][color=#CC0000][/color]activate[b][color=#CC0000]; [/color][/b][color=#CC0000][/color]MessageBeep[b][color=#CC0000]([/color][/b][color=#CC0000][/color]MB_OK[b][color=#CC0000]); [/color][color=#006699]return[/color][color=#CC0000]; [/color][/b][color=#CC0000][/color]_error[b][color=#CC0000]: [/color][/b][color=#CC0000][/color]speedHackEnabled [b][color=#CC0000]= [/color][color=#006699]false[/color][color=#CC0000]; [/color][/b][color=#CC0000][/color]MessageBeep[b][color=#CC0000]([/color][/b][color=#CC0000][/color]MB_ICONASTERISK[b][color=#CC0000]); }[/color][/b]
Установив сплайсы, подобные этим, мы обезопасим себя от установки скорости игрой.
Code:
[b][color=#006699]void [/color][/b][color=#006699][/color]__declspec[b][color=#CC0000]([/color][/b][color=#CC0000][/color]naked[b][color=#CC0000]) [/color][/b][color=#CC0000][/color]SetRunSpeedSplice[b][color=#CC0000]() { [/color][/b][color=#CC0000][/color]_asm [b][color=#CC0000]{ [/color][color=#0000FF]xor [/color][/b][color=#0000FF][/color]eax[b][color=#CC0000],[/color][/b][color=#CC0000][/color]eax cmp byte ptr [b][color=#CC0000][[/color][/b][color=#CC0000][/color]speedHackEnabled[b][color=#CC0000]],[/color][/b][color=#CC0000][/color]al jz _origFunc retn [color=#AC00A9]4 [/color]_origFunc[b][color=#CC0000]: [/color][/b][color=#CC0000][/color]mov eax[b][color=#CC0000], [[/color][/b][color=#CC0000][/color]esp[b][color=#CC0000]+[/color][/b][color=#CC0000][/color][color=#AC00A9]4[b][/b][/color][b][color=#CC0000]] [i][/i][/color][/b][color=#CC0000][i][/i][/color][i][color=#008000]//version specific [/color][/i][color=#008000][/color]mov [b][color=#CC0000][[/color][/b][color=#CC0000][/color]savedSpeed[b][color=#CC0000]],[/color][/b][color=#CC0000][/color]eax jmp [b][color=#CC0000][[/color][/b][color=#CC0000][/color]SetRunSpeedOrig[b][color=#CC0000]] } } [/color][color=#006699]void [/color][/b][color=#006699][/color]__declspec[b][color=#CC0000]([/color][/b][color=#CC0000][/color]naked[b][color=#CC0000]) [/color][/b][color=#CC0000][/color]SetWalkSpeedSplice[b][color=#CC0000]() { [/color][/b][color=#CC0000][/color]_asm [b][color=#CC0000]{ [/color][color=#0000FF]xor [/color][/b][color=#0000FF][/color]eax[b][color=#CC0000],[/color][/b][color=#CC0000][/color]eax cmp byte ptr [b][color=#CC0000][[/color][/b][color=#CC0000][/color]speedHackEnabled[b][color=#CC0000]],[/color][/b][color=#CC0000][/color]al jz _origFunc retn [color=#AC00A9]4 [/color]_origFunc[b][color=#CC0000]: [/color][/b][color=#CC0000][/color]mov eax[b][color=#CC0000], [[/color][/b][color=#CC0000][/color]esp[b][color=#CC0000]+[/color][/b][color=#CC0000][/color][color=#AC00A9]4[b][/b][/color][b][color=#CC0000]] [i][/i][/color][/b][color=#CC0000][i][/i][/color][i][color=#008000]//version specific [/color][/i][color=#008000][/color]mov [b][color=#CC0000][[/color][/b][color=#CC0000][/color]savedWalkSpeed[b][color=#CC0000]],[/color][/b][color=#CC0000][/color]eax jmp [b][color=#CC0000][[/color][/b][color=#CC0000][/color]SetWalkSpeedOrig[b][color=#CC0000]] } }[/color][/b]