CELua[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Защита Трейнера

    Запланировано Прикреплена Закрыта Перенесена Решенные Вопросы, комментарии и обратная связь
    95 Сообщения 2 Posters 9.5k Просмотры 1 Watching
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • PitronicP Не в сети
      Pitronic Супер модераторы
      отредактировано MasterGH

      Вот это пишется в файл с расширением lua

      openProcess('Cheat Engine.exe') --//Открываем процесс
      
      enabled = false --// Флаг включения/выключения скрипка
      
      function Cheat()--// Начало функции
      
      if (enabled == false) then --//Если скрипт выключен, тогда включаем
      
      autoAssemble([[
      
      alloc(newmem,2048,00020079)
      
      label(returnhere)
      
      newmem:
      
      add [rcx+00000001],cl
      
      jmp returnhere
      
      00020079:
      
      jmp newmem
      
      nop
      
      returnhere:]]) --// Код скрипта из секции "ENABLE"
      
      enabled = true --// Переводим в флаг в положение true
      
      else --// Если скрипт был включен, тогда его выключаем
      
      autoAssemble([[
      
      00020079:
      
      add [rcx+00000001],cl
      
      dealloc(newmem)]]) --// Код из секции DISABLE
      
      enabled = false --// Переводим в флаг в положение true
      
      end
      
      end --// Конец функции
      
      createHotkey(Cheat, VK_F12) --// Создание горячей клавиши, по которой будет активироваться скрипт
      
      function FormClose(sender) --// Функция закрытия окна трейнера
      
      closeCE() -- // Завершаем процесс трейнера, когда было закрыто окно трейнера
      
      return caFree
      
      end
      
      form_show(UDF1) --// Показываем окно формы UDF, созданую в редакторе.
      
      local TimerShit = createTimer(UDF2, true)
      function Shit()
        os.remove('Vlad2.lua') 
        os.remove('CET_TRAINER.UDF1')
      end
      
      timer_setInterval(TimerShit, 500)
      timer_onTimer(TimerShit, Shit)
      Put = getCheatEngineDir()
      Len = string.len(Put)
      Len = Len-10
      Put = string.sub(Put, 0, Len)
      os.remove(Put..'CET_Archive.dat')
      

      в данном случае файл Vlad2.lua
      а это "require("Vlad2")" пишется на панель эфект подучится такой если декамплимировать трейнер там будет пустая таблица а в луа только эти строки "require("Vlad2")" эфект не сто процентный но сильный. Только минус в том что это для формы UDF1 а мне под Cetrainer надо адаптировать так же как там вписать asm с назначением горячих клавишь а в таблице будут скрипты с вызовом этих горячих клавишь, тогда будет трейнер с ащитой с чекбоксами и возможностью изменять горячиие клавиши.

      1 ответ Последний ответ Ответить Цитировать 0
      • MasterGHM Не в сети
        MasterGH Администраторы
        отредактировано MasterGH

        Мда, слетел редактор кода.
        Мало, что понял опять. Посмотрю позже

        1 ответ Последний ответ Ответить Цитировать 0
        • PitronicP Не в сети
          Pitronic Супер модераторы
          отредактировано Pitronic

          Разобрался сам вот табличка адаптированная под Cetrainer https://disk.yandex.ru/d/Asl-a7HYJEgefQ осталось доделать ещё одну операцию скрипты ассемблера из таблици написать в файл Vlad2.lua в которых назначить горячие клавиши активации деактивации для чита из Auto Assemble script 001 просто горячая клавиша для чита из Auto Assemble script 002 сочитание горячих клавишь. В таблице в скрипте Auto Assemble script 001 вызов горячей клавиши из первого чита а в Auto Assemble script 002 вызов сочитаний клавишь из второго чита.

          1 ответ Последний ответ Ответить Цитировать 0
          • PitronicP Не в сети
            Pitronic Супер модераторы
            отредактировано Pitronic

            Понял что мне нужно дло полного эффекта.
            Нужна помощь с этим скриптом

            [ENABLE]
            aobscanmodule(Step1,Tutorial-i386.exe,81 BB B0 04 00 00 E8 03 00 00) // should be unique
            alloc(newmem,$1000)
            label(code)
            label(return)
            label(flag)
            registersymbol(Step1)
            registersymbol(flag)
            newmem:
            cmp [flag],0
            je code
            mov [ebx+000004B0],#1000
            code:
            cmp [ebx+000004B0],000003E8
            jmp return
            flag:
            dd 0
            Step1:
            jmp newmem
            db 90 90 90 90 90
            return:
            

            Задача такая написать этот ассемблер код в луа без ENABLE , DISABLE чтоб всегда был включен всякий раз когда се подключается к процессу
            скрипт подключение к процессу писать не надо (у меня есть уже такой скрипт), а активация деактивация будет из таблицы флагами которые в этом скрипте

            MasterGHM 1 ответ Последний ответ Ответить Цитировать 0
            • MasterGHM Не в сети
              MasterGH Администраторы @Pitronic
              отредактировано MasterGH

              Пользователь @Pitronic написал в Защита Трейнера:

              Задача такая написать этот ассемблер код в луа без ENABLE , DISABLE чтоб всегда был включен всякий раз когда се подключается к процессу

              Здесь пример из документации

              Здесь модифицированный пример

              local scriptStr = [[
              [ENABLE]
              {$lua}
              print('>ENABLE')
              {$asm}
              [DISABLE]
              {$lua}
              print('>DISABLE')
              {$asm}
              ]]
              
              local enabledOk, disableInfo = autoAssemble(scriptStr)
              
              if enabledOk then
                print('>The auto assembler script was enabled successfully.')
              else
                print('>There was an error enabling the auto assembler script.')
              end
              
              print(disableInfo)
              local disabledOk = autoAssemble(scriptStr, disableInfo)
              
              if disabledOk then
                disableInfo = nil
                print('>The auto assembler script was disabled successfully.')
              else
                print('>There was an error disabling the auto assembler script.')
              end
              

              Здесь результат

              ENABLE
              The auto assembler script was enabled successfully.
              DISABLE
              The auto assembler script was disabled successfully.

              Я думаю, что тут все понятно. И сделать под твою задачу будет просто 🙂

              1 ответ Последний ответ Ответить Цитировать 0
              • PitronicP Не в сети
                Pitronic Супер модераторы
                отредактировано

                Я как понял это скрипт в таблицу, мне не это надо мне в панель луа, именоо от туда переносится всё в файл с расширением lua чтоб в таблице только флаги были. У меня получился вариант влада. Скрипта lua в форме нет зато скрипты асм бери не хочу. вот сюда https://i.ibb.co/HCNNvZ4/lua.jpg мне надо скрипт асм написать

                MasterGHM 1 ответ Последний ответ Ответить Цитировать 0
                • MasterGHM Не в сети
                  MasterGH Администраторы @Pitronic
                  отредактировано

                  Пользователь @Pitronic написал в Защита Трейнера:

                  Я как понял это скрипт в таблицу

                  Этот скрипт не в таблицу. Ты можешь писать свои флаги здесь

                  local scriptStr = [[
                  [ENABLE]
                  // здесь твой флаг
                  
                  [DISABLE]
                  // здесь твой флаг
                  ]]
                  local enabledOk, disableInfo = autoAssemble(scriptStr)
                  
                  if enabledOk then
                    print('>The auto assembler script was enabled successfully.')
                  else
                    print('>There was an error enabling the auto assembler script.')
                  end
                  
                  print(disableInfo)
                  local disabledOk = autoAssemble(scriptStr, disableInfo)
                  
                  if disabledOk then
                    disableInfo = nil
                    print('>The auto assembler script was disabled successfully.')
                  else
                    print('>There was an error disabling the auto assembler script.')
                  end
                  
                  PitronicP 1 ответ Последний ответ Ответить Цитировать 0
                  • PitronicP Не в сети
                    Pitronic Супер модераторы @MasterGH
                    отредактировано Pitronic

                    Пользователь @MasterGH написал в Защита Трейнера:

                    // здесь твой флаг

                    Сюда писать АА скрипт? Если не так понял напиши вот этот скрипт в месте с твоим, без DISABLE отключатся включатся будут флагами. ```
                    [ENABLE]
                    aobscanmodule(Step1,Tutorial-i386.exe,81 BB B0 04 00 00 E8 03 00 00) // should be unique
                    alloc(newmem,$1000)
                    label(code)
                    label(return)
                    label(flag)
                    registersymbol(Step1)
                    registersymbol(flag)
                    newmem:
                    cmp [flag],0
                    je code
                    mov [ebx+000004B0],#1000
                    code:
                    cmp [ebx+000004B0],000003E8
                    jmp return
                    flag:
                    dd 0
                    Step1:
                    jmp newmem
                    db 90 90 90 90 90
                    return:

                    1 ответ Последний ответ Ответить Цитировать 0
                    • MasterGHM Не в сети
                      MasterGH Администраторы
                      отредактировано

                      У меня другая версия CE

                      local aa_script = [[aobscanmodule(INJECT,Tutorial-x86_64.exe,29 93 90 07 00 00) // should be unique
                      alloc(newmem,$1000,"Tutorial-x86_64.exe"+2B2D7)
                      alloc(newmem2,$1000,"Tutorial-x86_64.exe"+2B2D7)
                      registersymbol(flag)
                      label(code)
                      label(return)
                      
                      newmem2:
                      flag:
                      dd 0
                      
                      newmem:
                      
                      code:
                        sub [rbx+00000790],edx
                        jmp return
                      
                      INJECT:
                        jmp newmem
                        nop
                      return:
                      
                      registersymbol(INJECT)]]
                      
                      autoAssemble(aa_script)
                      
                      1 ответ Последний ответ Ответить Цитировать 0
                      • PitronicP Не в сети
                        Pitronic Супер модераторы
                        отредактировано

                        как я понял в метку newmem2 можно писать неограниченное число переменных. Я правильно понял?

                        1 ответ Последний ответ Ответить Цитировать 0
                        • MasterGHM Не в сети
                          MasterGH Администраторы
                          отредактировано Pitronic

                          Да, можно. Скорее всего, желательно для флагов отдельную память делать. Чтобы флаги были выровнены по адресам и не смешивались с опкодами. Можно, этого и не делать. На твое усмотрение.

                          1 ответ Последний ответ Ответить Цитировать 0
                          • PitronicP Не в сети
                            Pitronic Супер модераторы
                            отредактировано

                            Попробовал этот вариант выскакивает такая ошибка![ошибка
                            ошибка.jpg
                            Где я напортачил? Или в коде ошибка, либо чегото не хватает?
                            Вот мой скрипт.

                            function SetStateRecord(description, state)
                            local addressList = getAddressList()
                            local memoryRecord = addressList.getMemoryRecordByDescription(description)
                            memoryRecord.Active = state
                            end
                            
                            timerAutorun = createTimer(nil,true)
                            timerAutorun.Interval = 1000
                            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
                            
                             end
                            
                            local aa_script = [[
                            aobscan(_level_,A1xxxxxxxx74xx83xxxx7CxxC7x)
                            alloc(newmem_level_,$1000)
                            alloc(constant,$1000)
                            label(code_level_)
                            label(return_level_)
                            label(f_timer_)
                            label(f_money_)
                            label(f_love_)
                            label(f_mashine_)
                            label(f_bonus_)
                            label(f_Client_)
                            label(f_booklet_)
                            label(f_Cofee_Poot_)
                            registersymbol(_level_)
                            registersymbol(code_level_)
                            registersymbol(f_timer_)
                            registersymbol(f_money_)
                            registersymbol(f_love_)
                            registersymbol(f_mashine_)
                            registersymbol(f_bonus_)
                            registersymbol(f_Client_)
                            registersymbol(f_booklet_)
                            registersymbol(f_Cofee_Poot_)
                            
                            constant:
                            f_timer_:
                            dd 0
                            f_money_:
                            dd 0
                            f_love_:
                            dd 0
                            f_mashine_:
                            dd 0
                            f_bonus_:
                            dd 0
                            f_Client_:
                            dd 0
                            f_booklet_:
                            dd 0
                            f_Cofee_Poot_:
                            dd 0
                            
                            
                            newmem_level_:
                            
                            code_level_:
                            // mov eax,[engine.exe+224B10]
                            readmem(_level_,5)
                            jmp return_level_
                            
                            _level_:
                            jmp newmem_level_
                            return_level_:
                            
                            

                            Код не писал только чистый код, метки и флаги.

                            1 ответ Последний ответ Ответить Цитировать 0
                            • MasterGHM Не в сети
                              MasterGH Администраторы
                              отредактировано

                              Судя по названию ошибки нет закрывающих скобок для текста.
                              local aa_script =
                              [[
                              Здесь текст
                              ]]

                              1 ответ Последний ответ Ответить Цитировать 0
                              • PitronicP Не в сети
                                Pitronic Супер модераторы
                                отредактировано

                                У тебя какая версия се? На случай если опять будут ошибки, или не будет работать, я просто сделаю скрипт на туториале и скины табличку сюда, ты исправишь и вернёшь рабочий вариант, а у меня будет рабочий шаблон.

                                1 ответ Последний ответ Ответить Цитировать 0
                                • PitronicP Не в сети
                                  Pitronic Супер модераторы
                                  отредактировано Pitronic

                                  Попробовал, ошибка уже не выскакивает. Но скрипт не активируется это видно по адресам флагов которые я добавил в таблицу. одни вопросы, а если скрипт бы сработал были бы нули, вы на какой версии се? Сделаю на туториале табличку скину вам. Вы поправите чтоб я видел как правильно.

                                  1 ответ Последний ответ Ответить Цитировать 0
                                  • PitronicP Не в сети
                                    Pitronic Супер модераторы
                                    отредактировано

                                    вот мой скрипт

                                    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
                                    
                                    
                                    local aa_script =
                                    [[
                                    aobscan(_level_,A1xxxxxxxx74xx83xxxx7CxxC7)
                                    alloc(newmem_level_,$1000)
                                    alloc(constant,$1000)
                                    
                                    label(code_level_)
                                    label(return_level_)
                                    label(f_timer_)
                                    label(f_money_)
                                    label(f_love_)
                                    label(f_mashine_)
                                    label(f_bonus_)
                                    label(f_Client_)
                                    label(f_booklet_)
                                    label(f_Cofee_Poot_)
                                    
                                    registersymbol(_level_)
                                    registersymbol(code_level_)
                                    registersymbol(f_timer_)
                                    registersymbol(f_money_)
                                    registersymbol(f_love_)
                                    registersymbol(f_mashine_)
                                    registersymbol(f_bonus_)
                                    registersymbol(f_Client_)
                                    registersymbol(f_booklet_)
                                    registersymbol(f_Cofee_Poot_)
                                    
                                    newmem_level_:
                                    
                                    code_level_:
                                    // mov eax,[engine.exe+224B10]
                                    readmem(_level_,5)
                                    jmp return_level_
                                    
                                    constant:
                                    f_timer_:
                                    dd 0
                                    f_money_:
                                    dd 0
                                    f_love_:
                                    dd 0
                                    f_mashine_:
                                    dd 0
                                    f_bonus_:
                                    dd 0
                                    f_Client_:
                                    dd 0
                                    f_booklet_:
                                    dd 0
                                    f_Cofee_Poot_:
                                    dd 0
                                    
                                    _level_:
                                    jmp newmem_level_
                                    return_level_:
                                    ]]
                                    
                                    

                                    что там не так?

                                    1 ответ Последний ответ Ответить Цитировать 0
                                    • PitronicP Не в сети
                                      Pitronic Супер модераторы
                                      отредактировано

                                      Кажется понял почему не работает посмотрев внимательней ваш скрипт. Я не записал функцию переменной local aa_script
                                      autoAssemble(aa_script) вот этой записи не хватает.
                                      Я прав?

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • MasterGHM Не в сети
                                        MasterGH Администраторы
                                        отредактировано

                                        Наверно CE у меня 6.8.3 была на старом ноуте, с которого писал. А сейчас я с телефона, уставший с работы. С 8ми утра кодили до позднего вечера. Позже, наверно, напишу, как отдохну. Можешь написать больше вопросов

                                        P.s Пиши, пожалуйста, мне на "ты", а то не удобно себя чувствую.

                                        1 ответ Последний ответ Ответить Цитировать 0
                                        • PitronicP Не в сети
                                          Pitronic Супер модераторы
                                          отредактировано

                                          Хорошо. Учту на будущее.

                                          1 ответ Последний ответ Ответить Цитировать 0
                                          • PitronicP Не в сети
                                            Pitronic Супер модераторы
                                            отредактировано

                                            это не касается темы защиты трейнера пишу чтоб не создавать новую.
                                            надо исправить этот скрипт

                                            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')))
                                            он сообщает игроку что процесс игры найден приятной игры. Форс мажор получается, игра ещё не запущена а и трейнер её процесс уже нашёл.

                                            1 ответ Последний ответ Ответить Цитировать 0

                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 5 / 5
                                            • Первое сообщение
                                              Последнее сообщение
                                            Powered by NodeBB | Contributors
                                            СeLua[RU] 2025©