Всем привет
Решил выложить способ поиска и добавления в вх анти отдачу
Что нам потребуется :
IDA pro
Пишем в асме:
DWORD ADDRES_Antioda_1 =(DWORD)GetModuleHandleA("pointblank.i3exec")+ 0x180EDC;
DWORD ADDRES_Antioda_2 =(DWORD)GetModuleHandleA("pointblank.i3exec")+ 0x180FDC;
DWORD RETURN_Antioda_1 = ADDRES_Antioda_1 + 0x5;
DWORD RETURN_Antioda_2 = ADDRES_Antioda_2 + 0x5;Чуть ниже:
float ant;
Потом
__declspec( naked ) void Antioda_1_on()
{
_asm
{
fld dword ptr [ant]
mov esp,ebp
jmp dword ptr [RETURN_Antioda_1]
}
}
__declspec( naked ) void Antioda_1_off()
{
_asm
{
fld dword ptr [ebp-8]
mov esp,ebp
jmp dword ptr [RETURN_Antioda_1]
}
}
__declspec( naked ) void Antioda_2_on()
{
_asm
{
fld dword ptr [ant]
mov esp,ebp
jmp dword ptr [RETURN_Antioda_2]
}
}
__declspec( naked ) void Antioda_2_off()
{
_asm
{
fld dword ptr [ebp-8]
mov esp,ebp
jmp dword ptr [RETURN_Antioda_2]
}
}После открываем файл cMain.cpp и примерно здесь 
вставляем это:
if(recoil) //антиотдача
{
DetourCreate((PBYTE)Addres_Antioda_1,(PBYTE)Antioda_1_off,5);
DetourCreate((PBYTE)Addres_Antioda_2,(PBYTE)Antioda_2_off,5);
}
else
{
DetourCreate((PBYTE)Addres_Antioda_1,(PBYTE)Antioda_1_on,5);
DetourCreate((PBYTE)Addres_Antioda_2,(PBYTE)Antioda_2_on,5);
}После в меню прописываем:
warl0ck->AddItem("АнтиОтдача",Moptonoff,&cItem.recoil,2);
или
MenuAdd(" АнтиОтдача",Moptonoff,&recoil,2,3);
или
Dimedrol1536->AddItem("АнтиОтдача",Moptonoff,&cItem.recoil,2);
Затем заносим переменную:
int recoil=0;
int recoil;
Как заново находить адреса после обновы:
Открываем иду
Открываем файл PointBlank.i3exec
ждем пока полностью расшифрует ида
Ищем эти слова:
WeaponBase::GetMoveSpe
Видео:



