У меня есть D3D ВХ. Мне надо вставить туда команды работы с памятью.
1. Определил переменные;
2. Функции поиска адреса - типа DWORD ADDRES;
3. Функции замена адреса:
if(antirandom)
{
MEMwrite((void*)(ADDRES_randomize),(int*)(PBYTE)"\x\x\x\x\x",5);
}
else
{
MEMwrite((void*)(ADDRES_randomize),(int*)(PBYTE)"\x\x\x\x\x",5);//исходное значение
}
Вот с 3 пунктом загвоздка - не знаю куда его вставить.
Если в DrawIndexedPrimitive, то пишет MEMwrite: идентификатор не найден.
Пробовал вставлять под это - void MEMwrite(void *adr,void *ptr,int size) - пишет синтактическая ошибка.
Помогите пожалуйста.
артём612
01.04.2013, 16:34
Использование такое....
MEMwrite((void *)(12345678),(void *)"\x00",1); изменяет байт по адресу 12345678 на 00
-Красное = адрес
-Зелёное = байт на который изменить
-Синее = количество байт для изменения
Вот с 3 пунктом загвоздка - не знаю куда его вставить.
Если в DrawIndexedPrimitive, то пишет MEMwrite: идентификатор не найден.
Пробовал вставлять под это - void MEMwrite(void *adr,void *ptr,int size) - пишет синтактическая ошибка.
создай тогда файлик заготовки (.h)
там функции напиши и за инклюдь в основной файл проэкта...
ps MEMwrite: идентификатор не найден указывает на то что из этого место вызова функции она не видна....
ГоГоГоГоГоГоГо
01.04.2013, 22:01
Спасибо, все скомпилировалось.
Создал дополнительный файл проекта MemHack.h в нем прописал:
int antirandom = false;// Переменные memhacka
int antiotd = false;// Переменные memhacka
HMODULE Game_exe = GetModuleHandle("Game.exe");// Модуль memhacka
// Поиск адреса получения значения отдачи и разброса
DWORD ADDRES_randomize = FindPattern ((DWORD)Game_exe ,0xххххххх,(PBYTE)"\x8B\x\x\x\x\x\x\x\x\x\x\x\x24" ,"xxxxxxxxxxxxx")+0x; адреса убрал.
DWORD ADDRES_antiotd= FindPattern ((DWORD)Game_exe ,0xххххххх,(PBYTE)"\x\x\x\x\x\x\x\x\x\x\x\x\x","xx xxxxxxxxxxx")+0x+0x;
void MEMwrite(void *adr,void *ptr,int size)
{
DWORD OldProtection;
VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy(adr,ptr,size);
VirtualProtect(adr,size,OldProtection, &OldProtection);
}
но игру крашит при запуске, может еще что-то подскажите.
артём612
02.04.2013, 14:49
Да пожалуй подскажу... /dgs
у вас раньше чит с использованием поиска сигнатур(FindPattern)
работал?
Просто у меня читы с этими функциями крашат в некоторых играх...
OneShot
02.04.2013, 15:54
Warface не?
ГоГоГоГоГоГоГо
02.04.2013, 21:32
Warface не?
Да.
Да пожалуй подскажу... /dgs
у вас раньше чит с использованием поиска сигнатур(FindPattern)
работал?
Просто у меня читы с этими функциями крашат в некоторых играх...
Я читы с FindPattern еще не использовал. Так, что не знаю.
Сделал немного по другому:
DWORD WINAPI Room_Hacks(LPVOID param)
{
HMODULE Game_exe = GetModuleHandle("Game.exe");// Модуль memhacka
// Поиск адреса получения значения отдачи и разброса
DWORD ADDRES_antirandom = FindPattern ((DWORD)Game_exe ,0xxxxxxxx,(PBYTE)"\x\x\x\x\x\x\x\x\x\x\x\x\x","xxxxxxxxxxxxx")+x;
DWORD ADDRES_antiotd= FindPattern ((DWORD)Game_exe ,0xxxxxxxx,(PBYTE)"\x\x\x\x\x\x\x\x\x\x\x\x\x","xxxxxxxxxxxxx")+x;
сам вызов:
CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE) Room_Hacks, 0, 0, 0);
Все равно крашит. Если без вызова - то все загружается, но эти функции не работают.
Может точку входа неправильно делаю?
Подскажите пожалуйста, уже и адреса нашел, и функции вычисления, а все не работает, можно в личку. Ничего не сливаю, со своим читом скоро как год играю, потому что знаю - что в инете то пофиксят.
Добавлено через 3 часа 57 минут
Опытным путем выяснил, что крашит вот на этих строчках (без них все работает):
// Поиск адреса получения значения отдачи и разброса
DWORD ADDRES_antirandom = FindPattern ((DWORD)Game_exe ,0xxxxxxxx,(PBYTE)"\x\x\x\x\x\x\x\x\x\x\x\x\x","xx xxxxxxxxxxx")+x;
DWORD ADDRES_antiotd= FindPattern ((DWORD)Game_exe ,0xxxxxxxx,(PBYTE)"\x\x\x\x\x\x\x\x\x\x\x\x\x","xx xxxxxxxxxxx")+x;
Подскажите, можно поиск адреса написать другими командами?
Или как то по другому.
twice
04.04.2013, 09:16
Опытным путем выяснил, что крашит вот на этих строчках (без них все работает):
// Поиск адреса получения значения отдачи и разброса
DWORD ADDRES_antirandom = FindPattern ((DWORD)Game_exe ,0xxxxxxxx,(PBYTE)"\x\x\x\x\x\x\x\x\x\x\x\x\x","xx xxxxxxxxxxx")+x;
DWORD ADDRES_antiotd= FindPattern ((DWORD)Game_exe ,0xxxxxxxx,(PBYTE)"\x\x\x\x\x\x\x\x\x\x\x\x\x","xx xxxxxxxxxxx")+x;
Подскажите, можно поиск адреса написать другими командами?
Или как то по другому.
Паттерный скан - вещь нормальная и рабочая, раз у тебя падает - значит или в функции проблемы, или ты туда не те значения передаешь.
Покажи саму функцию и что конкретно ты туда передаешь.
Dimedrol1536
15.04.2013, 20:09
Не мучай себя и нас.
Создаеш к примеру adress.h, пишеш в нем это.
Подключаеш к нему к примеру hack_helper.h,
тот в котором есть твои опредиления.
__declspec(naked)void recoil_func()
{
if(Fun.antirandom)//Функция в меню
{
_asm
{
mov ecx, [esi+24h]
nop
mov ecx, [esi+24h]
nop
pop edi
pop esi
pop ebp
pop ebx
add esp, 0D0h
retn
}
}
else
{
_asm
{
mov ecx, [esi+24h]
call [Call1]
mov ecx, [esi+24h]
call [Call2]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0D0h
retn
}
}
}
В Эндсцене:
DetourCreate((PBYTE)Recoil,(PBYTE)recoil_func ,5);
ГоГоГоГоГоГоГо
15.04.2013, 21:19
Это я на "D3D" видел но куда что "совать" не мог разобраться. Ща попробуем.
------------------------------------------------------------------------------
Аааааааааааааааааааааааааааааааааааааааааааааа....
Я конечно понимаю, что дареному коню в зубы не смотрят, но.......
Можно хоть раз поподробнее написать - что куда и вместо чего:/facepalm
или теперь вот это заместо того:
DWORD Recoil = FindPattern ((DWORD)Game_exe ,0x2A715B2,(PBYTE)"\x75\x03\xFF\x48\x04\x8B\x4E\x0C\x8B\x49\x04\x8B\x 11\x8B\x42\x10\x68\x80\x00\x00\x00\xFF\xD0\x8B\x4E","xxxxxxxxxxxxxxxxxxxxxxxxx")+0x17;
DWORD Call1 = FindPattern ((DWORD)Game_exe ,0x2A715B2,(PBYTE)"\x51\x56\x8B\xF1\x57\x8D\x7E\x58\x68\x00\x00\x50","xxxxxxxxx??x");
DWORD Call2 = FindPattern ((DWORD)Game_exe ,0x2A715B2,(PBYTE)"\x55\x8B\xEC\x83\xE4\xF0\x83\xEC\x14\x53\x56\x57\x 8B\xF1\x8D\x4E","xxxxxxxxxxxxxxxx");
DetourCreate: идентификатор не найден - как его определить?
Ну нет у меня образования по программированию.
Хоть я и готов на себе волосы рвать , но все равно Большое спасибо.
По крупицам может что-то соберу рабочее.
ВХ ведь как-то собрал.
twice
16.04.2013, 00:52
DetourCreate: идентификатор не найден - как его определить?
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
ГоГоГоГоГоГоГо
16.04.2013, 03:19
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
"Спасибо" все очень "понятно".
Когда ты приедешь к автоэлектрику я очень хочу чтоб он тебя сюда послал [Ссылки могут видеть только зарегистрированные и активированные пользователи]
twice
16.04.2013, 03:35
"Спасибо" все очень "понятно".
Когда ты приедешь к автоэлектрику я очень хочу чтоб он тебя сюда послал [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Если ты собираешься что-то делать, а не копи-пастить не понимая что и за чем нужно, то время начинать читать документацию или хотя бы машинными переводчиками переводить.
По указанной ссылке нужно скачать бесплатную версию и установить, что исправит ошибку в твоем предыдущем сообщении.
Dimedrol1536
16.04.2013, 09:35
DetourCreate: идентификатор не найден - как его определить?
Если ты собираешься что-то делать, а не копи-пастить не понимая что и за чем нужно, то время начинать читать документацию или хотя бы машинными переводчиками переводить.
По указанной ссылке нужно скачать бесплатную версию и установить, что исправит ошибку в твоем предыдущем сообщении.
Ну я же не долбаёб. (мат, мат, мат)
Я конечно сразу все перевел, скачал, установил, все установилось и что толку?
Там-же как я понимаю надо какой-то файл прописывать в проект, а какой? там 154 файла.
Спасибо что хоть отвечаете.
Dimedrol1536 - спасибо, буду пробывать.
________________________________________
Все что написано в chacks.h у меня уже определено, кроме вот этого:
void *DetourCreate(BYTE *src, const BYTE *dst, const int len)
вставил и ошибка исчезла. Буду дальше копать - многое еще не ясно.
артём612
16.04.2013, 18:35
Вообщем Код с подсказкой /dgs
Начало ищем адрес и тд
нам понадобится это чудо =)
DWORD ModuleGame = GetModuleHandle("Game.exe");
//Разбирая чуточку игру я делал поиск не по сигнатуре а по поиску динамической памяти =)
поэтому
DWORD Pointer = ModuleGame+0x некое значение;
DWORD temp = FindPointer(Pointer,Сдвиг);
temp = FindPointer(temp,Сдвиг);
temp = FindPointer(temp,Сдвиг);
temp = FindPointer(temp,Сдвиг);
//я например искал так визуальные патроны /dgs
//дальше
//для того чтобы писать в память
DWORD setbyte = 0x90;// то что пишем
WriteProcessMemory(GetCurrentProcess(),(LPVOID)tem p,&setbyte,sizeof(setbyte),NULL);//тут мы пишем уже =)
ГоГоГоГоГоГоГо
16.04.2013, 19:29
Да все без толку, все равно крашит на FindPattern.
Я вот что еще подумал - у меня есть такая проблема: ВХ работает если откомпилирована в Debug, а если в Release - то крашит при загрузке.
Прочитал что отличие в версиях это работа с памятью - особенности связанные с освобождением памяти и "утечек" памяти.
Может в этом проблема?
Я уже и в меню пункты добавил под мемхак:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Dimedrol1536
16.04.2013, 23:54
Изменение память в фв - это бан или краш. Всё зависит от твоего обхода.
артём612
17.04.2013, 16:49
ВХ работает если откомпилирована в Debug, а если в Release - то крашит при загрузке
вот это даже очень странно =)
по идее должно уже тогда крашить на дебаге а не на релизе так как дебаг режим это уже встроенная отладка в вашу программу то есть её легче дизасамблировать...
и всё же я не знаю что там бан краш =) но у меня всё робит в мем хаке и через се и в длл =)
ГоГоГоГоГоГоГо
17.04.2013, 19:58
вот это даже очень странно =)
по идее должно уже тогда крашить на дебаге а не на релизе так как дебаг режим это уже встроенная отладка в вашу программу то есть её легче дизасамблировать...
и всё же я не знаю что там бан краш =) но у меня всё робит в мем хаке и через се и в длл =)
Значит мне не повезло.
У меня проблема и с другими читами которые выкладывают, ни один рабочий чит не хочет работать, ни через реестр, ни инжектом - крашит при загрузке
(они рабочие на 100%, но сделаны конечно через "Релиз") и поэтому я даже протестировать не могу ни один чит.
И получаеться, что у меня работает только один мой чит через "Дебаг" и через реестр - через инжект тоже крашит.
Раньше не было такой проблемы, появилась где-то месяцев 5 назад.
Наверное придется Винду сносить и по новой ставить.
артём612
17.04.2013, 21:06
может хук кривой?
у тебя краш во время входа в бой?
ГоГоГоГоГоГоГо
18.04.2013, 21:18
У меня проблема и с другими читами
Дело не только в моем хуке.
Крашит только при загрузке игры, если загрузилось, то все гуд.
Наверное все, можно пока тему закрывать.
Надо винду сносить.