Защита Трейнера
-
это не касается темы защиты трейнера пишу чтоб не создавать новую.
надо исправить этот скриптfunction SetStateRecord(description, state) local addressList = getAddressList() local memoryRecord = addressList.getMemoryRecordByDescription(description) memoryRecord.Active = state end timerAutorun = createTimer(nil,true) timerAutorun.Interval = 5000 timerAutorun.OnTimer = function () if (getProcessIDFromProcessName("game.exe")~=nil) then OpenProcess("game.exe") end if (getProcessIDFromProcessName("engine.exe")~=nil) then OpenProcess("engine.exe") end if (getProcessIDFromProcessName("PetShowCraze.exe")~=nil) then OpenProcess("PetShowCraze.exe") end if (getProcessIDFromProcessName("Pet Show Craze.exe")~=nil) then OpenProcess("Pet Show Craze.exe") end SetStateRecord("Activation", true) \--SetStateRecord("sty", true) \--SetStateRecord("wargus", true) \--SetStateRecord("Activation4", true) \--SetStateRecord("Activation5", true) end
скрипт Activation в таблице активируется в любом случае даже если не присоединился процесс игры,
надо исправить чит скрип Activationт в таблице активировался только тогда когда се присоединяется к процессу игры.
меня бы это не напрягало если бы в этом скрипте в талице не было бы этого кода luacall(PlaySound(findTableFile('Start.wav')))
он сообщает игроку что процесс игры найден приятной игры. Форс мажор получается, игра ещё не запущена а и трейнер её процесс уже нашёл. -
Или я портачу, или в твоём скрипте чегото не хватает. вот таблица, посмотри что там не так
Tutorial-i386.CT -
\-- если процесс не открыт, то подкючиться к нему if (getProcessIDFromProcessName("Pet Show Craze.exe")==nil) then OpenProcess("Pet Show Craze.exe") И здесь останови таймер пока end
Тем самым ты подключишь процесс.
Далее жди события подключения процесса. Как его ждать? Ищем в справке
onOpenProcess(processid):
После подключения вызввай активацию записи
function onOpenProcess(processid) SetStateRecord("Activation", true) end
Попробуй сам расписать на бумаги логику.
Сначала проверяем открыт ли процесс.
Если нет, то открыть его. Перед тем как его открыть, то, наверно, надо подождать события его открытия onOpenProcess(processid), а после этого события активировать запись.Или подожди до вечера пятницы. Как дома буду запущу ce 7.5. За 5 минут разберешься.
Я сейчас, пока не могу ответить нормально без cheat engibe с телефона
-
@Pitronic посмотрю завтра
-
У меня не горит, мне главное получить ответ и не важно когда. Я прекрасно понимаю что время только на меня тратить ты не обязан, а иногда нет возможности. Будет время расскажешь
-
будет время напиши полностью, а то я все варианты перепробовал, может таймер не правильно или ещё где косяк но ошибка выскакивает.
-
и по таблицы, что я тебе скинул, тоже посмотри что там не так, почему в lua скрипт аа не работает, исправь п.ж. Когда у тебя будет время.
-
Ок, посмотрю
-
разобрался с авто подключением, попробовал это вариант
Это твой скрипт.
скрипт работает как надо. Это вопрос закрыт. А процесс подключается из моего прошлого чита просто затёр эту строку SetStateRecord("Activation", true) -
осталось только с таблицей разобраться, почему аа скрипт в луа не работает, это видно по адресам в таблице, если бы скрипт в луа сработал, там бы были значения а не вопросы, Tutorial-i386.CT будет время, исправь и кинь сюда п.ж.
-
Посмотрел. Что-то быстро ответить не получается. Лучше завтра, на свежую голову. У тебя уже скрипты идут все сложнее и сложнее. Сегодня понакидаю статеек, а завтра на свежую голову попробую снова глянуть
-
Да не вопрос! У меня не пожар.
-
Да со скриптами не много осталось, в табличке еще не решённый вопрос как написать асм в 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
-