MasterGH

Администраторы
  • Публикаций

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

  • Посещение

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

    75

MasterGH стал победителем дня 20 апреля

MasterGH имел наиболее популярный контент!

Репутация

366 Codecaver

Информация о MasterGH

  • Звание
    Сооснователь

Информация

  • Пол
    Мужчина

Посетители профиля

59 623 просмотра профиля
  1. Python ошибка

    Да, я давно уже должность поменял... ничего особого ) Это просто так новость, не нужно поздравлять) Но, все равно спасибо
  2. Python ошибка

    Точно, с ней виден русский текст. Интересно, я не знал И в этом прав... Удалил эту строку #!/bin/sh и логи без ошибок прошли Я тренировался на Unity3D/unitydemo.air. Эта апк собрана на Юнити. Её переместил в папку с проектом air (хотя она там и есть, это я другую удалил). Потом вызываю Firbase сборку и переподписываю. Собирается без ошибок, но апк на локальном смартфоне скрывается. При повторном запуске показывает ошибку, а по идее должен запуститься тестовый скрипт unitydemo.py Идея то в том, что тестовые скрипты игр запускатся в firebase на удаленных физических устройствах в службе Test Lab и там в течении например 15 минут идет тестирование с графиками, видео, логами. Похоже на известную SikuliX p.s. сменил должность на рукводителя отдела тестирования Повысили ЗП, больше не разработчик игр. Руковожу немного, да ботов редко пишу. Пожалуй я рад этому. У меня много данных аналитики, куча сервисов... Общаюсь больше с людьми, по верхам отделов и с разработчиками. Много задач завожу по функциональным багам. По железу и багам всегда ко мне.... Бывает и нудная работа в виде даже ручного тестирования игр (когда наш человек в отпуске), отчетности... Общаюсь с тестировщиками ручного тестирования. Два удаленных, один наш... Меньше стал уставать, мозги отдыхают... Такие дела
  3. 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.decode("GB2312").encode("utf-8")) При билде апк в firebase через плагин в AirTest (QA-тестирование на Unity) Среда разработки от уважаемых китайских разработчиков Я думаю в связи с этим ошибки с кодировкой GB2312. Гуглил, искал... пока безтолку Исходники Билд
  4. Книга про взлом игр. Только английский вариант и ознакомительная версия. Содержание и обложка под спойлером Ознакомительная версия
  5. 1. Сравнить структуры 2. Найти адрес id модели, хотя это если повезет. Может вообще не быть. Если нет id, то сам адрес структуры 3. На адрес id или на адрес структуры ставится брейкпоинт. Находим инструкцию, которая работает со всеми id или адресами структур и выводим их куда надо и как надо. Либо через АА скрипты, либо через Lua скрипты. Через последние проще. Нет гарантии, что все id-моделей сейчас на игровой сцене...
  6. [Cheat Engine] Dissect Data Scaner 1.0.1 beta

    Скорее всего, обновление будет на этой неделе. 1) Опкоды с перезаписываемыми регистрами типа mov eax.[eax] будут пока просто пропускаться (в следующих версиях плагина не будут) и соответственно будут пропускаться смещения, на которых опкоды только с перезаписываемыми регистрами; 2) Будет такая штука, как выбор лучшего опкода из всех, что проскочили на точке останова. Например, float приоритетный тип вместо dword, т.е. когда есть опкоды двух типов вернет flost, т.е. vtSingle. Также и из-за пункта1 здесь же исключаются опкоды с перезаписываемыми регистрами типа mov eax.[eax] ; 3) ну и наконец, самое и самое важное это получить правильное определение смещения в структуре. Из-за этого бетта версия не может вылезти в релиз.
  7. Уже была запись про тестирование производительности. В этом примере тестируем разное обращение к функции со средним арифметическим значением Результаты при 4-х запусках avg = 0.93333998758048 avg = 1.0322099291325 avg = 0.92657961891689 avg = 1.1883763135947 Вывод. Разница не существенная.
  8. Новости по будущему плагину

    vtSingle — тип взят из defines.lua. float его синоним. Single-precision floating-point
  9. [Cheat Engine] Dissect Data Scaner 1.0.1 beta

    В принципе понятно куда копать. Надо алгоритм сканера переделать на такой, чтобы встав в любое место структуры, т.е. на любой байт, правильно получить смещение в структуре. Для этого надо просчитать то, что в квадратных скобках опкхода. Если это не возможно, потому что регистр перезаписываются, значит ставим не аппаратный бряк на инструкцию и он работает постоянно в холостую записывая нужные регистры перед тем как сработает аппаратный бряк на адресе структуры. Когда случилось, то снимем все бряки, определяем правильно смещение. Ну, а там дальше смотреть...
  10. [Cheat Engine] Dissect Data Scaner 1.0.1 beta

    Тестирую я радостный на gta3 плагин. Нашел кучу интересных адресов настроек. И силу прыжка, и скоростей Velocity, и id земли на которой стоим и id глобального события (если его переключить, то ты либо в полете, либо арестован либо еще что-то). И тут я увидел что капитально на многих адресах поехали смещения в структуре. В пределах 1-4 байт. И как я понял дело в скорости срабатывания адресов и таймера ожидания перехода аппаратного бряка на следующий байт в структуре до её размера. Представим себе 4-х байтовое значение Начало структуры: +00: xx xx xx xx +04: xx xx xx xx 1. На первом байте не успели сработать инструкции. 2. На втором байте не успели сработать инструкции. 3. На третьем байте наконец сработали и увидели опкод.Опкод распарсили. Получили размер в 4 байта 4. На третьем байте на два байта смещение +00 убежало вперед в смещение +02. Примерно такая картина Начало структуры: +02: [xx xx] xx xx .... и там много что поехало, а некоторые смещения не поехали Окей. Я могу быстро вычислить адрес в скобках [eax+смещение] и даже всякие repe повторы обработать, но как только вот такая штука попадается mov eax, [eax+смещение] или вот такая mov eax, [eax*4+смещение], то eax уже успеет перезаписаться, ведь на данных стоит аппаратный бряк, а он работает после выполнения инструкции. 1) На смещении нужно постоять и подождать других инструкций и если N времени таких нет, то надо мне подумать, как быть дальше. 2) В принципе я могу и не ждать снять аппартный бряк с адреса в структуре и поставить не аппаратный бряк уже на инструкцию и получить eax до инструкции., а не после как при аппаратном. И тут еще один нюанс, на [eax+смещение], не тот адрес, а какой-то соседний или вообще дальний. Похоже надо оставлять оба бряка и аппаратный на смещении структуры и не аппаратный на инструкции. Сохранять данные не аппаратного постоянно, как только сработает аппаратный посмотреть последний данные не аппаратного и с ними работать. В общем буду думать как это все упростить и чтобы стабильно работало. Еще есть такая штука jumps и calls на адрес инструкции, там тоже может быть ситуация...
  11. Отладка Lua скриптов и stacktrace функций

    Пример, который показывает как снять стек вызовов функций function A0() -- Здесь можно удалить ":gsub('\n','\r\n')", но тогда в консоли текст будет в одну строку print(debug.traceback():gsub('\n','\r\n')) end function A1() A0() end function A2() A1() end function A3() for i=1,3 do A2() end end A3() Можно поставить пошаговую отладку в консоли Lua (как на скриншоте) и пройти по шагам
  12. Чтение адресов и записи в адреса

    Я обратил внимание на следующие поведения записи и чтения 1. Срабатывают только инструкции чтения до изменения параметра, адрес рабочий С адресом работают инструкции на чтение, но если в друг в этом адресе что-то поменять (например в CE), тот тут же выскочат инструкции на запись. Нельзя однозначно утверждать, что адрес является настроечным параметром, но и нельзя утверждать, что это не рабочий адрес. Какая-то инструкция может жестко менять значение, а может быть будет "стараться" изменить значение адреса в меньшую или большую сторону, но адрес при этом будет рабочим. 2. Срабатывают инструкции записи и чтения, адрес не рабочий Запись и чтение влияет только на часть игры, а не на все или вообще не влияет, а перезаписывается постоянно. Например, на визуальное отображение полоски со здоровьем. Получается, что адрес не рабочий, а у него есть как и в первом пункте инструкции и на запись, и на чтение. 3. Один раз срабатывает инструкция записи и потом всегда на чтение Если попался такой адрес в структуре, то он точно является "настроечным" и рабочим адресом. Например, это какой-то коэффициент, который добавляет, умножает, отнимает... в общем что-то меняет. Что с ним не делай, это адрес будут только "читать". Также это может быть булевой параметр "1 "или "0" и по нему может что-то резко меняться в игре. Окей. Вспоминается окно с кучей инструкций и счетчиков уникальных адресов (не более 8-ми логируется) Постреляв патроны с адресом патронов (в СТАКЛЕРЕ Зов Припяти) сработали инструкции как на запись, так и на чтение. Первая инструкция читает очень часто, вторая редко. В круглых скобках обозначаются количество проскакивающих адресов. Если был выстрел и значение поменялось, то вылезли инструкции записи (все после первых двух). Код читает в цикле адрес...и если, что поменялось, то запишет в него потом. Это похоже на пункт1, который обсуждали выше, но этот адрес патронов не тот, который нужен. С виду рабочий, но патроны потом не стреляют. Патроны это структуры в памяти, а адрес их как счетчик структур Как можно делать Создаем две группы (скрин ниже). Первая текущая и не замороженная. Вторая с двумя замороженными состояниями, когда стоим и ничего не делаем. Делаем несколько выстрелов. Цвет по +AC нас интересует больше всего, он соответствует логике состояний (стреляю и (не стреляю и не стреляю)) Выделяем и перемещаем адреса этого цвета и морозим в таблице. Первый праметр это прочность, второй не знаю. Третий счетик патронов. 3 и 5 адреса связанные, если правильно помню, с объектами патронов В Сталкере это не даст беск. патрнов, но в других играх может иметь смысл как прием сравнения структур и групп. p.s. По Сталкеру Зов Припяти, к сожалению, у меня не было времени взломать патроны или может быть я не умею, не знаю. Какие-то патроны в сталкерах ломал, но не помню как.
  13. [Cheat Engine] Dissect Data Scaner 1.0.1 beta

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

    Да, действительно делалось только для 6.7. Будет исправлено описание файла. Баг, результат которого можно видеть на скриншоте ниже. Два одинаковых опкода и неверный оффсет +131, а нужно +130 . Об этом баге я знаю. Скоро будет исправлено
  15. Новости по будущему плагину

    Не хватало файла GHL_ClassSettings.lua. Перезалил