MasterGH

Разработчики (+)
  • Публикации

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

  • Посещение

Все публикации пользователя MasterGH

  1. Подписка на youtube канал

    Что вы думаете о канале GameHackLab[RU] на youtube и являетесь ли подписчиком?   Недавно было два он-лайн стрима. Я присутствовал на них, но вообще не был зарегистрирован на youtube. Теперь зарегистрирован и являюсь подписчиком. Довольно интересно получилось в режиме он-лайн что-то обсуждать. Поэтому я за то, чтобы продолжать и стримы, и более того я за то, чтобы увеличилось количество людей, которые хотят стримы. Поэтому я предлагаю подписываться всем на канал и даем знать о том, что хотим новый стрим в этой теме. Что там будет на стриме можно узнать во время стрима или предложить свои пожелания.   Я бы хотел чтобы доломали телепорт на Dead Rising 3. Сканировать кстати можно попробовать по горячим клавишам не выходя из окна игры.
  2. Обновил первый пост. 1. Убраны не работающие ссылки CPU, FPU 2. Добавлены ENG справочники. Открытые в свободный доступ с сайта Intel 3. Добавлена ссылка на CPU команды с одного из сайтов
  3. Более полные справочники:   [ENG] 64-ia-32-architectures-software-developer-vol-2a-manual.pdf 64-ia-32-architectures-software-developer-vol-2b-manual.pdf Instruction_Set_Reference.pdf   [RU] CPU FPU SIMD (MMX, SSE, SSE2, SSE3, SSSE3). Рассмотрим основные инструкции.    Инструкции можно разделить на три блока     * CPU (работа над целыми числами),    * FPU (работа над вещественными), * SIMD инструкции (работа с массивами чисел).   CPU (окно регистров) CPU(основные команды):      MOV     mov рег, рег -записать в левый регистр, значение правого регистра     mov рег,[]  -записать в регистр значение памяти     mov [],рег -записать в память значение регистра          Важно. Не забываете указывать размер данных. Байт, 2 байта, 4 байта. Это касается всех инструкций работающих со значением адреса в памяти.     Пример.     mov eax,byte [410000] - занести в eax значение байта     mov eax,word [410000] - занести 2 байта     mov eax,dword [410000] - занести 4 байта          NOP     Эта команда самая знакомая команда. Она стерает код. Это даже и не команда вовсе.     SUB     sub рег,рег -вычесть из левого правый регистр и сохранить в левом     sub рег,размер []  - вычесть из регистра значение адреса памяти и сохранить регистре     sub размер [], рег - вычесть из значения адреса в памяти  значение регистра и сохранить в памяти          ADD     Тоже самое что и SUB только сложение.          CMP     cmp рег,рег - сравнить регистры     cmp рег, размер [] -сравнить значение регистра и значение памяти     cmp размер [], рег -сравнить значение регистра и значение памяти     *cmp, обычно, ставят сразу перед прыжком.     сmp будет выскакивать, только если вы ставите бряк на чтение, ведь, здесь только сравнение ))          DEC     dec рег - уменьшить значение регистра на единицу     dec размер [] - вычесть значение регистра из значения в памяти  и сохранить в регистре     sub размер [], рег - вычесть значение значения в памяти  из регистра и сохранить в регистре          INC     Тоже самое что и DEC только сложение.          LEA     Вы будите встречать редко, это работа с регистрами.     LEA EAX,[EBX+ECX*4+100]     eax=ebx+ecx*4+100     Эта инструкция нужна лишь для того чтобы вычислить смещение .Просто знайте о ней.          PUSH     push число - добавить в стек (времення память) число     push рег - добавить в стек значение регистра     push размер [] - добавить в значение памяти определённого размера     Эту команду геймхакеры часто применяют для того чтобы быстро сохранить какое-то значение регистра, если регистр нужен для расчётов.          POP     Тоже самое что и PUSH только вытаскивание или восстановление. Вытаскивать нужно в обратном порядке.     Положили 1 2 3 4 5. Вытаскиваем 5 4 3 2 1. Будьте внимательны.     push eax     push ebx     add eax,ebx     sub ebx,eax     pop ebx     pop eax          PUSHAD Сохранение в стек регистров общего назначения edi, esi, ebp, esp, ebx, edx, ecx, eax.     POPAD Восстановление  регистров общего назначения edi, esi, ebp, esp, ebx, edx, ecx, eax     PUSHF Размещение в вершине стека содержимого регистра флагов flags     POPF Восстановление флагов          XOR     Исключающие или     xor   al, 01; изменить значение бита 0 регистра al на обратное          IMUL     Целочисленное умножение     mov  bx,186     imul   eax,bx,8          DIV     Без знаковое деление     •    если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah;     •    если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx;     •    если делитель размером в двойное слово, то делимое должно быть расположено в паре регистров edx:eax, причем младшая часть делимого находится в eax. После операции частное помещается в eax, а остаток — в edx.     mov ax,10234     mov bl,154     div bl ;ah=остаток, al=частное FPU (окно регистров) Основные FPU(команды):      Принцип такой есть 8 регистров ST. Эти регистры как барабан, который можно вращать некоторыми инстукциями. Также можно обратиться к каждомму регистру. Если регистр не указаывается, значит имеете дело с первым ST0 напримере комманды как fld [esi] (тоже самое что fld STO, [esi]).          Существуют инструкции довольно часто встречающиеся:     fld [] - загрузит из памяти в ST0 //fld St1,[] - загрузит в ST1     stp [] - скопирует из  STO в память     fstp [] - выгрузит из  STO в память     ну и так далее...      SIMD(окно регистров)     Эти регистры встречаются довольно редко и в основном в играх  стратегиях, т.е. в играх в которых участвует большое количество объектов (юнитов, зданий, и т.п.)     Про эти регистры вы можете посмотреть здесь, если будет нужно.
  4. Как ограничить скорость движения машин с помощью Cheat Engine. Автор AntonVit  
  5. У меня есть видео AntonVit с этой темы. "Cheat Engine - Как сделать ограничитель скорости оппонентов (Forza 6 Apex).mp4" Если он не против, можно залить это видео на канал GameHackLab. Но как он теперь даст обратную связь. Когда нет профиля, нет ничего.
  6. CE Lua. Вывод значений трейслогов

    Исправил первый пост. Кусок кода ... -- Получить все TreeView трейслогов tracerWindows = GetTTreeViewTracelogs() for i = 1, #tracerWindows do -- Получить таблицу адресов local tableAddresses = GetAddressTables(tracerWindows[i]) for i = 1, #tableAddresses do -- Вывести по одному адресу print(tableAddresses[i]) end end ...  
  7. Рис.1 Вывод данных из двух окон трейслогов. Второе окно трейслога не показано на скриншоте   Функции PrintTraceLog - просто вывод GetAddressTables - возвращает таблицу с int  адресами   *Делаем трейслоги. Запускаем скрипт. Выводятся адреса.    Внизу справка из main.lua    
  8. CE Lua. Вывод значений трейслогов

      Даже не знаю как ответить. Для кого-то не пригодиться. А мне нужно для рисования ветвей кода. Видим путь, который код прошел и инструкции, которые не были пройдены. Если 4 трейслога, то 4 пути. Хотел показать как это выглядит, но сегодня не успел отладить, лезут ошибки. У меня 1 час ночи. Завтра на работу. Всем до завтра
  9. AntonVit, спасибо за видео. Интересно было посмотреть.    
  10. Подписка на youtube канал

    Рад слышать знакомые голоса. Отличная идея записывать чат.
  11.   Пример createProcess('D:\\test.exe') Путь игры можно узнать в теории из реестра, по ярлыкам на рабочем столе или по пути, где находиться трейнер.
  12.   Сравнивает две структуры, больше не может. Ищет общие связи между структурами (типы: строка, 1,2,4, 8 байт, float, double, pointer) Может сравнивать по правилам "изменилось/не изменилось" (других правил нет) Has shadow — вероятно, аналог lock функции как в Dessect Data или когда включена lock в Dessect Data, то смотрит её адрес. В документации написано, что полезн в особых случаях "сильно заксриптованных игр", поиск string.   Ограничивает то, что две структуры и не более. И два правила "изменилось, не изменилось". Может быть, сделаю видос на выходных. На минут 10. Проблема только в том, чтобы удачно найти практические применение.
  13.   GAMEHACKLAB[RU] http://gamehacklab.ru/ Тема "Супер прыжок" Игра S.T.A.L.K.E.R Call of Pripyat 1.6.02   План: 1. Рассказать о векторе скорости Velocity 2. Поиск Velocity.Y в игре 3. Поиск инструкции меняющей Velocity.Y     - На инструкции требуется множество фильтров. Без фильтров игрок будет неправильно двигаться в том числе неправильно будут двигаться другие персонажи.     - Через TraceLog подняться вверх по условному брейкпоинту. Ищем значение, которое влияет на Velocity     - На значение ставим брейкпоинт и выходим на инструкцию записи     - Сделать АА скрипт на супер прыжок 4. Добавить АА скрипт-ы: на здоровье, стамину. -------------------  
  14. Прикольно прыгает на видео . Можно попробовать сделать  прыжок как в Марио. Чем дольше идешь тем сильнее разгоняешься и дальше прыгаешь.  
  15. Могу предложить придти на стрим в голосе. Редко встретишь девушек на форуме. Зрителей прибавиться
  16. Важно! Опрос. Что ломаем на youtube

      Вангую будет стрим в восресенье )  
  17. Идея такая. 1. Поучаствуйте в опросе о том, что снимать на youtube 2. Предложите дополнительный вариант опроса, что хотели бы увидеть на youtube.   Задача попытаться выяснить приоритеты. Выбирать можно множество вариантов.   upd: По поводу пункта "Летс плей на стриме (просто играем, возможно, с читами проверя их) ". Можно тестить трейнеры и таблицы наших форумчан по их желанию.  
  18.   Теория. На практике не пробовал Ставить брейкпоинт на запись. Прыгаем, падаем под спидхаком.  Там где Velocity.Y записывается (когда падаем), там смотрим код. Делаем инъекцию кода, чтобы при падении  Velocity.Y уменьшалась менее быстро. Проверить не могу, может быть позже на стриме или на видео.  
  19.   Если нет возможности ставить брейкпоинты, тогда попробовать написать ассемблерный код записи в адрес значения не меньше того, что по адресу.   if (newValue > lastValue) { lastValue = newValue; }  
  20. 21:29 в стеке второе значение равно 6.0. Код слева. Из   fld dword ptr [edi+31C]   забирается 6.0. Это есть значение, которое будет записано в стек, а из стека, когда уже будем внутри call-а будет записано в Velocity.Y     Максимально большое будет таким, каким будет его записывать игра и оно может меняться (т.е. может быть не постянно 6 как в Сталкере, а разное). Мы должны увидеть запись в Velocity.y и это будет максимальным значением на текущий момент игры. Возможно, оно будет динамически меняющимся. Вообще я бы не называл его максимальным значением, а называл параметром скорости. Узнать какие параметры скорости записываются.
  21. Так я и нашел его на видео (в первом посте). Оно равно шести. Если поменяется на другое, то будет другим. Если речь о другой игре, то по аналогии. А если есть ограничение по скорости, то ставить на адрес трейслог (ставиться из окна памяти). Подниматься вверх и исследователь ветку.
  22. Важно! Опрос. Что ломаем на youtube

      Если бы у меня был свежий тренер или таблица, и если бы взяли потестить на стрим, то я бы посмотрел.
  23. Список ID оружия для Watch Dogs 2

    Тема интересная. Поддерживаю. Будет здорово, если все получиться.
  24. Важно! Опрос. Что ломаем на youtube

    Я хотел бы выделить группы и пункты в них, которые набрали от 10 до 4 голосов.   Группа1: 7 голосов - Чит на спавн предметов (на локации, в инвентаре, в руках) 6 голосов - Рассматриваем функции на высоком уровне и рассматриваем дизассемблерный код 5 голосов - Чит на прохождение сквозь стены 5 голосов - Чит "Боты нападают друг на друга" (меняют таргет с ГГ на npc) 4 голоса - Спонтанный взлом на стриме (с участием в голосе одного и более человек) 4 голоса - Чит на скрытность от врагов 4 голоса - Чит поиск предметов на локации (подсветка на миникарте, подсветка на локации) 4 голоса - Чит на скорострельность, быстрый каст 4 голоса - Чит на уменьшение отдачи от оружия 4 голоса - Знания игрового движка для создания читов в других играх (игровой движок Unity)   Группа2: 10 голосов - "Жесткий реверсинг" в CE. Трассеровка, ветки кода, стек, брейкпоинты, пошаговая отладка 6 голосов - Абсолютный обзор поиска адресов (описания всех правил от bynary до Grouped, всех типов данных, всех настроек связанных со сканированием) - 6 голосов - Structure Spider (теория и практика) 6 голосов - Ultimap (теория и практика) 5 голосов - Абсолютный обзор создания Autoassembler-ных скриптов (все команды АА, шаблоны АА встроенные в CE) 5 голосов - Экспериментальные сравнения в "Dessect Data" (сравнения дампов до и после перезагрузки уровня, игры, сравнения дампов стека) 4 голоса  - Рисование в окне чужой игры.. -----------------------------------------------   Пожелания форумчан Пожелания:   Чит на спавн предметов (на локации, в инвентаре, в руках) - ну наверное самый интересный и сложный чит, особенно если удастся не просто заменить предмет на другой , а именно добавлять ^_^. Т.е. вызовом игровой функции с нашими параметрами на добавление вещи "Жесткий реверсинг" в CE. Трассеровка, ветки кода, стек, брейкпоинты, пошаговая отладка. Теория + Практика. - просто посмотреть, может есть какие-нибудь нюансы о которых я не знал ранее... Рассматриваем функции на высоком уровне и рассматриваем дизассемблерный код - вот это очень интересно, особенно вызов функции в потоке через CE Чит на скрытность от врагов хотелось бы посмотреть на рабочую реализацию и нахождение, и спавн предметов, я так и не допер от чего можно оттолкнутся в её поиске. Знания игрового движка для создания читов в других играх (игровой движок Unity)  - имхо тоже обязательно Structure Spider (теория и практика) - никогда не пользовался  пару раз открывал и закрывал... Поломайте игры в вк .Там много UNITY игр .Будет топовый стрим . UE... PainKiller или Red Orchestra или NecroVisioN или что то в этом духе    Что примерно получается. Обозначены общие точки соприкосновения интересов. Две топовые темы. Если сделать видос на спавн объектов или на жесткий реверсинг, то это определенно успех. Будет желание повторить на каждой игре, которая попадется под руку. Спавн объектов — тема очень сложная. С огромным желанием можно влезть в дебри кода, а потом "сушить сухари" .   Интуитивно понятно, что в игре можно сделать все, что может сделать разработчик игры. Если на локации появляется предмет, значит и мы можем делать этот предмет на локации. Если у персонажа предмет появляется в руках и в инвентаре, значит и мы можем сделать это. Легче сделать так, как это происходит в игре. Создать предмет рядом с игроком и автоматически перенести в инвентарь,а из него в руки (если надо). Если в инвентарь нельзя перенести, то покажется причина (инвентарь заполнен, или нельзя взять этот предмет потому-что).  В теории задача на "спавн" сводиться к минимальному написанию кода. Поиск ветвей кода, изменение условий, при которых нужные ветви с нужными параметрами выполняются.   Если есть вопрос  "кто будет делать видео?". Видео будут делать по желанию, кто хочет. Если я смогу сделать спавн объектов или другую тему, то я с удовольствием создам видео и тему для обсуждения.
  25. Лунная гравитация это типа устремления к одной точке. Могу сделать в игровом движке Unity как два пальца обо асфальт стандартным компонентом Joint. По поводу скрипта, сделал бы что-то типа этого. Узнаю направления от точки1 до точки2, где точка 2, на которую смотрим. Это точка2 - точка1. Точка это Vector3.   Car.Velocity = (точка2 - точка1) * (скаляр speed) * (по времени фрейма time.DeltaTime).   Скаляр - float константа скорости. по времени фрейма time.DeltaTime - разница между вызовами функции Update, тоже float   Рекомендую поставить игровой движок Unity. Там есть машинки в стандратных ассетах. Написать свой скриптец Лунной гравитации. Потренироваться. Тренировка на высоком уровне помогает делать читы на низком уровне в других играх.   upd. А еще надо вектор нормализовать (точка2 - точка1).normalize Нормализация, это чтобы значения вектора указывали направление между нулем и единицей. Иначе велосити будет тем сильнее чем игроки дальше относительно друг друга.   Car.Velocity = (точка2 - точка1).normalize * (скаляр speed) * (по времени фрейма time.DeltaTime).