Submarina Опубликовано 15 августа, 2015 Поделиться Опубликовано 15 августа, 2015 Здравствуйте уважаемые Гейм Хакеры, Хочу сделать функцию активации трейнера, на примет я создал 6 функций трейнера, 1 жизни, 2 выносливость, 3 манна, 4 патроны, 5 гранаты, 6 очки улучшения.Как на эти 6 функций, сделать скрипт активации, что бы можно было нажать и эти 6 функций активировались, например нажал на скрипт активации трейнер,и все функции трейнера активировались, вот теперь можно нажать и активировать функцию жизни.еще как в скрипт активации, сделать обскан, или по другому называется сигнатура, что бы не нужно было, обскан делать на каждой функции, а только на одной функции активации. Я надеюсь понятно объяснилНе судите строго если что то не понятноЕсли можно покажите на примере этого скрипта [ENABLE]alloc(newmem,2048,"GTA5.exe"+22274F)label(returnhere)label(originalcode)newmem:mov [rsi+00000280],(float)100originalcode:comiss xmm7,[rsi+00000280]jmp returnhere"GTA5.exe"+22274F:jmp newmemnopnopreturnhere:[DISABLE]dealloc(newmem)"GTA5.exe"+22274F:comiss xmm7,[rsi+00000280] Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 15 августа, 2015 Поделиться Опубликовано 15 августа, 2015 [terminus]-------------------------------------------------------------------------------- Привет! С флагами в скриптах, насколько я помню, ты уже разобрался, так что опишу общий принцип работы: Делишь скрипт на две основные части - первая делает aobscan и инъекции всех функций трейнера, а функции при этом активизируются при установке флагов, то есть помимо основной части (одного большого скрипта, который делает aobscan, инъекции во всех местах, а в каждой инъекции проверяется установка того или иного флага для той или иной функии) ты делаешь N однотипных скриптов, у которых в секции ENABLE нужный флаг устанавливается в 1, а в секции DISABLE - в 0. --------------------------------------------------------------------------------[/terminus] Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 15 августа, 2015 Поделиться Опубликовано 15 августа, 2015 Anomaly - Warzone Earth тема. Разбирали недавно. Мастер скрипт + другие. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 15 августа, 2015 Автор Поделиться Опубликовано 15 августа, 2015 (изменено) Как сделать скрипт активации, я более менее понял, но мене не понятно немного про, BaseCode от куда его брать, насколько я знаю когда делаешь скрипт, то обскан на каждую инструкцию идёт свой, а тут он получается один на все инструкции, ну дак вот я хочу понять от куда его брать, и как правильно его брать.я тут смотрел уроки кодера, он там с нуля делал трейнер, ну дак вот там он показывал как он берёт сигнатуру, мне так и не понятно от куда правильно её нужно брать. Изменено 15 августа, 2015 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 15 августа, 2015 Поделиться Опубликовано 15 августа, 2015 [terminus]-------------------------------------------------------------------------------- Функция aobscan просто ищет адрес по маске и записывает его в переменную, которую ты укажешь. В одном скрипте можно применять эту функцию сколько угодно раз, просто переменные назови разными именами. --------------------------------------------------------------------------------[/terminus] 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 15 августа, 2015 Автор Поделиться Опубликовано 15 августа, 2015 (изменено) к с тате привет keng, я на верное не правильно объяснил, я хотел сделать как на C++ там сигнатуру отвечает за работу трейнера, вот если ты её не правильно возьмёшь то трейнер, точней функции тренера не будут работать, я много раз смотрел я так не понял сигнатуру нужно брать с определённого участка или можно взять с любого участка Изменено 15 августа, 2015 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 16 августа, 2015 Поделиться Опубликовано 16 августа, 2015 [terminus]-------------------------------------------------------------------------------- Так. Во-первых, сигнатура - это набор байт, опкоды определенной последовательности инструкций. Что делает функция aobscan? По сути, делает она поиск подстроки в строке, возвращая адрес первого вхождения или 0. Ты можешь написать скрипт, который будет выполнять только набор вызовов aobscan, после чего у тебя будут адреса для каждой инструкции, адрес которой обнаружился или нет. После этого в скрипте, активирующем ту или иную опцию, можно проверить, не 0 ли находится по адресу, по которому лежит инструкция. Если 0 - значит aobscan сработала неудачно, если не 0 - значит все ок и опцию можно включить\выключить. Вообще, кстати, если у тебя хоть одна из сигнатур не найдется (результатом работы aobscan будет 0), то скрипт не выполнится, а следовательно и работать не будет. --------------------------------------------------------------------------------[/terminus] 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 16 августа, 2015 Поделиться Опубликовано 16 августа, 2015 В 15.08.2015 в 20:39, Baracuda сказал: Показать контент Как сделать скрипт активации, я более менее понял, но мене не понятно немного про, BaseCode от куда его брать, насколько я знаю когда делаешь скрипт, то обскан на каждую инструкцию идёт свой, а тут он получается один на все инструкции, ну дак вот я хочу понять от куда его брать, и как правильно его брать. я тут смотрел уроки кодера, он там с нуля делал трейнер, ну дак вот там он показывал как он берёт сигнатуру, мне так и не понятно от куда правильно её нужно брать. 1. Сигнатура должна быть уникальной 2. Инструкция на сигнатуру должна быть часто обращаемой 3. Возможно, на инструкции потребуется проверить с каким адресами она работает, с одним или несколькими. От этого зависит инъекция кода. Она будет с фильтрами или без. С фильтрами нужна для таких читов как убийство с одного удара 4. Сигнатуру можно построить автоматически. Выделить инструкцию в дизасемблере. Перейти в автоассемблер. Выбрать AOB шаблон 5. Не всегда хватает данных из регистров на одной сигнатуре. Придется брать поинтеры под реганные метки из других инструкций, на которые тоже составлять сигнатуры. Я думаю, что нет никаких руководств по выбору сигнатуры. Определяешь сигну всегда экспериментально. Если не работает что-то, то искать ошибку. Если сделал шесть читов с сигнатурами через AOB. То выбери ту, которая связана с часто обращаемой инструкцией. Дальше возникает задача по объединению всех скриптов в мастер скрипт. Это может быть не просто и просто. Если читы работают все со структурой игрока, то просто. Если читы работают с разными структурами, то нужно найти указатели на них или отличать их по условиям (фильтрам) или же как по пункту 5 вытаскивать поинтеры из разных сигнатур. Ну либо не вытаскивать, а искать поинтеры... Умение объединять скрипты в мастер скрипт приходят с опытом. Когда в игре читы ведут к ошибкам, то скрипты придется проверять в пошаговой отладке. Все условия построения скриптов определяются в режиме "здесь и сейчас" для конкретной игры. Заранее предсказать правильный и точный выбор сигнатуры, скорее всего, невозможно даже, когда ты сигнатуру построил. Поиграл, посмотрел... работает, значит работает. Правильно или не правильно, узнаешь когда всю игру пройдешь. До того как пройдешь, можешь только надеяться, что сигна рабочая. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 августа, 2015 Поделиться Опубликовано 16 августа, 2015 В 15.08.2015 в 20:56, Baracuda сказал: или можно взять с любого участкаBaracuda, сигнатуру можно брать с любого участка, главное:1. Сигнатура должна быть уникальна.2. Повторяема, т.е. после перезагрузки игры, она должна быть той же самой.3. Не обязательно, чтобы начало сигнатуры совпадало с первым байтом нужной тебе инструкции, ты можешь сделать сигнатуру, а потом добавить нужное кол-во байт к метке. Ну наверное ты видел такие скрипты, ну например вот известный скрипт из твоей же темы: Показать контент [ENABLE]aobscanmodule(InfiniteCash,GTA5.exe,E2 48 83 C1 10 48 89 4C 24 10 8B 01 33 C9 89 44 24 08) alloc(newmem,$1000,"GTA5.exe"+C31565) label(code)label(return)label(go)label(michael)label(franklin)label(trevor) label(Odin) registersymbol(Odin)registersymbol(InfiniteCash)newmem:cmp [rcx+d4],'MONE'//Y_SPENT_IN_CLOTHESje franklincmp [rcx+134],'MONE'//Y_SPENT_IN_CLOTHESje michaelcmp [rcx+94],'MONE'//Y_SPENT_IN_CLOTHESje trevormichael:cmp [rcx+144],'LOTH'je gojmp codefranklin:cmp [rcx+e4],'LOTH'je gojmp codetrevor:cmp [rcx+a4],'LOTH' je gojmp codego:cmp byte ptr[Odin],1 jne code mov byte ptr[Odin],0 xor [rcx],rcx add [rcx],#100000 xor [rcx],rcx code:mov eax,[rcx]xor ecx,ecxmov [rsp+08],eaxjmp returnOdin: db 1 InfiniteCash+0A: // Вот что я имею ввиду, как видишь здесь добавляется 10 байт, чтобы попасть наjmp newmem // нужную нам инструкцию.nopnopnopreturn:[DISABLE]InfiniteCash+0A: // Вот что я имею ввиду, как видишь здесь добавляется 10 байт, чтобы попасть на // нужную нам инструкцию.db 8B 01 33 C9 89 44 24 08unregistersymbol(Odin) unregistersymbol(InfiniteCash)dealloc(newmem) 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 16 августа, 2015 Автор Поделиться Опубликовано 16 августа, 2015 Ребята спасибо вам огромное, прям то что нужно подсказали, сделаю скрипт выложу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения