Перейти к содержанию

MasterGH

Ветераны
  • Постов

    2 999
  • Зарегистрирован

  • Победитель дней

    129

Весь контент MasterGH

  1. Товарищ, вкладки так не делают Как делают, это писать утомительно. Делайте то, что Вам под силу: форму, картинку на ней, пару кнопок, привязку горячих клавиш. Всё, этого вполне хватит. >>как ячейку памяти из таблицы привязать к активному элементу тренера Ответ: Пример чтения адреса X = readFloat('crimsonland.exe + 8853C') Пример записи в адрес writeFloat('crimsonland.exe + 8853C', X) Пример занесения текста в компонент на форме local myForm = createForm(true): local myEdit = createEdit(myForm) control_setCaption(myEdit, X) Пример чтения текста из компонента X = control_getCaption(myEdit)
  2. Текущая версия 0.1 Текущие добавления 1) Модели Админов, их Авы, модель ракеты 2) Обработка ввода пользователя, работы с выстрелами, взрывами, событиями спавна и разрушения ракеты 3) Иконки и счётчик доступных ракет (должен легко ломаться, а так у вас 100 ракет чтобы позабавиться и побабахать стены или админов) 4) Настройка first person controller и ракеты Планируется Я не хочу что-то загадывать и чтобы от меня это что-то ожидали. Поэтому всё что планируется это секрет. Техническая и другая информация Эта игра ещё не является игрой и возможно не будет доработана. Никогда не будет платной и не сделана ради прибыли. Когда я делаю эту игру я учусь, ищу и анализирую какие читы можно сделать и как их можно реализовать. Очень интересует игровая структура игры по типу Экшен на основе своей модели и связей компонентов (это дело я строю и изучаю). Игровой движок: Unity3d 3.5 (очень жду 4-ой версии, позволит удобно анимировать модели и меши) Платформа: выше Windows XP + .NET Основной язык создания игры: C# Взрывы: взяты с официального сайта Unity3d из пакаджа Всё остальное родное из Unity3d (кроме иконки ракеты и аватар Администраторов) PS для Xipho, буду максимально стараться экономить размер свободного места на хостинге. Поэтому каждая версия игры будет удалена и заменена новой. Скачать
  3. На Lua нет инициализации компонента Вкладок и нет функций работы с этим компонентом и в дизайнере этого компонента тоже нет. За предложением решения проблемы обратись на официальный форум Cheat Engine, потому что здесь на форуме вряд ли кто это делал или решал эту проблему. Я конечно могут предложить направления решения, но толку от этого будет немного, т.к. готового кода у меня нет. 1) Делать свой компонент на Lua (заголовки это изменённые стили кнопки а панель специально рисуемая при активации вкладок) 2) Делать плагин-расширение .dll на Lazarus и использовать его в ресурсах трейнера 3) Писать на Lua-код + Ассемблер внутри процесса трейнера или внутри процесса Cheat Engine. Наиболее быстрый в реализации пункт это пункт1. Его и советую.
  4. >> Как такое можно с пом луа сварганить? Как тебе сказать. (Lua + автоассамблерная функция) + WinApi + (Подсмотреть код своей программы на Lazarus по созданию, вызову диалога и подсмотреть обработку результата ) Проще использовать дизайнер форм
  5. Речь идёт о Cheat Engine надо было это указать. openDialog_execute работает с уже инициализированным диалогом. Нет функции инициализации, поэтому инициализация возможна только через визуальный редактор. 1) Либо делай все-таки через визуальный редактор. 2) Либо делай свой диалог и откажись от openDialog_execute 3) Либо пиши и исполняй свой асм код иницилазирующий компонент внутри процесса Cheat Engine
  6. Не, Приятель, это совсем не серьёзно С таким описанием проблемы, ответ к сожалению может быть только коротким. Ищи информацию по созданию скриптов и примеры.
  7. А что именно ты не можешь понять после нахождения координат?
  8. Ты решил пойти путем регистрации метки registerSymbol("address", address, false) Ну, то же вариант. Вообще я пользовался знаком "$" начиная с CE 6.1 (вроде) и у меня проблем не было. Но примеры скриптов куда-то дел уже не помню.
  9. Версия CE должна быть 6.2 В ней есть возможность переменные обозначенные как "$" добавлять в скрипт. Если они не работают, то используй конкатенацию addressMoneyAobscan и всего ассемблерного кода. Когда скрипт не будет выдавать ошибок тебе нужно проверить что тип памяти адреса, который ты ищешь действительно подходить под шаблон "+X-C-W". Это шаблон для кода, а для данных на чтение и запись может быть и так "-X-C+W" или так "-X+C+W". Если не знаешь какой тип памяти то бери все сразу (если я правильно помню) "*X*C*W" в этом случае поиск может затянуться.
  10. ARM4ND0, это игра от 3-го лица и камера болтается в воздухе и персонаж идет относительно того куда смотрит камера (т.е. уже то, что ты написал). Т.е. мне важно, что персонаж свободен от гравитации и стоял на некоторой высоте. Так что я считаю у меня вполне нормальный и случайный "флай хак" получился. Но я не думал делать его, а просто надо было пройти выше препятствия. Просто заморозить Z координату в воздухе любой сможет Ну, так для автора темы это и актуально. Но даже он не смог, потому что создал эту тему. Так что далеко не любой и особенно в играх, в которых гравитация вызывает сильные дёрганья. Там уже свои заморочки.
  11. ARM4ND0, если это "не совсем флай хак", то тогда какой "совсем флай хак"? Пишешь отрицание - пиши и определение. Полёт естественно делают с привязкой к горячим клавишам я просто не писал об этом. Что мешает додуматься повесить два хот-кея на заморозку значения по Z. С учётом специфики игры дерганья чара не происходит, т.к. запись в адрес происходит редко и видимо при определённых обстоятельствах. Возможно, чтение происходило гораздо чаще и только после записи в адрес происходит "рисование" модели. Модель Чара висит в воздухе и ходит по плоскости в воздухе. Меняя Z по хоткеям и летай сколько хочешь, точнее "ходи" - скорость остаётся та же. Инерции конечно нет, но это тоже можно сделать и чуть сложнее. Кому надо тот сделает.
  12. Великое большинство созданий флай хаков начинается с отсева адреса координаты Z в сканере памяти. Поиск неизвестного Поднимись немного на возвышенность и сделай отсев увеличилось. Опустить - сделай отсев уменьшилось. И так до тех пор пока не найдёшь один или несколько адресов Z. Поднимись на возвышенность и заморозь найденный адрес или адреса. Попробуй сдвинуть персонажа и он должен будет "ходить по небу". Меня очень просили для этой игры Dragon Age сделать флай хак на один раз, т.к. я был рядом с ПК. Была установлена кривая карта (миссии с Шейлой-големом). Там без Флай хака невозможно пройти между двумя препятствиями. Так что я даже бряков не ставил. Скачал CE, нашёл адрес, заморозил и всё сработало. Те кто наблюдали за мной за тем, что я делал на CE смотрели на меня как на волшебника, а когда чар начал ходить по воздуху (после 7-10 отсевов) радости кое у кого было много.
  13. Под newmem должен быть код. Его нет - результата в игре не увидишь.
  14. Загрузка изображения по пути image_loadImageFromFile(image, filename) picture_loadFromFile(picture, filename) picture_loadFromStream(picture, stream, originalextension OPTIONAL) picture_assign(picture, sourcepicture) Установка прозрачных областей на картинке и работа с ними (кстати в первые увидел эту поддержку, где-то на форуме спрашивали как это сделать, вот теперь и можно сделать) rasterimage_setTransparent(rasterimage,state): Will set the image to support transparency or not rasterimage_getTransparent(rasterimage): Returns true if the image supports transparency rasterimage_setTransparentColor(rasterimage, color): Sets the color that will be rendered as transparent when drawn rasterimage_getTransparentColor(rasterimage): Returns the color set to be transparent
  15. Заполняется более подробное руководство (хотя оно уже как минимум не делю не обновлялось). Большое количество примеров можно найти на форуме CE и там же задать вопрос. А для более искушенных - тех, кто хочет знать ответы на любые вопросы, которые не обсуждались на этом форуме могут задать вопрос на форуме CE или поискать ответ в исходниках CE.
  16. myForm = createForm(true) form_centerScreen(myForm) myComboBox = createComboBox(myForm) --print(strings_getText(getPropertyList(myComboBox))) local items = combobox_getItems(myComboBox) strings_add(items, '1') strings_add(items, '2') strings_add(items, '3') strings_add(items, '4') setProperty(myComboBox, 'ReadOnly', 'true') combobox_setItemIndex(myComboBox,0) function OnChangeMyComboBox(sender) local index = combobox_getItemIndex(sender) local items = combobox_getItems(myComboBox) local value = strings_getString(items, index) print('You select value = ' .. value) end setMethodProperty(myComboBox, 'OnChange', OnChangeMyComboBox)
  17. Каким бы не был хорош консольный режим, я думаю лучший вариант это в стиле меню или ин-гейм меню Если опций много, то можно сделать прокручивающийся список из чексбоксов как на рисунке 1) Меню может быть либо в свернутом виде, либо в развернутом с помощью клика мышки по некоторой области меню (на рисунке не указано) 2) Мышку использовать для перемещения меню по экрану игры за некоторую область 3) Вкл/выкл чекбокс с помощью клика мышки 4) Прокрутить чекбоксы колесом мышки, если курсор находится на области чекбоксов По мимо чекбоксов можно сделать и другие элементы: ввода текста(edit), ползунок(slider), текст (label). Я думаю меню такого рода это очень интересный и удобный вариант. Можно избавиться от горячих клавиш, от постоянного ввода с клавиатуры и не нужно запоминать опции и опций может быть довольно много. Они могут быть расположены по алфавиту для быстрого поиска. Кстати на CE это ингейм меню наверно сделать будет раз в 5 быстрее чем на С++. Я давно хотел написать плагин на CE Lua рисующий вот это "чудо меню" . Я видел пример дакр-байта на форуме о ингейм меню и пришёл к выводу, что на CE задуманное можно сделать так быстро, что не захочется читать документациями по DirectX, документациями по Api-WIndows.
  18. >> Есть просто игра, к которой не могу приаттачить отладчик. Стоит защита хорошая. Кернел режим не могу включить в се 6.2, т.к. процессор AMD. На самом деле мне всего-то надо узнать что храниться в регистрах определённого участке кода... Могу посоветовать поискать отладчики работающие в режиме ядра. Старый добрый SoftIce или какой-нибудь новый. Я не знаю поддерживают ли эти отладчики AMD.
  19. Существует огромное количество сингловых игр для Андроид. Я особо не парился с прохождением игр, но вот когда стали попадаться игры, прохождение которых очень долгое, то пришлось сделать финт. Хочу показать как для устройства Samsung_Galaxy_Tab_10.1 сделать root режим. На других устройствах не проверял. 1) Нужен root- режим 2) Программа сканер памяти. 1. Root- режим adb у меня стоял давно из SDK -tools для Андроида. Надеюсь у проблем у вас не будет. У меня не возникло проблем кроме 5-того и особенно после 5-того пунктов, а также пришлось поискать Samsung_Galaxy_Tab_10.1_root.zip в Интернете. Поищите сами. На 5-том пункте ищите в sdk-tools папке adb.exe и создаёте текстовый файл, который переименуйте в bat файл и в нём пишите. adb push Samsung_Galaxy_Tab_10.1_root.zip /sdcard/Samsung_Galaxy_Tab_10.1_root.zip adb reboot recovery После чего планшет выключится и на нём появится батарея зарядки и всё. Тупик. Я решил поискать информацию и нашёл вот это руководство. Полностью его читать не нужно, а только несколько строчек. Планшет выключаем. Теперь удерживаем кнопку включения и кнопку уменьшения звука. Появляется надпись. Отпускаем кнопку включения, а кнопку уменьшения звука не отпускаем. Наконец тут же появляется две иконки как в руководстве. И теперь отпускаем кнопку Уменьшения звука. Выбираем левую иконку кнопкой Прибавить звук. И нажимаем Кнопку убавить звук чтобы запустить консоль. В консоли увидим запуск recovery режима. Выбираем его. Ищем по директории Samsung_Galaxy_Tab_10.1_root.zip и запускаем. А теперь смотрим 7-мой пункт русского руководства и проверяем режим root. Меня поздравлют, всё получилось. 2. Программа сканер памяти Можно настроить Cheat Engine под поиска значения. Однако у меня минут 20 не получалось и я забил. Решил воспользоваться GameCIH.apk . Это сканер памяти процесса в котором сейчас находимся. Пользоваться интуитивно просто. Есть и несколько других сканеров памяти - поищите сами. На этом всё. Ещё раз уточню, что я написал пример для устройства Samsung_Galaxy_Tab_10.1.
  20. >> Кто может подсказать, как кода юзера преобразовать в нормальный код? Может быть ты ожидаешь какую-то оригинальную подсказку или супер идею. Думаю, я тебя разочарую. Если Юзер дожен вводить Асм-код в текстовом представлении, то тебе нужно написать программу, которая Асм-код преобразует в байт код и записывает по известному адресу последовательность байт-кода. Возможно тебе придётся использовать какой-то компилятор или писать свой для наиболее важных машинных инструкций. Чтобы найти "Адреса", то их можно маркировать какой-нибудь последовательностью байт. Если ты не смог додуматься до решения таким образом, может быть тебе и не стоит пытаться реализовать эту идею. Её реализация может занять у тебя много времени. Альтернатива - использовать Cheat Engine АА- и Lua - скрипты.
  21. Скорее всего скрипт "внедрения кода" неправильный.
  22. Чтобы в CE сделать прозрачную форму, то без гемора не получится - нужно 1) Бросить на форму картинку, на которой не видимый фон будет белым цветом. У картинки поставить свойство Транспарент в true 2) Форме отправить сообщения SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(Handle,clWhite,255,LWA_COLORKEY); Выполнить этот код на ассемблере, т.е. отрпавить сообщения окну трейнера можно как изнутри процесса Cheat Engine так и, если я не ошибаюсь из любого другого (даже из процесса игры) зная дескриптор формы. В противном случае форму с прозрачными областями на CE не сделать - увы (это вопрос к разработчикам Lazarus или Дарк Байту). На Lazarus-e на котором собран CE увы простыми средствами не сделать прозрачные области кроме как через Win-API. Я пришёл к этому выводу давно, когда разбирался с этим вопросом. Но потом я отказался от прозрачных областей по другим причинам и на асм не переписывал. Так что берёшь среду разработки (любую)... пишешь код на Win-API, ставишь бряк на SetWindowLong, подсматриваешь дизасм-код, копируешь. Добавлешь код поиска дескриптора формы, если надо. Ну и применяешь этот код в как исполняемую инъекцию кода, котоаря делает белый цвет на окне трейнера прозрачным. Ещё можешь поискать готовое решение на официальном форуме CE - мало ли уже есть готовое решение.
  23. >>Возникает вопрос, можно ли как нибудь сделать так, что бы эту часть кода программа не создавала ? Наверно, можно если не будешь пользоваться генератором трейнеров. Т.е. сам сделаешь свою форму на Lua или через дизайнер форм. Этот код ни чем не должен мешать. Я никогда с этой проблемой не сталкивался так остро. Учитывай, что код генерируется и пиши свой код в соответствии с этим. Если мне память не изменят с генерацией дополнительного кода столкнулся Uchiha Sasuke я подредактировал его код и у него всё заработало - у него были одинаковые функции onOpenProcess(processid) и ещё вроде одна. Посты остались где-то на форуме. Как я уже писал, maxi10027, изменил код подключения процесса на нормальный. Если ты включаешь имя искомого процесса в список авто-поиска addresslist=getAddressList() strings_add(getAutoAttachList(), "plugin-container.exe") Код1. то твоего ручного поиска процесса по его имени через таймер быть не должно - это лишнее. function myattach(timer) if getProcessIDFromProcessName("plugin-container.exe") ~= nil then object_destroy(timer) openProcess("plugin-container.exe") count2=0 debugState = 0 Obzor_AOB() else showMessage("Процесс не найден!") closeCE() end end f=createForm(false) --create an invisible window t=createTimer(F); timer_setInterval(t,100) --10 might have been too fast for xp... timer_onTimer(t,myattach) Код2 Не используй Код2. Оставь Код1(генерируется CE) и используй функцию function onOpenProcess(processid). Она сама сработает как только процесс будет сам найден и открыт.
  24. Тогда проверяй свой код. Добавь print("номер метки") в местах поиска и подключения к процессу. Собери как exe -трейнер и обрати внимание в каком порядке выводятся твои метки. Я только сейчас обратил внимание как ты ищешь процесс. Очень вероятно что он у тебя открывает два раза, хотя и это не должно было помешать. Первый раз это добавление названия процесса в список процессов открываемых автоматически. И второй раз, когда ты открываешь через openProcess. Попробуй как я писал в своих примерах - на форуме и на главной сайте используя функцию onOpenProcess. function onCloseClick(sender) closeCE() return caFree end trainerForm = createForm() form_onClose(trainerForm, onCloseClick) autoAttachList = getAutoAttachList() stringlist_add(autoAttachList,'calc.exe'); function OnCheckHotkeys() if isKeyPressed(VK_K) then — сделать какое-то действие print(«Hot-key K») return end if isKeyPressed(VK_L) then — сделать какое-то действие print(«Hot-key L») return end end function onOpenProcess(processid) print('Найден процесс игры. Запускаю проверку горячих клавиш') hotKeyTimer = createTimer(trainerForm) timer_setInterval(hotKeyTimer, 100) timer_onTimer(hotKeyTimer, OnCheckHotkeys) end
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.