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

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

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

      Я понимаю что от продвинуты воров кода полной защиты нет. Но защиты квартиры любым продвинутым замком тоже нет, опытный домушник взломает замок за секунды, аднако замок на дверь мы вешаем. Нашёл на форуме на котором зависал раньше, сейчас я на другм движке этого форума (я его не покину, просто буду работать как на этом форуме так и на том). В этом топике Здесьинтересная тема по этому вопросу . Но меня интересует этот скрипт

      function CETimer1Timer(sender)
           xlient = 'Decompiler CE Trainer v1.0.exe'
      if
           (getProcessIDFromProcessName(xlient)==nil) then
      return 
      end
           closeCE()
      end
      
      function CETimer2Timer(sender)
           tlient = 'cheatengine-x86_64.exe'
      if
           (getProcessIDFromProcessName(tlient)==nil) then
      return 
      end
           closeCE()
      end
      
      function CETimer3Timer(sender)
           Ollydbs = 'ollydbg.exe'
      if
           (getProcessIDFromProcessName(Ollydbs)==nil) then
      return
      end
           closeCE()
      end
      
      function CETimer4Timer(sender)
           ReClass2013 = 'reclass2013.exe'
      if
           (getProcessIDFromProcessName(ReClass2013)==nil) then
      return 
      end
           closeCE()
      end
      
      function CETimer5Timer(sender)
           am743 = 'am743.exe'
      if
           (getProcessIDFromProcessName(am743)==nil) then
      return 
      end
           closeCE() 
      ``` Там видно в скрипте боакировка программ 
      с расширением exe Можно ли 
      усовершенствовать этот скрипт не уточнять 
      име егзешника, а применить к любому ексе? 
      То есть задать относительное имя как в асм 
      прыжок на безымянную метку.
      MasterGHM 1 ответ Последний ответ Ответить Цитировать 1
      • MasterGHM Не в сети
        MasterGH Администраторы @Pitronic
        отредактировано

        @Pitronic здесь логика следующая. Если обнаружены процессы по названию, то CE закрывается. Можно добавить другие названия процессов и тогда CE тоже буже закрываться. Например, если открыт калькулятор, то CE закроется. Сделать это на AA посложнее. Мне кажется проще на lua как в этом примере

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

          @MasterGH Какая разница на луа или асм, главное эффект. Дай тот код который считаешь лучше. Главное условие предотвратить вмешательсво сторонни программ. Первое процесс тейнера, второе попытка открыть фай, усилить можно тройным эффектом, закрытие программ которые вмешались с ошибкой, крашь игры, и в конечном счёте закрытие трейнера. Только чтоб на винде и программах сказанных выше вреда не было, просто закрытие с ошибкой. Чтоб на любой экзешник так реагировало который вмешивается. А если кто через игру попытается взломать, не трогая трейнер. Можно усилить шоком, сделать много ложных адресов и инструкций что взломщику показалось что легче взломать игру чем найти адрес который меняется при включении и отключении трейнера. И чтоб эти адреса и
          инструкции не писать а трейнер сам бы их создавал рандомно.

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

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

            Если обнаружены процессы по названию

            По названию не рентабельно. Программ по взлому трейнеров туева хуча это раз. Возможно пользователь открывает программу не для взлома (открыл се чтоб включить спидхак которого в трейнере нет это два. Нужен фильтр, реакция только на те программы которые пытаются вмешаться в процесс трейнера, или открыть cetrainer. Думаю это возможно хотя точно не знаю, например Creator Trainer Studio v.5 от Enjoy закрывался если пытатся открыть процес трейнера. Правда я его трейнеры мог взломать через игру. Но тем не менее у него был фильтр. Правда не знаю на каком языке студия работает.

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

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

              Дай тот код который считаешь лучше

              У меня нет) Я не делаю защиты для трейнеров ) эту тему надо изучать

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

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

                Дай тот код который считаешь лучше
                Понял сарказм 😊 , если бы я знал то не спрашивал. Эта тема актуальна но не главная, тему можно забыть.

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

                  @Pitronic сарказма не было. У меня действительно нет скриптов по защите. А тема интеренсная.

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

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

                    сарказма не было

                    Может быть (Дай тот код который считаешь лучше) вот эту строку я принял за сарказм, но у меня с чувством юмора всё в порядке, можно не оправдываться. Тем более если это сарказм справедлив.

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

                      А можно переделать этот скрипт

                      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 сохранённый на жёсткий диск CETrainer а то с UDF1 много функций урезано. Тогда мен кажется эфект будет такой же как у Влада.

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

                        MasterGH Куда редактор форматирования делся? Пришлось код луа как обычный текс вставлять.

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

                          Редактор кода не сразу подгружается. Минут 5 прошло после использования функции и он загрузился. Происходит после пересборки форума. Сейчас должно быть нормально. Поскульку пересобираю форум часто, то может повторится.

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

                          1 ответ Последний ответ Ответить Цитировать 0
                          • 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

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