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

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

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

                                          Или я портачу, или в твоём скрипте чегото не хватает. вот таблица, посмотри что там не так
                                          Tutorial-i386.CT

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

                                            \-- если процесс не открыт, то подкючиться к нему
                                            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 с телефона

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

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