Перейти к содержанию
  • записи
    104
  • комментариев
    125
  • просмотров
    15 610

Записи в этом блоге

[dnSpy + Unity ] Пошаговая отладка

Пошаговая отладка в dnSpy позволяет ставить брейкпоинты на C# код во время работы игры, перемещаться по коду, просматривать значения переменных. Сэкономит кучу времени при поиске и отладке игрового кода,   1. Страница загрузки dnSpy 2. Скачиваем dnSpy и все архивы с mono.dll файлами Unity-debugging-4.x-win32.zip Unity-debugging-4.x-win64.zip Unity-debugging-win32.zip Unity-debugging-win64.zip 3. Смотрим свойства exe файла игры и определяем по нему вер

MasterGH

MasterGH

CE Lua ColorPicker (скрытый компонент)

Чтобы получить цвет из компонента нужно найти его на форме CE через Lazarus. Этот компонент нельзя найти визуально, он скрыт. Узнал об этом случайно, когда зашел на форум Cheat Engine в тему расширений на Lua. Теперь в дизассемблере можно будет быстренько цвета менять

MasterGH

MasterGH

[The Escapists 2 + Unity + dnSpy] Спавн итемов.

Спавн итемов удалось сделать через dnSpy. При клике на любой предмет на меню крафта он создается в инвентаре, а если там занято, то выкидывается на карту.   Я переписал метод клика на рецепт, вот он оригинальный   На этот       Для спавна заменить Assembly-CSharp.dll из архива, сделав копию предварительно Assembly-CSharp.rar

MasterGH

MasterGH

Часть2. Lua простые регулярные выражения

Если нужно найти начало и конец подстроки. Пример Попробуем найти слово lab в троке gamehacklab.ru print(string.find('gamehacklab.ru', 'lab')) >9 11 Если не найдена подстрока, то вернет nil.   С помощью string.match можем выводить не индексы, а строку print(string.match('gamehacklab.ru', 'lab')) &

MasterGH

MasterGH

Взлом крафта в StarsOne

В оригинале, если нет всех компонентов рецепта, то нельзя скрафтить вещь. Цель: скрафтить без компонетов по нажатию кнопки   Игра на Unity и можно пробовать использовать в dnSpy модифицировать файл Assembly-CSharp.dll Открываем файлик и смотрим на классы связанные с крафтом   Так находим кнопку, которая создаст указанное количество вещей крафта в CreateItem     Задача скрафтить по имеющемуся рецепту любую вещь. Для этого я добавляю проверку количес

MasterGH

MasterGH

Часть1. Lua. Захват выражения в квадратных скобках

Есть такой плагин "AA Maker" и там довольно интересные регулярные выражения на Lua. Разберем некоторые выражения   Выражение ''%[(.*)%]' - захват всего, что в квадратных скобках   Пример local s = 'mov eax, [ecx + 4]' print(string.match(s, '%[(.*)%]')) --> ecx + 4 Символ "%" нужно всегда ставить перед специальными символами такими как ^

MasterGH

MasterGH

Новости по будущему плагину

Проведено огромное количество опытов над структурами. Много переделок. Очень кратко напишу, что поменялось.   1. Название структуры состоит из адреса, количества адресов в ней и  времени в миллисекундах на один байт в структуре. Подчеркнуто красным   2. Смещения отбираются только те, на которых за X времени не было обнаружено ни одной инструкции на запись. Чем больше та самая чувствительность,  тем точнее результат 3. В именах структур теперь ценная информ

MasterGH

MasterGH

CE Lua чистка памяти от утечек

