Защита Трейнера
-
Да со скриптами не много осталось, в табличке еще не решённый вопрос как написать асм в lua, этот вопрос касается этой темы, так как весь код что в панели луа запишется в фай с расширением лу. В самой же панели будет только ссылка на файл. Если кто попытается декомплимировать, его ждёт два сюрприза, первый cetrainer во временых файлах как учат в интернете (взлом трейнера) при лткрытии исполняймого файла исчезнет черес 10 мили сикунд практически глаз не успеет увидеть как он появился и изчез, обход этого есть не спорю, даже я это могу. Но не каждый да этого додумается. Но тот кто знает и сделает получит вторй сюрпиз, в панели lua только ссылк на фай самого файла не будет и таблица в которой только флаги.
-
Дальше будет по другой теме, немного осталось, но пока с этим не закончу спрашивать не буду, да и с теми вопросами не сразу, а только тогда, когда придёт необходимость.
-
Пользователь @MasterGH написал в Защита Трейнера:
У тебя уже скрипты идут все сложнее и сложнее
Собственно там ваш скрипт, я только не пойму что делаю неправильно, потому и скинул табличку, если исправите и скинете я наглядно сравню и пойму где ошибки были. Ведь в праграмировании мало знать ответ, надо понять в каком направлении была ошибка, думаю с этим спорить вы не будете.
-
А, ну да. Вижу свои строки. Т.е. тебе надо активирующий скрипт перенести в главную таблицу
-
Верно весь код асм в уа, который будет в файле с расширением луа, вроде всё правильно писал, но не пойму где напартачил. Если у меня будет рабочая таблица разобратся проще чем сто раз объяснение смотреть, просто глянуть в рабочий вариант и в свой, тогда пойму где косяк чтоб его не повторять.
-
Все, готово
[Tutorial-i386_pitronic.CT](Похоже, что-то пошло не так в процессе обработки ответа сервера.)getAutoAttachList().add("Tutorial-i386.exe") function onOpenProcess() getAddressList().getMemoryRecordByDescription('f_step_1_').Active = true end local aa_script = [[ aobscan(_step_1_,81xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxB2xx8Bxxxxxxxxxx8BxxFFxxxxxxxxxx8BxxxxxxxxxxB2xx8Bxxxxxxxxxx8BxxFFxxxxxxxxxxxxxx00xx00xxxx89) alloc(newmem_step_1_,$1000) alloc(constant,$1000) label(code_step_1_) label(return_step_1_) label(f_step_1_) label(address_step_1_) registersymbol(_step_1_) registersymbol(f_step_1_) registersymbol(address_step_1_) constant: f_step_1_: dd 0 address_step_1_: dd db 00 00 00 00 newmem_step_1_: pushad lea eax,[ebx+00000480] mov [address_step_1_],eax cmp [f_step_1_],1 jne code_step_1_ mov [ebx+00000480],#1000 code_step_1_: cmp [ebx+00000480],000003E8 popad jmp return_step_1_ _step_1_: jmp newmem_step_1_ db 90 90 90 90 90 return_step_1_: ]] autoAssemble(aa_script)
-
Спасибо завтра гляну. Сейчас все дома спят кроме меня, я поздно засыпаю.
-
т.е. смысл какой.
-
getAutoAttachList().add("Tutorial-i386.exe")
добавляет в поиск процесс "Tutorial-i386.exe -
А это сработает при подключении
function onOpenProcess() getAddressList().getMemoryRecordByDescription('f_step_1_').Active = true end
-
-
А это зачем?
getAddressList().getMemoryRecordByDescription('f_step_1_').Active = true
Мне не надо авто активация флага, флагом отключение и включение чита из таблици, а асм в луа. То есть в таблице не одного чита с кодом только флаги. -
А все, понял. Сейчас
-
тогда так
local aa_script = [[aobscan(_step_1_,81xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxB2xx8Bxxxxxxxxxx8BxxFFxxxxxxxxxx8BxxxxxxxxxxB2xx8Bxxxxxxxxxx8BxxFFxxxxxxxxxxxxxx00xx00xxxx89) alloc(newmem_step_1_,$1000) alloc(constant,$1000) label(code_step_1_) label(return_step_1_) label(f_step_1_) label(address_step_1_) registersymbol(_step_1_) registersymbol(f_step_1_) registersymbol(address_step_1_) constant: f_step_1_: dd 0 address_step_1_: dd db 00 00 00 00 newmem_step_1_: pushad lea eax,[ebx+00000480] mov [address_step_1_],eax cmp [f_step_1_],1 jne code_step_1_ mov [ebx+00000480],#1000 code_step_1_: cmp [ebx+00000480],000003E8 popad jmp return_step_1_ _step_1_: jmp newmem_step_1_ db 90 90 90 90 90 return_step_1_: ]] getAutoAttachList().add("Tutorial-i386.exe") function onOpenProcess() autoAssemble(aa_script) end
-
-
Скачал завтра гляну.
-
Т.е. подкючает автоаттач
getAutoAttachList().add("Tutorial-i386.exe")
А после обработка события аттача
function onOpenProcess() autoAssemble(aa_script) end
-
@Pitronic ок
-
Пользователь @MasterGH написал в Защита Трейнера:
getAutoAttachList().add("Tutorial-i386.exe")
А если у игры в разных версиях четыре разных имени файла? Как у мея сейчам на компе 4 разных версии игры от ( nevosoft, alawar, myplaycity, и пиратка) и вовсех разное имя исполняемого файла? Дублировать строку можно или подругому добавлять?
-
Тогда добавить 4 раза разные имена
getAutoAttachList().add("game1.exe") getAutoAttachList().add("game2.exe") getAutoAttachList().add("game3.exe") getAutoAttachList().add("game4.exe")
Т.е. вместо одной строки будет уже 4 и более
-
Понял. Только у сайта косяки не позволяет короткиу сообщение писать.
-
Да, косяки. Еще не поправил. Я кидаю из буфера. т.е. делать скрин в буфер и вставить.
Если с телефона, то скрин на телефоне двумя кнпками делается выкл и убавить грумкость. Но он захватит весь экран. Либо ждать, когда я поправлю -
Результат теста. Скрипт работает как надо. При запуске адрес address_step_1_ стоит как вопрос то есть се не видит значение адреса. Но при активации флага появляется значение 1000 как нам и надо, в туториале становится доступна кнопка дальше. Адрес флага f_step_1_ отображается не корректно в скрипте мые ему выделили память со значением ноль, после активации-деактивации значения изменяют правильно на ноль и один. Считаю по большому счёту работает как надо, не смотря на мелкие погрешности. В производстве есть понятие допуск погрешностей. Наглядно загрузил скриншот.