-
Постов
595 -
Зарегистрирован
-
Посещение
-
Победитель дней
20
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Pitronic
-
-
2 часа назад, Xipho сказал:
в чем проблема
Я не знаю как. Вообще луа не знаю. Пользуюсь тем что мне кто то когда то дал, или нашёл на просторах интернета. Единственное что получается, пробую изменять методом тыка уже готовое под себя, Как например здесь
-
В 07.09.2022 в 20:07, MasterGH сказал:
которые могут пригодится
В общем так, пустая таблица работает. А вот таблица с читами для игры хромает. Вот скрипт в луа что вверху вставляю.
Спойлерlocal timerAutorun = createTimer(nil, true) timerAutorun.Interval = 1000 timerAutorun.OnTimer = function () if (getOpenedProcessID() ~= getProcessIDFromProcessName("engine.exe")) then OpenProcess("engine.exe") end if (getOpenedProcessID() ~= getProcessIDFromProcessName("game.exe")) then OpenProcess("game.exe") end if (getOpenedProcessID() ~= getProcessIDFromProcessName("Pet Show Craze.exe")) then OpenProcess("Pet Show Craze.exe") end end local addressList = getAddressList() local memoryRecord = getAddressList().getMemoryRecordByDescription("Activation") memoryRecord.Options = "moHideChildren, moActivateChildrenAsWell, moAllowManualCollapseAndExpand" memoryRecord.Active = true
активирующий скрипт пустой. В дочерних читах скрипты асм. Как работает. Если таблицу запустить после игры и согласится выполнить скрипт работает нормально. А если тоже самой сделать до запуска игры. Активирующий скрипт включается дочерние читы остаются выключенными. Наверное там нужна проверка на присоединение к процессу.
-
8 часов назад, Эдвард сказал:
ограничением по времени
Это ограничение времени с сервера идёт, а файлы игры обращаются к серверу. Такое мало кто может ломать. Может те кто онлайн ломает посоветует чего.
-
5 часов назад, sivka сказал:
Я прочитал об этой инструкции в сети
Ты уверен что внимательно читал? Я на пример раньше думал что инструкция lea это запись адреса в регистр. То есть адрес [esi+cc] записывает в регистр esp. И по наивности глубокой считал, что теперь в значении регистра esp равно адресу [esi+cc]. Как я деградировал!!!
-
Да забыл сказать, я там в форме что то не так сделал. форма трейнера сзади таблицы получилась. Просто после запроса ( выполнить скрипт ) подтвердить и подвинуть в сторону таблицу. Можно тестировать. Увидите. Всё работает.
-
-
47 минут назад, MasterGH сказал:
так решил Dark Byte
Понял. А как моя редакция скрипта? Я просил оценить в этой теме не кто не откликнулся.
-
23 минуты назад, Pitronic сказал:
Передать пять нажатий
А почему именно пять?
-
В 22.11.2022 в 20:47, MasterGH сказал:
Вариант, рабочий.
Не много не рентабельный скрипт. Необходимо два раза генерировать, чтобы потом в таблицу не достающие строки добавить. Методом тыка удаляя функции и проверяя работоспособность, переделал. Теперь после создании формы можно просто сохранить в exe, и нет необходимости второй раз генерировать из за того что первый раз генерировал чтоб в таблицу строки добавить. Вот ваш доработанный мною код.
Спойлер-- обработчик нажатий до 5 hot-keys на поле для поля CEEdit1.OnKeyDown = userPressedKey (ниже задается) -- userDefinedKeys = {} таблица hot-keys local function userPressedKey(sender, key) if userDefinedKeys[5]==0 then for i=1,5 do if userDefinedKeys[i]==0 then userDefinedKeys[i]=key break else if userDefinedKeys[i]==key then break end end end end -- преобразование таблицы hot-keys в строку и запись в поле changeHotkeyKeysForm.CEEdit1.Text changeHotkeyKeysForm.CEEdit1.Text=convertKeyComboToString(userDefinedKeys) return 0 end -- Обработчик для очистки hot-key local function clearHotkey() userDefinedKeys={0,0,0,0,0} changeHotkeyKeysForm.CEEdit1.Text=convertKeyComboToString(userDefinedKeys) changeHotkeyKeysForm.CEEdit1.setFocus() end -- создание формы changeHotkeyKeysForm local function formCreate() changeHotkeyKeysForm=createForm(false) changeHotkeyKeysForm.Name = 'changeHotkeyKeysForm' changeHotkeyKeysForm.Caption = 'Редактор горячих клавишь' changeHotkeyKeysForm.Width = 300 changeHotkeyKeysForm.Height = 120 changeHotkeyKeysForm.Position = poScreenCenter changeHotkeyKeysForm.OnClose = function () changeHotkeyKeysForm.CEEdit1.setFocus() return caHide end local CELabel1=createLabel(changeHotkeyKeysForm) CELabel1.Name = 'CELabel1' CELabel1.Left = 20 CELabel1.Top = 20 CELabel1.Caption = 'Горячая клавиша:' local CEEdit1=createEdit(changeHotkeyKeysForm) CEEdit1.Name = 'CEEdit1' CEEdit1.Text = '' CEEdit1.AnchorSideLeft.Control = CELabel1 CEEdit1.AnchorSideTop.Control = CELabel1 CEEdit1.AnchorSideTop.Side = asrBottom CEEdit1.Height = 25 CEEdit1.Width = 248 CEEdit1.BorderSpacing.Top = 4 local clearButton=createButton(changeHotkeyKeysForm) clearButton.Name = 'clearButton' clearButton.AnchorSideLeft.Control = CEEdit1 clearButton.AnchorSideTop.Control = CEEdit1 clearButton.AnchorSideTop.Side = asrBottom clearButton.Height = 30 clearButton.Width = 80 clearButton.BorderSpacing.Top = 8 clearButton.Caption = 'Очистить' local applyButton=createButton(changeHotkeyKeysForm) applyButton.Name = 'applyButton' applyButton.AnchorSideLeft.Control = clearButton applyButton.AnchorSideLeft.Side = asrBottom applyButton.AnchorSideTop.Control = clearButton applyButton.Height = 30 applyButton.Width = 80 applyButton.BorderSpacing.Left = 10 applyButton.Caption = 'Применить' CEEdit1.OnKeyDown = userPressedKey -- обработчки нажатий -- https://lazarus-ccr.sourceforge.io/docs/lcl/controls/tmousebutton.html для записи хот-кей мышки. local mbtn={false,true,true,true} CEEdit1.OnMouseDown = function (s,k) if mbtn[k] then s.OnKeyDown(s,k+2) end end clearButton.OnClick = clearHotkey -- обработчик очистки hot-keys applyButton.ModalResult = mrYes -- apply button end -- Обработчик кнопки смены hot-key. Показывает форму смены hot-keys function changeHotkeyKeys(hotkey) -- если форма не создана, то создать if not changeHotkeyKeysFormCreated then changeHotkeyKeysFormCreated = true formCreate() end if hotkey==nil then return end -- таблица из пользовательский hot-keys. Максимум 5 userDefinedKeys={0,0,0,0,0} -- проверка на свопаданеие для ClassName=='TGenericHotkey' или на "TMemoryRecordHotkey" if hotkey.ClassName=='TGenericHotkey' then -- если TGenericHotkey, то запись клавиш -- TGenericHotkey, вроде, не документирована. Так что либо лезем в git либо запоминаем что есть .getKeys() у hotkey for i,v in ipairs({hotkey.getKeys()}) do userDefinedKeys[i]=v -- установка hot-key end -- показать таблицу с кодами hot-keys как строку changeHotkeyKeysForm.CEEdit1.Text=convertKeyComboToString(userDefinedKeys) -- запомнить что есть setKeys у hotkey типа TGenericHotkey. Передать пять нажатий if changeHotkeyKeysForm.showModal()==mrYes then hotkey.setKeys(userDefinedKeys[1],userDefinedKeys[2], userDefinedKeys[3],userDefinedKeys[4], userDefinedKeys[5]) end elseif hotkey.ClassName=='TMemoryRecordHotkey' then -- если же это TMemoryRecordHotkey for i,v in ipairs(hotkey.Keys) do userDefinedKeys[i]=v -- записать коды hot-key end -- показать строку changeHotkeyKeysForm.CEEdit1.Text=convertKeyComboToString(userDefinedKeys) -- если подвержедение закрытия формы через showModal()==mrYes, то назначить клавиши if changeHotkeyKeysForm.showModal()==mrYes then hotkey.Keys = userDefinedKeys end end end -- Функция для связи CETrainer.CHEAT0 и memrec0_hotkey0. Примеры ниже. -- object1 это тип условный тип tcheat, object2 это тип TMemoryRecordHotkey. Типы не документированы в celua.txt. Просто запомнить или лезть в git CE function addChangeHotkeyKeysFunctionality(object1, object2) if (type(object1)=='userdata') and (object1.ClassName=='tcheat') and (object2.ClassName=='TMemoryRecordHotkey') then local btn = createButton(object1.Owner) btn.Parent = object1.Parent btn.AnchorSideLeft.Control = object1 btn.AnchorSideTop.Control = object1 btn.Height = object1.Height btn.Width = 15 btn.BorderSpacing.Left = object1.Descriptionleft - 15 btn.Caption = 'E' -- создание кнопок вида "E" редактироавния hot-key btn.OnClick = function () changeHotkeyKeys(object2) object1.Hotkey = object2.HotkeyString end end end addresslist=getAddressList() memrec0=addresslist.getMemoryRecordByID(0) memrec1=addresslist.getMemoryRecordByID(1) memrec2=addresslist.getMemoryRecordByID(2) memrec3=addresslist.getMemoryRecordByID(3) memrec4=addresslist.getMemoryRecordByID(4) memrec5=addresslist.getMemoryRecordByID(5) memrec6=addresslist.getMemoryRecordByID(6) memrec7=addresslist.getMemoryRecordByID(7) memrec8=addresslist.getMemoryRecordByID(8) memrec9=addresslist.getMemoryRecordByID(9) memrec0_hotkey0=memrec0.getHotkeyByID(0) memrec1_hotkey0=memrec1.getHotkeyByID(0) memrec2_hotkey0=memrec2.getHotkeyByID(0) memrec3_hotkey0=memrec3.getHotkeyByID(0) memrec4_hotkey0=memrec4.getHotkeyByID(0) memrec5_hotkey0=memrec5.getHotkeyByID(0) memrec6_hotkey0=memrec6.getHotkeyByID(0) memrec7_hotkey0=memrec7.getHotkeyByID(0) memrec8_hotkey0=memrec8.getHotkeyByID(0) memrec9_hotkey0=memrec9.getHotkeyByID(0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT0,memrec0_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT1,memrec1_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT2,memrec2_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT3,memrec3_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT4,memrec4_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT5,memrec5_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT6,memrec6_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT7,memrec7_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT8,memrec8_hotkey0) addChangeHotkeyKeysFunctionality(CETrainer.CHEAT9,memrec9_hotkey0) gPlaySoundOnAction=false CETrainer.fixDPI() CETrainer.show() function CloseClick() closeCE() return caFree end
А вот образец таблицы Тык Зацените по десяти бальной шкале.
-
22 часа назад, MasterGH сказал:
Если бы я делал с нуля, то
А как бы сделали вы? Хочу попробовать оба варианта этот и ваш и сравнить какой удобней. Если можно то тоже с коментами как здесь. Но не настаиваю просто если есть время и возможность.
-
4 минуты назад, LIRW сказал:
Можно ли реализовать это в ce на форме udf1
Я там не чего не понял. и втой теме по ходу делу форма не udf1 а
CETrainer
-
Вопрос меня давно волновал, но забывал спросить. Когда то скачал, не помню для какой игры трейнер. Там была такая пользовательская фишка. Там где описания горячих клавиш. Была кнопка edit при активации которой пользователь мог изменить горячие клавиши которые там по умолчанию. Можно ли реализовать это в ce на форме udf1. Если кто знает подскажите пожалуйста пж по шагам.
-
17 часов назад, Klaus сказал:
10 лет, все это знают
Ну если знаешь сделай более профессиональные уроки, а мы нубы десятилетние у тебя поучимся.
- 1
-
В 24.09.2022 в 20:34, Sergey99 сказал:
а адрес статический.
Я иногда делаю в трейнерах телепорты. Но и для меня загадка. Очень часто координаты зеленые то есть статистические, и указывают на модуль, Но в чём парадокс, модули эти меняются. То есть визуально адрес статистический, а реально динамический.
-
В 26.08.2022 в 19:01, DieVis сказал:
Лень и не знание разные вещи,
Я понимаю что ты можешь не знать что такое FPU, также я допускаю что ты мог не знать про видео на которые указал Руслан. Но Руслан правильно сказал, что тебе стоило сделать вот это Ткни сюда. Только ленью можно это объяснить.
-
-
1 час назад, Partizan сказал:
ССыль на плагин XfindOut
Не доганяю как скачать это плагин на гит хабе, может поделишься?
-
3 минуты назад, Partizan сказал:
ни какой анти-отладки нету
Совет полезный но ведь не только на этой игре антиотладка, не правда ли. Я хочу освоить dbg именно на игре с защитой, чтоб если попадётся такая же проблемма в другой игре не искать в инете такую же игру без защиты.
53 минуты назад, Partizan сказал:который в СЕ последний.
Которы в Се последний это в режиме отладки ядра. требуется DBVM правильные нвстройки на скрине не покажешь? Там не надо галочки ставить?
-
нашёл как перейти к адресу, но как найти инструкции которые обращаются к этому адресу?
-
Блин а как там по нужному адресу перейти? Невижу не фига.
Спойлер -
7 минут назад, Partizan сказал:
Подключай к игре x32dbg.
Понял, не какая разрядность системы, а какая разрядность игры. Беру свои слова обратно. Извени партизан и спасибо.
-
2 часа назад, Partizan сказал:
не та разрядность
Я что по твоему тупой? Или не вижу в какой папке x64dbg.exe а в какой x32dbg.exe? У меня 64 разрядная я и запускал x64dbg.exe
смотри сам чтобне говорил не та разрядность.
СпойлерСпойлер -
16 часов назад, Xipho сказал:
x64dbg/x32dbg с плагином ScyllaHide
Не видит процесс игры. Где копать? Плагин добавил, настройки плагина такие-же как рекомендовали на сайте.
Спойлер -
44 минуты назад, Xipho сказал:
Что это значит?
Я имел в виду анти отладчик в таких играх как Just Cause 2 там защита на отладчик стоит. Неправильно написал.
Активация дочерних читов
in Общение
Опубликовано
Язык может и простой если знать источник информации. А искать эти источники честно признаюсь лень, так как больше времени провожу в играх и взломах. Руки не доходят до всего остального.