Немного теории...
в 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]