ИМХО отказываться от CE Lua скриптов из-за утечек памяти не стоит. Можно чистить память следующим образом function startCollectgarbageProcess(interval, showStatus) local timer1 = createTimer(true) timer1.Interval = interval timer1.onTimer = function () if (showStatus) then print(string.format('Lua memory usage %.1f MiB',collectgarbage('count')/1024)) end collectgarbage("restart") collectgarbage("collect") if (showStatus) then print(string

MasterGH

MasterGH

Визуализация графов. Метод связывания ребер

Связь точек линиями и связь через метод описанный в статье   Пример1. Слева линии, справа работа алгоритма     Пример2. Скриншот из pdf документа с разным значением коэфициента     Пример3. С альфа и без альфа канала   &#

MasterGH

MasterGH

[ Cheat Engine 6.7 + Pointermap] Поиск указателей. Видео

Я задался вопросом, что такое pointermap. Вообще о нем не слышал и речь пойдет о нем. Я узнал о нём и прикинул, что возможно круто, а возможно и не круто иметь готовую цепочку указателей перед тем, как что-то делать в отладке. Цепочки можно раскрыть в окне структур и прикинуть, что там в них и "около" каких адресов будет происходить отладка. Во время отладки можно смотреть на окна структур. Может быть, а может быть и нет что-то интересное связать в отладке и с данными об указателях...  

MasterGH

MasterGH

Форуму 10 лет

11 декабря 2019 года форуму Gamehacklab исполнится 10 лет. Это дата первого пользователя форума.   Поздравляю всех:  активных пользователей, высший состав форума, админов и модеров, старожил, помогаторов, тех кто был на форуме очень давно и перестал заходить.   Отдельно @Xipho, @srg91, @partoftheworlD, @Garik66, @LIRW, @SER[G]ANT, @gmz. Извините, если кого-то персонально  пропустил.   Можно пожелать всем бесконечного энтузиазма на тему поиск

MasterGH

MasterGH

Cheat Engine 6.7 и Lua. Часть 1

Где писать Lua код?   Lua Engine окно, которое вызывается из главного окна CE.   Lua Console окно, которое вызывается из окна отладки CE.   Окно Autoassembler скрипта с вставки {$lua}, {$asm}   Lua Engine окно и Autoassembler-ные скрипты могут сохраняться в файлах Cheat Engine *.CT. *.CETRAINER, *.EXE   Lua Console для пошаговой отладки Lua кода и просмотров результатов ошибок и функции print()   Моя первая программа   Сначала узнаем версию для CE 6.7 и это

MasterGH

MasterGH

Python ошибка

Долго не могу решить проблему Traceback (most recent call last): File "C:\air test\plugins\firebase\build.py", line 124, in run self.SIGNAL_INSERT_LOGVIEW.emit(_str.decode("GB2312").encode("utf-8")) UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 11-12: illegal multibyte sequence QObject::~QObject: Timers cannot be stopped from another thread Если кто шарит на питоне просьба помочь. Питон 2.7   Основная строка self.SIGNAL_INSERT_LOGVIEW.emit(_str.deco

MasterGH

MasterGH

Cheat Engine 6.7 и Lua. Часть 3

Наконец-то дошли руки до третий части.   Речь пойдет о создании структур программно. Пример, что будет в конце записи     Сразу к делу. Нужен поинтер и процесс. Запустим туториал из Cheat Engine из меню Health->Cheat Engine Tutorial. Прохождение туториала подробно описано здесь     Подключаемся к процессу идем на 8-мой шаг. В руководстве есть поинтер [[[["Tutorial-i386.exe"+XXXXXX]+C]+14]+0]+18   Вместо XXXXXX может быть любое

MasterGH

MasterGH

Lua поиск элемента до и после строки

Была задача получить два списка из документа, в котором было с пару десятков тысяч строк. На практике выяснилось, что искать текст после ключевого слова легче чем искать текст до ключевого слова. Об этом и будет дальше   В утилите, которую я делал "Lua Regular Expressions (v. 1.0)"   Текст во вкладке "gmatch"   Game1 gameCompany DAU 53.21k -20% Game2 gameCompany DAU 20.35k -20%   Поиск элемента после строки   "DAU "DAU%

MasterGH

MasterGH

Игра, с которой началось увлечение взломом игр

Legacy of Kain: Defiance   Это старая PC игра выпущена в районе 2003-2004 годах, когда я еще учился в школе в классе 11-ом. В самом конце игры была сложная миссия сражения с боссом, никак не получалось её пройти.   Кстати из этой игры есть персонаж на аватаре у пользователя с форума Cheat Engine   Не мог пройти, как не пытался. То ли руки не из того места, пройти очень хотелось. Было у меня немного журналов игровых и там я много раз видел программу MTC. Ка

MasterGH

MasterGH

Задачка по IDA и Python

Вдохновение появилось после просмотра видео @Xipho по Ultimap Когда в Ultimap появляются Nx адресов с одним счетчиком, то хочется увидеть эти связи на графиках IDA. Появилась идея загуглить как в IDA через IDC скрипт отрисовать ветвь кода или ветви кода, на которых эти самые адреса связаны между собой, а все вложенные другие скрывать.   Пока из подсказок я нашел это и это   Допустим для тренировки даны два адреса из одной ветви кода (это я точно знаю, т.к. получен н

MasterGH

MasterGH

Анализ Dissect Data Structure 2

Охота на структуры и удивительное путешествие в мир структур в L4D2   1. Игру L4D2 в оконный режим 2. Установка плагина (позже) 3. Установка VEH отладчика, иначе вылеты 4. Первая миссия. Ищем адрес патронов. Бряк на адрес. Нашли инструкцию Красным показано, что я не всю структуру проанализирую позже. Долго было ждать. Структура больше 5К байт...   5. Делаем сигнатуру любой инструкции при работе  с патронами на всякий случай, если игра вылетит. se

MasterGH

MasterGH

FPU инструкция FINCSTP. Очистка ST(0)

FINCSTP     Похожа на FSTP, также вращает стек регистров FPU (я кстати не знал, увидел при тестах в CE), но только не перемещает значение по адресу.   FSTP [здесь указывается адрес или регистр] FINCSTP   Если нужно вытолкнуть значение из ST(0), а адрес куда его выталкивать не нуже

MasterGH

MasterGH

[Cheat Engine] Dissect Data Scaner 1.0.1 beta

Немного комментариев к этой версии.   1. Исправлены смещения 2. Добавлены также инструкции на запись   На скриноте ниже пример сравнения текущей структуры с координатами в СТАЛКЕРЕ Зов Припяти с копией структуры.  

MasterGH

MasterGH

Обработка исключения в Cheat Engine AA

Новые директивы try/except в AA доступны Cheat Engine 6.8 Beta2   Задача  try/except в AA обработать исключение, не допустить crash. Чтобы игра продолжалась, а чит в лучшем случае не закрыл бы процесс. В теории возможно определить, что был crash и что-то сделать. Например, отправить логи в свой или иной удаленный сервис аналитики, что такой-то чит не сработал...   Пример от DarkByte для  try/except с счетчиком crashes    

MasterGH

MasterGH

Исследование условия связанного со спавном

1. Нашел адрес патронов 2. Поставил брейкпоинт 3. Выкинул из рук Калаш с этими патронами 4. Увидел инструкцию, которая срабатывает когда что-то выкидываешь.   Решил зацепиться за эту инструкцию.   Либо спавн до инструкции, либо после. Сделал трейслог из рутины на этой инструкции и

MasterGH

MasterGH

Пошаговая отладка Lua скриптов в Cheat Engine

Открываем Lua консоль из дизассемблера Пишем Lua скрипт Дальше по шагам как на картинке   Сколько я не пользовался CE я никогда не знал об этом отладчике. Когда я случайно узнал, то был приятно удивлен. Если мы пишем какую-то функцию и она дает сбой, то её можно отладить как на скриншоте. Это может быть и не функция.

MasterGH

MasterGH

CE 6.8.2. Lua .Считаем размер инъекции в байтах

Пост для тех, кто интересуется Lua в Cheat Engine.    Можно подхватить разные моменты активации и деактивации записи в таблице CE и рассчитать размер кода между метками   1. По шаблону вставляем АА код для туториала Cheat Engine 2. Регистрируем метки-маркеры в АА коде 3. Этими метками в Lua считаем и выводим ""endCode - startCode" размер байтов   Пример, который подсчитал 15 байтов       Пример скрипта   Документация ко

MasterGH

MasterGH

×
×
  • Создать...

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

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