Всем привет с вами
artemfcsh
Сегодня я выкладываю тему для новичков!
1 урок-добавление функций в асму
2 урок-добавление функций в сбэйс
А,покажу я вам на примере Анти-Отдачи
-Let"S GO-
1.В Asma.h находим строчки со словом float и вписываем float ant; а далее вот этот код:
Код:
//-----------------------No Recoil_1-------------------------//
DWORD ADDRES_Antioda_1 = 0xВаше;
DWORD RETURN_Antioda_1 = ADDRES_Antioda_1 + 0x5;
//-----------------------No Recoil_1-------------------------//
//-----------------------No Recoil_2-------------------------//
DWORD ADDRES_Antioda_2 = 0xВаше;
DWORD RETURN_Antioda_2 = ADDRES_Antioda_2 + 0x5;
//-----------------------No Recoil_2-------------------------//
Этот код вставляем где-то немножко дальше от начала,чтобы было удобней
2)Спускаемся в самый низ и перед #endif
Вставляем вот это (Обращайте внимание на цвета):
Код:
__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]
}
}
Надеюсь вы понимаете что такое on и off-вкл. и выкл. функции.
3)Заходим в сBase.h и спускаемся вниз пропуская все коды отвечающие за чамсы (если у вас разделено на две части то есть:HRESULT APIENTRY Byte_Hack() и HRESULT APIENTRY Asm_Hack() пишите немножко дальше от HRESULT APIENTRY Asm_Hack() т.к. эта функция не на байтах) и вписываем вот это:
Код:
////No Recoil
if(opt.chams.recoil==0)DetourCreate((PBYTE)ADDRES_Antioda_1, (PBYTE)Antioda_1_off,5);
if(opt.chams.recoil==0)DetourCreate((PBYTE)ADDRES_Antioda_2, (PBYTE)Antioda_2_off,5);
if(opt.chams.recoil==1)DetourCreate((PBYTE)ADDRES_Antioda_1, (PBYTE)Antioda_1_on,5);
if(opt.chams.recoil==1)DetourCreate((PBYTE)ADDRES_Antioda_2, (PBYTE)Antioda_2_on,5);
И так нам опять встретились Antioda_1_off и т.д.,а так же надеюсь вы заметили что в строчках где opt.chams.recoil==0, Antioda_1_off а где opt.chams.recoil==1, Antioda_1_on (это чтобы вы поняли как работает включение и выключение этой функции).
Теперь я объясню вам что делать в Main.h,понимаете,opt.chams.recoil это у меня,а у вас оно может быть по другому,смотря в каком разделе в своем исходнике вы вставляете функцию,к примеру возьмем d3d,то есть opt.d3d.recoil.Заходим в Menu.h и ищем
struct sd3d{
int блaбла;
_________
}d3d;
На место _________ пишем int recoil;
Все,теперь вам осталось только добавить функцию в меню вашего WH заходим в Main.cpp и после всех
Код:
Draw_Button_Test(wccor_x-1,wccor_y+330,10,10, opt.chams.блабла," Функция",pDevice);
((wccor_x-1,wccor_y+330,10,10,-это вам не нужно!)
Вставляем вот это:
Код:
Draw_Button_Test(wccor_x-1,wccor_y+330,10,10, ,opt.d3d.recoil," Антиотдача",pDevice);
У вас ваша строчка может выглядеть по другому поэтому скопируйте уже существующую,вставьте и редактируйте,вам всего лишь нужно поменять opt.chams.блабла на opt.d3d.recoil и все,функция готова.(Если вы в сMain.h прописали int recoil не в d3d а в другом месте после opt. пишем то куда вы прописали например chams)
Объяснял все на понятном и простом языке,надеюсь что помог вам,спасибо за внимание
Вот и все!
Special For Zhyk.Ru
Стремлюсь в
Подпольщик Point Blank