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

Лидеры


Популярный контент

Показан контент с высокой репутацией за 27.10.2020 во всех областях

  1. 4 балла
    Вот и настало время когда я вернулся снова к этой игре Только теперь уже для нее есть исходный код, который позволит находить всякие функции в разы быстрее и проще На этот раз будем делать карту ресурсов, рисовать ее и загружать прямо в игру Этапы которые этому способствуют 1. Распаковать саму карту из surfaces.pck 2. Достать саму карту, посмотреть каким образом она примерно отображается 3. Узнать координаты респа ресурсов Vec3 на карте 4. Перевести Vec3 игровые в Vec2 картовые 5. Нанести по Vec2 соответствующие иконки 6. Привести все в читаемый формат для игры 7. Запаковать все обратно 1. Распаковка pck этой игры уже не представляется сложностью, и есть довольно много софтов делающее это (Собственно как и упаковка обратно) А значит пункты 1 и 7 не сложны совсем 2. Карта в игре отображается довольно специфическим образом (Незнаю как до этого додумались разработчики, или же это движок сам режет так интересно) В целом картина такая Мировая карта состоит из 88 частей - т.е. 8 столбцов и 11 строк (В свою очередь каждый квадрат тут 1024*1024 пикселя) Из всех этих кусков собирается единая карта, которую можно будет увидеть в игре Формат файла dds, т.е. в итоге мы должны получить карту в 88 dds файлов как в оригинале 3. Координаты респа найти довольно легко, опять же распаковав configs.pck Внутри будет coords_data.txt в котором некоторым списком указаны Vec3 координаты нахождения ресурса / моба и т.п. Структура примерно такая Парсим нужные координаты по ID (Пишем вспомогательный парсер который выдаст c++ массив с Vec3) 3091 - ID, world - фильтрация только для основной карты Ну и достаем Vec3 - x y z координаты 4. Когда есть массив всех этих ресурсов, нужно перевести Vec3 (Т.е. внутриигровое положение в мире, на карту, которая 2D) Тут поможет исходник клиента PW, и метод который рисует стрелочку игрока на карте Вот та самая функция в исходном коде, далее надо ее найти и заменить координаты (т.е. оригинально передаются Vec3 игрока, и вычисляется Х-У для рисования на карте) Ничто не помешает нам подменить эти координаты на те, где находятся ресурсы Vec3 Далее дело техники, и создания хука (Учитывания calling conventions, определения аргументов и т.д.) Имея исходный код не так сложно найти функцию (Правда версия игры немного старее чем этот исходный код) Собственно вот и хук. В цикле перебираем массив который сделали на шарпе путем парсинга файла Выдаем результаты в виде массива (Далее пригодится) Таким образом я получил координаты для 4х видов ресурсов (Больше мне и не нужно. Vec2 координаты) ~320 штук 5. Далее необходимо нанести все это дело на карту. Дабы не скреплять все 88 кусков в каком-нибудь редакторе мне удалось найти (Не без помощи) карту 8*1024 х 11*1024 пикселей. Т.е. точно такую как и нужна Для добавления иконок на общую картину была написана еще одна вспомогательная программа на шарпе, которая грузит общую карту, а потом по координатам ставит маленькую иконку 16х16 по координатам из массива (Скрин выше) Ну соответственно наносим сами иконки на общую карту и сохраняем в jpg. Получаем на выходе карту в 113мб с нанесенными иконками Остается всего 2 пункта, один из которых пустяковый 6. Режем эту общую карту в фотошопе (Качаем фотошоп, да да у меня его не было на этой машине) с помощью инструмента "раскройка" И как раз получаем 88 изображений; 8 столбцов и 11 строк, где каждая картинка по 1024*1024 пикселя. Идеально Остается нерешенным только вопрос конвертации из jpg в dds. Но тут придется только ручками все делать. А также ручками приводить потом названия этих кусочков в вид который на скриншоте №1. (Не смертельно, но долго) Заменяем 88 dds файлов на новые в папке maps 7. Запаковываем все обратно в единый pck файл программой из п1. и проверяем в игре. Все работает. Отлично.. Сама по себе идея не новая, но вот реализации именно внутри игры пока что не видел нигде
  2. 3 балла
    После второй части, углубимся в работу виртуальной машины, а именно нам нужно понять как виртуальная машина понимает какую функцию надо выполнять при определенной команде. Тут все довольно просто, есть некоторый массив с нативными функциями, доступ к которым скрипт получает сравнивая их название. В этом методе помимо команд скриптов вызывающих нативные методы так же есть консольные команды. Массив с нативками выглядит следующим образом: Таким образом получаем доступ к нужной нам функции, которая создает предмет около игрока. Функция принимает в себя указатель на конструктор объекта, указатель на структуру игрока ( так и получаем координаты, где спавнить предмет ), адрес конструктора объекта, количество создаваемых предметов, тип компилятора и указатель на стек виртуальной машины. После выполнения рассматриваемого метода, виртуалка компилирует и ставит скомпилированный скрипт на выполнение в очередь. Отбросив мелочи, типа получение координат, угла камеры и прочего для создания предмета около игрока, на этом можно заканчивать, единственное, что указатель на специфичный конструктор объекта, вычисляет по id, но находится вне метода и передается по стеку. Ну и конечно же видосик. Прототип и сигнатура для тех, кто задумается создавать спавнер:
  3. 3 балла

    Версия 1.0.0

    2 раза скачали

    Dark Messiah of Might and Magic Версия игры 1.2 Репак Numeric_1 = Беск. жизнь (???) Numeric_2 = Беск. стамина Numeric_3 = Вкл. хождение сквозь стены Numeric_4 = Выкл. хождение сквозь стены Numeric_5 = Вкл. невидимость Numeric_6 = Выкл. невидимость Numeric_7 = Нет отравления Numeric_8 = Беск. зелья Numeric_9 = Беск. очки навыков = 20 Numeric_0 = Мягкое ночное зрение Numeric_/ = Беск. жизнь Леаны Numeric_* = Беск.стрелы Numeric_+ = Увеличение гравитации Numeric_- = Уменьшение гравитации Home_____= Номальная гравитация ] __________= Беск. жизнь
  4. 3 балла
    Позволяет переключать камеру в вид от третьего лица. Сделано при помощи Cheat Engine для последней версии игры из стима😋 В отличии от других подобных программ при использовании этой не появляется никаких проблем с управлением персонажем, поднятием предметов с земли и т.д. Исходники уже утеряны, но если кто-то найдёт серьёзные проблемы в работе, то постараюсь сделать всё заново и без ошибок. Видео: Инструкция: Скачать можно по этой ссылке - https://cdn.discordapp.com/attachments/670708609335951372/772226385237639198/KCD_-_3rd_person_mod.7z Делал программку(трейнер?) месяца 3-4 назад на заказ, размещённый в разделе платных запросов. Заказчик согласился с тем, что я выложу это на форуме через некоторое время. Некоторое время прошло🙂
  5. 3 балла
    Вот это: значит, что нужно заменять всё, что не опкоды на XX. Опкоды это всё, что ADD,MOV,PUSH и т.д. Не опкоды это всё, что ecx, [0x123], 2 и т.д(это операндами называется). Байты опкодов это обычно один или два первых числа каждой строчки в дизассемблере CE. Пример - mov [esi+00000FE0], упомянутый выше в теме. Здесь опкод - mov, это 8B. Посмотреть список опкодов можно, например, здесь(одна из первых ссылок в гугле): http://ref.x86asm.net/coder32.html#x0FE0.
  6. 2 балла
    там статик стек, например: testz: struc .stack resq 4 .5 resq 1 alignb 16 resq 1 endstruc sub rsp,.stack_size mov ecx,1 mov edx,2 mov r8d,3 mov r9d,4 mov dword[rsp+.5],5 call [xxxxxxxx] mov ecx,1 call [xxxxx] add rsp,.stack_size ret где .5 макс количество параметров апи
  7. 2 балла
    В этой статье, мы с вами создадим хак на обход блокировок чата. Это может пригодиться вам для спама в канальный чат сервера / если не хотите ждать задержку между отправкой сообщений / система заблокировала вам чат за оскорбления и т. д. В общем, вы найдёте много применений этому. Нам нужно включить постоянную активацию чата для нашего актёра и отключить задержку между отправкой сообщений.. Добавим в наш код новые смещения В итоге, мы имеем такой набор смещений Добавим в перечисление CvarOffsets новые значения Теперь наше перечисление со смещениями, выглядит так Классы IGameFramework и ICvar у вас уже есть и они не изменились пока-что, поэтому, я не публикую их здесь. Пишем функцию, для обхода блокировок чата Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.
  8. 2 балла
    В этой статье, мы с вами создадим хак для исключения любого союзника с любой спецоперации или PvE миссии, в любой момент. Система кика игроков со спецоперации и PvE работает по следующему принципу: Автоматическое исключение за бездействие (по таймеру) Исключение голосованием игроков Проблема заключается в том, что если игрок активен (например, использует афкбот), система не сможет автоматически исключить его. У вас остаётся только единственный вариант, это голосование игроков. Но и здесь есть проблема. Она заключается в том, что после 2-3 контрольных точек, флаг возможности голосования переключается и запустить голосование игроков невозможно. Наша задача включить функцию кика и указать количество контрольных точек, в течении которых она будет активна. Добавим в наш код новые смещения В итоге, мы имеем такой набор смещений Добавим в перечисление CvarOffsets новые значения Теперь наше перечисление со смещениями, выглядит так Пишем функцию, для включения кика игроков в любое время Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.
  9. 2 балла
    В этой статье, мы с вами отключим назойливую рекламу и персональные предложения в игре. Поиск всех необходимых смещений для этого вы уже знаете, поэтому, я не буду останавливаться на этом подробно. Остановимся только на ключевых моментах. Добавим в наш код новые смещения В итоге, мы имеем такой набор смещений Добавим в перечисление CvarOffsets новые значения Теперь наше перечисление со смещениями, выглядит так Наш класс IGameFramework Наш класс ICvar Пишем функцию, для отключения рекламы и персональных предложений Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.
  10. 2 балла
    В данной статье, мы научимся определять тип комнаты, в которой мы находимся и что-то делать в зависимости от этого. Есть множество вариантов использовать это. Например, вы хотите, чтобы какой-то ваш хак работал в одном режиме, но не работал в другом. Ещё пример, рисовать скелеты на противниках (когда мы до этого дойдём). Порядок костей в PvE и PvP разный, поэтому, без определения типа комнаты вам не обойтись. В игре существует 10 типов комнат: Лобби игры Командный бой Захват флага Игроки против ботов Подрыв Штурм Каждый сам за себя Уничтожение Доминация Выживание Для того, чтобы успешно определять тип комнаты в которой мы находимся, нам необходимо посмотреть это через структуру ICvar и смещение в ней. Для типа комнаты, это смещение равно ICvar + 0x600 Добавим в наш код новое смещение Добавим в перечисление CvarOffsets новое значение Теперь наше перечисление со смещениями, выглядит так Добавим в класс ICvar новый метод. Теперь класс ICvar выглядит так Создадим перечисление со всеми возможными видами комнат Далее, получение типа комнаты И всё, что вам остаётся сделать, это сравнить тип комнаты с нужным вам и что-то сделать Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.
  11. 2 балла
    В данной статье мы с вами создадим АнтиАфк хак. В игре существуют разные проверки, в том числе активен игрок в данный момент или нет. Если игрок находится в созданной комнате и не активен в течении 90с(это значение меняется каждое обновление), то он автоматически исключается из комнаты и на его место может зайти другой игрок. Однако, у него сохраняется возможность заново присоединиться в комнату, из которой его исключили за бездействие. Также, помимо проверки активности игрока в комнате, существует проверка игрока в любом бою, будь то PvP матч или PvE миссия. Если в бою игрок не активен более 120с(это значение меняется каждое обновление), то система автоматически исключает его за бездействие и присоединиться в бой, из которого его исключили он уже не может. Проверки осуществляются в 2 этапа. Первая проверка локальная и её можно просто отключить. Вторая проверка зашита в античит и чтобы отключить её, нужно отключить IN-GAME античит или передавать необходимые значения. Если вы просто отключите проверку, IN-GAME античита, вы получили бан в течении 10 минут. В данной статье, мы будем передавать нужные нам значения, а отключение IN-GAME античита мы осуществим в одной(или двух) из будущих статей. Для того, чтобы обойти эти 3 проверки, нам нужно просто получить указатель на нашего игрока, отключить локальную проверку активности и установить нужные значения на проверку от античита. Адрес ICvar вы найдётё вот так: С остальным, у вас не должно возникнуть проблем, т.к мы уже изучали поиск всего необходимого для создания этого хака. Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.
  12. 2 балла
    В этой статье мы с вами создадим внутриигровой РадарХак. Внутриигровой радар в этой игре работает по следующему принципу: Отображать союзников время отображения == время жизни союзника. отображение == всегда дальность отображения == зона видимости радара Отображать противников отображение == иногда время отображения при визуальном столкновении столкнулись вы == время отображения 5с столкнулись союзники == время отображения 3с при вооруженном столкновении столкнулись вы или любой союзник == время отображения 10с столкновения не было, противник стрелял == время отображения 3с дальность отображения == зона видимости радара Наша задача в том, чтобы противники всегда отображались на радаре, не зависимо от того, были столкновения / стрельба или нет. В этом нет ничего сложного.Нам просто нужно получить необходимые смещения, указатели, получить итератор сущностей, перебирать их в цикле и отображать на радар, указав время отображения. Класс IGameFramework выглядит теперь вот так: Класс IGameRules: Класс IActorsystem: Класс IEntity: Класс IEntityIterator: И самое простое во всём этом: Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.
  13. 2 балла
    Я решил рассмотреть три новые функции: Пользовательские типы данных в hex-окне Фильтр на окне определения адресов Поиск данных в окне Tracer 1. Пользовательские тип данных в hex-окне Пример как сделать: Фильтр на окне определения адресов 3. Поиск данных в окне Tracer Обычный поиск, как на прошлых скринах Примеры Ну и более интересная версия перебора и одновременного выделения записей. Здесь нужно открыть окно "Трейсера" и рядом в Lua окне писать свои условия в функции "Compare()", "PrintData()", Selected() Документация Для вывода referencedBytes из трейслога можно использовать byteTableToDword(referencedBytes) (смотрим документации выше) получая из TfrmTracer.Entry[index].referencedBytes или в строке поиска у Трейслога вбить byteTableToDword(referencedBytes) > 0 and print(string.format("0x%08X - 0x%08X", RIP, byteTableToDword(referencedBytes))) == 1 Практическое применение Больше всего могут интересовать реальные практические примеры. Если будет время, желание может быть сделаю, а так просто общий обзор.
  14. 2 балла
    Сборка 05.11.2020 Commit: 1d2c9c8 WindowsLinux MacOS
  15. 2 балла

    Версия Steam

    14 раз скачали

    Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер .cpl Функции: Бессмертие Убийство с одного выстрела Без перезарядки оружия Бесконечные патроны Бесконечная взрывчатка Точность оружия Без отдачи оружия Быстрая стрельба из снайперской винтовки Без качания оптического прицела Перекрестие прицела по центру экрана
  16. 1 балл
    Для скачивания требует войти в гитхаб. Сборка 31.10.2020 Commit: 027ba38 WindowsLinux Если кому-то нужна будет версия для Mac OS, то напишите в личку, добавлю в следующей сборке.
  17. 1 балл

    Версия steam --.11.2020

    3 раза скачали

    Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бессмертие Без перезарядки оружия Бесконечные деньги Бесконечные ключи Убийство с одного выстрела Без времени на выстрел Без перезарядки не которых спец-способностей
  18. 1 балл
    BPM BULLETS PER MINUTE Просмотр файла Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бессмертие Без перезарядки оружия Бесконечные деньги Бесконечные ключи Убийство с одного выстрела Без времени на выстрел Без перезарядки не которых спец-способностей Добавил LIRW Добавлено 27.11.2020 Категория Трейнеры для PC игр  
  19. 1 балл
    Когда первый раз файл экспортируется из гидры удобнее всего пользоваться софтом CFF_Explorer ибо наш образ в bin мы сохраняем его в наш формат будь то dll или exe важно учитывать то же название которое присутствовало в игре ибо игра подгружает файлы по определенному названию dll / exe на рыбалке не пробовала надо будет посмотреть вечерком . ps нюансы - CFF_Explorer - file - save As - и тут уже указать формат расширения ( это так чтобы понимали что я пишу ) да когда гидра предлагает анализ там есть возможность выбрать желательно не трогать красные секции вы же выбираете все - зачем ? ) можно включить эти WINDOWSPE x86 propagate external parameters если есть символы от файла ( это тока если скомпилировали свой или в сурсах ) то включить параметр PDB MSDIA при желании ещё полезно decompiler parameter id но не трогайте то что подсвечено красным ( не желательно ) всё что я указала я тестировала на своих длл где снята themida игра lineage2 все отлично работало как часики .
  20. 1 балл
    Если правильно поняла то тебе нужно проставить virtual size судя по твоей картинке что ты приложил - детали в видео тогда бери pe tools автор приложил переход на него под видео на ютубе и правь virtual size блок 1) 00009E00 2) 00008A00 3) тут оставляем такое же значение потому что указанное в raw size 000000A0 меньше чем указанное в virtual size 00001BC8 тут думаю ясно ) 4 ) 00000E00 5 ) 0008A200 6) 00000800 Это сработает если ты сам там изначально на скриншоте твоем что то не менял ибо расчет идет из оригинальных размеров ( raw size ) блока А то видео я тоже нашла полезные мануалы. ps я заметила что архитектура кода х64 тогда учитывай тот факт что обычно игры х64 под протекторами пример denuvo тебе нужно учитывать это когда ты модифицируешь файл такое может сработать тока в чистых файлах как автор приводит пример на видео в дефолтном калькуляторе .
  21. 1 балл
    BloodRayne Terminal Cut 1-2 Просмотр файла Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер .cpl Ps: На Rip'e надо запускать трейнер с правами администратора, так как запуск игры идет с ними! Функции: Бессмертие Бесконечная кровь Бесконечные патроны Убийство с одного выстрела (пистолет) Ps: В архиве идут два трейнера, на первую и вторую часть. Отличие в них одно, а это последняя функция. В первой части за место "Убийства с одного выстрела" сделана скорострельность. Добавил LIRW Добавлено 23.11.2020 Категория Трейнеры для PC игр  
  22. 1 балл

    Версия Codex

    6 раз скачали

    Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер .cpl Ps: На Rip'e надо запускать трейнер с правами администратора, так как запуск игры идет с ними! Функции: Бессмертие Бесконечная кровь Бесконечные патроны Убийство с одного выстрела (пистолет) Ps: В архиве идут два трейнера, на первую и вторую часть. Отличие в них одно, а это последняя функция. В первой части за место "Убийства с одного выстрела" сделана скорострельность.
  23. 1 балл
    Давно вот этот ролик смотрел. Собсно там парень вообще без возможности что-либо видеть. Рассказывает на своем примере, как живет с этим.
  24. 1 балл
    После передачи консольной команды в игру, происходит её компиляция. Сперва происходит проверка синтаксиса, после проверка существования выбранной сущности в массиве со всеми npc/предметами. Если все прошло хорошо, переходим к следующему пункту, а именно выбору типа компилятора. Всего существует 3 типа компиляторов: DefaultCompiler = 0 SysWindowCompileAndRun = 1 DialogueCompileAndRun = 2 Для компиляции скриптов выбирается SysWindowCompileAndRun, консольная команда разбивается на тип команды, ид объекта и количество объектов, а дальше происходит вызов виртуальной машины, в которую передаются baseValue, stateVM, stackID, resultValue, frame. На этом этапе уже возможно спавнить предметы, но будет слишком сложно найти все( и самое главное правильные ) переменные для спавна через виртуальную машину. А значит спустимся на уровень ниже, и найдем нативную функцию.
  25. 1 балл
    В общем так, логику создания радара тебе написали. Код реализации дали. Учить основам программирования на C# и базового курса математики, тебя никто не будет. Не хочешь разбираться -> просто воткни этот модуль к себе в проект. Хочешь разобраться -> бери код, бери описание логики, читай код / переделывай под себя / бери какую-то часть, разбирайся и вникай. На поставленный вопрос тебе ответили.
  26. 1 балл
    https://onyx-boox.ru/boox_darwin6 у меня эта. Если планируешь или в самом деле читаешь постоянно и много, то лучше читать с нее. С телефона или планшета читать не комфортно от слова совсем. Дежавю формат читает быстро. ПДФ, если там много больших иллюстраций - с ними проблемнее. Обычно ПДФ это либо техническая литра, причем без перевода. Либо старые книжки, которые по тем или иным причинам было проще отсканировать, чем перевести с текстовый вариант. Касательно лагов и отклика - режим частичной перерисовки решает эту проблему (не на все 100%, но ощутимо) PS А 3070 сейчас бы я не советовал брать, из-за цены и из-за того, что скоро покажут 3070Ти, у которой памяти будет больше и они заставит снизиться цены на базовую версию. Да.
  27. 1 балл
    Возможен бан в игре. Вы используете хак, на свой страх и риск. Перед использованием, ознакомьтесь с ЭТИМ Поддерживаемые ОС: Win7+ (x64) Поддерживаемая версия клиента: (x64) Поддерживаемая версия DirectX DX9, DX11 Поддерживаемые античиты: MRAC Версия от 11.11.20 (Последняя) Undetected ЕСП: Силуеты врагов Силуеты взрывчатки Силуеты капсулы Силуеты пауки Силуеты боссов миссий Аимбот: Супер аимбот Кость - наилучший выбор (простые враги - голова, джаггернаут - рюкзак и т.п.) Аим на турели Аим на пауков Аим на мины Аим на капсулы Аим на боссов Мемхаки: Отдача Точность Беск патроны АнтиАФК Кик с пве и спецопераций (в любой момент) Подсад в любой точке на карте Быстрый нож ПКМ, ЛКМ Без перегрева СЕД Видео: Инструкция: Запускаете игру Внедряете dll Нагибаете Активация/Деактивация хака - клавиша INSERT wfru.rar
  28. 1 балл
    Тут просто обычная функция, или метод (если ты в классе реализуешь это), вот пример где всё хранится в массивах: private int WorldToScreen() { screenCoords[0] = objCoord[0] * view_matrix[0] + objCoord[1] * view_matrix[1] + objCoord[2] * view_matrix[2] + view_matrix[3]; screenCoords[1] = objCoord[0] * view_matrix[4] + objCoord[1] * view_matrix[5] + objCoord[2] * view_matrix[6] + view_matrix[7]; screenCoords[2] = objCoord[0] * view_matrix[8] + objCoord[1] * view_matrix[9] + objCoord[2] * view_matrix[10] + view_matrix[11]; screenCoords[3] = objCoord[0] * view_matrix[12] + objCoord[1] * view_matrix[13] + objCoord[2] * view_matrix[14] + view_matrix[15]; if (screenCoords[3] < 0.1f) { return 0; } ndc[0] = screenCoords[0] / screenCoords[3]; ndc[1] = screenCoords[1] / screenCoords[3]; ndc[2] = screenCoords[2] / screenCoords[3]; strucPoint.X = Convert.ToInt32((this.Width / 2 * ndc[0]) + (ndc[0] + this.Width / 2)); strucPoint.Y = Convert.ToInt32(-(this.Height / 2 * ndc[1]) + (ndc[1] + this.Height / 2)); return 1; } А вот источник где также описаны функции WorldToScreen, только для хранения они используют поля структур или классов: https://guidedhacking.com/threads/world2screen-direct3d-and-opengl-worldtoscreen-functions.8044/ Как найти видовую матрицу от туда же: https://guidedhacking.com/threads/how-to-get-started-with-learning-viewmatrix.13663/ Но я использовал метод поиска между -1.0 и 1.0
  29. 1 балл
    Конечно видео есть, вот: Всё довольно просто, использую конвертированные в 2D координаты из 3D для рисования зелёного текста с чёрным фоном. То же самое и для Phasmophobia хочется реализовать, но как я описывал в теме, возникли некоторые трудности.
  30. 1 балл
    Плюсовать не могу, я пока не достоин этих привилегий, а так +
  31. 1 балл
    Dark Messiah of Might and Magic_v.1.2+16 Просмотр файла Dark Messiah of Might and Magic Версия игры 1.2 Репак Numeric_1 = Беск. жизнь (???) Numeric_2 = Беск. стамина Numeric_3 = Вкл. хождение сквозь стены Numeric_4 = Выкл. хождение сквозь стены Numeric_5 = Вкл. невидимость Numeric_6 = Выкл. невидимость Numeric_7 = Нет отравления Numeric_8 = Беск. зелья Numeric_9 = Беск. очки навыков = 20 Numeric_0 = Мягкое ночное зрение Numeric_/ = Беск. жизнь Леаны Numeric_* = Беск.стрелы Numeric_+ = Увеличение гравитации Numeric_- = Уменьшение гравитации Home_____= Номальная гравитация ] __________= Беск. жизнь Добавил SerVick Добавлено 11.11.2020 Категория Трейнеры для PC игр  
  32. 1 балл
    Всем спасибо, решение нашел сам. Если кому-то интересно: Я расширял стэк в своей функции и по хз какой причине на Win 10 это работало нормально, а на win 2012 Server нет. Я сделал патч на расширение стека в оригинальной функции вместо sub esp, 0c пропатчил на sub esp, 10 А в своей функции соответсвенно убрал расширение стека. И всё заработало))) больше 2х недель мучался :DDD В общем тему можно закрыть! Всем спс :)))
  33. 1 балл
    Всем привет! Родилась очередная идея, получить полный контроль над анимацией персонажа. Например, вытащить водителя автомобиля из водительского кресла и посадить его на капот, или же просто поставить его где-нибудь рядом, сделав на лице победную улыбку😉. Для удобства манипулирования частями тела и мышцами лица, сделать "онлайн мост", между памятью игры и трехмерным редактором maya 3D . Что уже есть: - Участок адресов в памяти игры с координатами и углами поворота частей тела - "Онлайн мост" Чего нет: - Понимания каким образом вращать и перемещать части тела. Тело персонажа состоит из костей, скрепленных между собою, и если сместить скажем коленную чашечку правой ноги немного выше, то нужно будет сместить и те косточки, что с нею связаны, иначе нога просто вытянется. Положение кости рассчитывается с учетом положения её родителя, у которого в свою очередь опять есть свой родитель. Рассчитать положение одного в зависимости от другого не вызывает у меня проблем. Но вот как получить иерархию, это большой вопрос. Вот такие мысли и предположения. Возможно они неверны. Если есть такие кто также двигается в этой теме, присоединяйтесь. Вместе скорее решим эту задачу. Тема контроля анимации одна из самых захватывающих для меня.
  34. 1 балл
    С самого начала ручного поиска выбрана не правильная инструкция. Почему именно fstp -108? Для ручного поиска лучше использовать инструкции, которые чаще других вызываются в момент, когда игра активна.
  35. 1 балл
    Zombie Army Trilogy Просмотр файла Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер .cpl Функции: Бессмертие Убийство с одного выстрела Без перезарядки оружия Бесконечные патроны Бесконечная взрывчатка Точность оружия Без отдачи оружия Быстрая стрельба из снайперской винтовки Без качания оптического прицела Перекрестие прицела по центру экрана Добавил LIRW Добавлено 31.10.2020 Категория Трейнеры для PC игр  
  36. 1 балл
    посмотри остальные столбцы, байты опкодов зависят от того, какие у них операнды.
  37. 1 балл
    😜 на: 8b XX XX XX XX XX 56 8b XX XX 56 e8 XX XX XX XX 8b XX 5e 5d c2 XX XX CC CC CC CC CC CC XX 🤨
  38. 1 балл
    тебе же дали ссылку, там видно как выглядят опкоды в байтах:
  39. 1 балл
    Crysis Remastered Просмотр файла Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бессмертие Бесконечная энергия Без перезарядки оружия Бесконечные патроны Без отдачи оружия Точность оружия Невидимость Бесконечный заряд прибора ноч.видения Убийство с одного выстрела Без перегрева оружия Скорострельность оружия Бесконечная взрывчатка Мощные удары руками с любого расстояния Добавил LIRW Добавлено 27.10.2020 Категория Трейнеры для PC игр  
  40. 1 балл

    Версия 1.2 CPY

    11 раз скачали

    Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бессмертие Бесконечная энергия Без перезарядки оружия Бесконечные патроны Без отдачи оружия Точность оружия Невидимость Бесконечный заряд прибора ноч.видения Убийство с одного выстрела Без перегрева оружия Скорострельность оружия Бесконечная взрывчатка Мощные удары руками с любого расстояния
  41. 1 балл

    Версия Steam --.10.2020

    9 раз скачали

    Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер .cpl Если на Rip'e и игра запускается с правами админа, то и трейнер запускаем с ними же! Функции: Бесконечная жизнь персонажа Бесконечная жизнь союзников Бесконечное топливо Нет урона авто Полиция не реагирует на нарушения (включать до нарушения) Без перезарядки оружия Бесконечные патроны Точность оружия Без отдачи оружия Заморозить время миссии В гонках всегда первый - не зависимо от того, какой приехал Бесконечные деньги Супер скорость
  42. 1 балл
    Mafia The City of Lost Heaven Просмотр файла Использование: Распаковываем файл в удобное для вас место. Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер .cpl Если на Rip'e и игра запускается с правами админа, то и трейнер запускаем с ними же! Функции: Бесконечная жизнь персонажа Бесконечная жизнь союзников Бесконечное топливо Нет урона авто Полиция не реагирует на нарушения (включать до нарушения) Без перезарядки оружия Бесконечные патроны Точность оружия Без отдачи оружия Заморозить время миссии В гонках всегда первый - не зависимо от того, какой приехал Бесконечные деньги Супер скорость Добавил LIRW Добавлено 21.10.2020 Категория Трейнеры для PC игр  
  43. 1 балл
    Попробуй сделать без call: отпишись
  44. 1 балл
    CE это очень полезный инструмент. Не стоит опираться на него как на среду разработки. Так что я скорее отвечу нет, чем да. Все будет зависеть исключительно от того какого именно бота вы планируете писать, пиксельные боты могут быть написаны на autoit при этом иметь небольшой функционал но считаться поистине самыми безопасными. Если писать бота In game то для вас открываются огромные просторы в написании ботов. Я бы сделал это как c++ core и lua sol wraper для написание сценарие через луа и передачу их в ядро чита на c++. Но для начала вам потребуется достаточно не мало изучить. Начните с простого поиска информации об игроке, позиции, рисвании линий от обьекта к обьекту на простом c++... Еще есть вариант написать external чит... Тут можно расписывать на целую книгу, этой информации полно в интернете. Есть огромная база знаний по всему миру хакинга на UC вики (не реклама). Начинаешь с простых assault cube, изучаешь простые основы а дальше пойдет попляшет)
  45. 1 балл
    Итак, начнем с самого начала Когда-то очень давно я начал играть в игру под названием Rocket League Импровизированая игра в футбол, где катаются машинки, со своей физикой и пр. Проиграв около года, все надоело и я решил посмотреть что есть у этой игры: Как оказалось апи для какой-либо статистики открытого нет (Имею ввиду то, которое поддерживается официальными разработчиками) Ну раз нет апи, решил сделать что-то элементарное, например найти структуру игррка (в данном случае машинки) На данный момент у игры нет античита, хотя он тут и не нужен вовсе Вообщем загорелся идеей, начал пытаться найти эту структуру Долгое время ковырялся, ковырялся, ничего не получалось То ли дело во мне, то ли грабли не едут Посмотрел движок игры, оказалось Unreal Engine 3 На UE3 вроде как бесполезно что-то искать руками, т.к поинтер будет с громадным количеством оффсетов и почти наверняка невалидным Посмотрел как реверсят игрушки на UE, и что-то не въехал с первого раза (даже с 5 не понял :DD) А суть была в том, что в Unreal Engine 3 можно хукнуть метод который передает все внутреигровые ф-ии которые использует в режиме реального времени Прочитал много статеек, посмотрел примеры и понял что хукают метод ProcessEvent Делают это с помощью дампа игровых классов, которые можно использовать для написания своего чита Собственно вот и дампер Тык Там уже есть заготовки для некоторые UE3, UE4 игр Нужная нам также имеется, осталось только сдампить Для дампа необходимо знать сигнатурки ProcessEvent GlobalNames GlobalObjects Собственно вот и скомпилированный дампер Сам дампер это длл которая инжектится в игру, ну а сама длл и вытягивает все нужные классы для дальнейшего написания Теперь к написанию... Создаем проект, подключаем к проекту sdk которое сгенерировалось на диске С Подключаем все нужные инклуды и пр. Точка входа для нашей длл BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: AllocConsole(); freopen("output.log", "w", stdout); printf("Dll Initialized\n"); DisableThreadLibraryCalls(hModule); CreateThread(0, 0, MainThread, hModule, 0, 0); // creates our thread break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } В длл создаем поток который будет хукать ProcessEvent и использовать внутреигровые функции DWORD WINAPI MainThread(LPVOID param) // our main thread { StartupApp(); printf("Inited\n"); ProcessEvent = (tProcessEvent)DetourFunction((BYTE*)ProcessEvent, (BYTE*)hkProcessEvent); return false; } StartupApp метод который по сигнатуркам ищет адрес GNames, GObjects bool InitializeObjectsStore() { auto address = FindPattern(GetModuleHandleW(nullptr), reinterpret_cast<const unsigned char*>(Signture), Mask); if (address == -1) { return false; } UObject::GObjects = reinterpret_cast<decltype(UObject::GObjects)>(*reinterpret_cast<uint32_t*>(address + 1)); return UObject::GObjects != nullptr; } bool InitializeNamesStore() { auto address = FindPattern(GetModuleHandleW(nullptr), reinterpret_cast<const unsigned char*>(Signture), Mask); if (address == -1) { return false; } FName::GNames = reinterpret_cast<decltype(FName::GNames)>(*reinterpret_cast<uint32_t*>(address + 2)); return FName::GNames != nullptr; } ProcessEvent это наш хук который мы будем использовать (Как происходит хук гуглим, detours lib в помощь) Теперь к основной части, наш метод hProcessEvent Не забываем указывать Typedef void __fastcall hkProcessEvent(UObject *pObject, void *edx, UFunction *pFunction, void *pParms, void *pResult); typedef void(__thiscall *tProcessEvent)(class UObject *, class UFunction *, void *, void *); tProcessEvent ProcessEvent = (tProcessEvent)FindPE(); void __fastcall hkProcessEvent(UObject *pObject, void *edx, UFunction *pFunction, void *pParms, void *pResult) { if (pFunction) { //Get Player* if (strcmp(pFunction->GetFullName().c_str(), "Function Engine.PlayerController.PlayerTick") == 0) pPlayerController = (APlayerController*)pObject; //Get Ball* if (strcmp(pFunction->GetFullName().c_str(), "Function TAGame.Ball_TA.OnRigidBodyCollision") == 0) pBall = (ABall_TA*)pObject; //Function TAGame.CarComponent_Boost_TA.EventBoostAmountChanged if (strcmp(pFunction->GetFullName().c_str(), "Function TAGame.CarComponent_Boost_TA.EventBoostAmountChanged") == 0) { Boost = ((ACarComponent_Boost_TA_EventBoostAmountChanged_Params*)(pParms))->Boost; } if (strcmp(pFunction->GetFullName().c_str(), "Function Engine.Interaction.PostRender") == 0) { Canvas = ((UInteraction_PostRender_Params*)(pParms))->Canvas; myPostRender(((UInteraction_PostRender_Params*)(pParms))->Canvas, pPlayerController, Boost); } } ProcessEvent(pObject, pFunction, pParms, pResult); } Этот метод срабатывает при каждом вызове игрой какой-нибудь ф-ии, будь то отрисовка, будь то создаение машинки или же простой выход в меню Осталось только найти нужный нам метод и путем сравнения этой ф-ии через pFunction->GetFullName() Перенаправить на наш код В данном случае я получаю Указатели на Игрока, Мяч, UCanvas (Который рисует все что возможно в игре) и эвент EventBoostAmountChanged, который срабатывает когда кто-то использует на карте буст Перейдем к методу myPostRender который при срабатывании рисует в игре количество буста у игрока и также линию от игрока к мячику void myPostRender(UCanvas* Canvas, APlayerController* player, ACarComponent_Boost_TA* boost) { //Проверка на валидность входных данных if (!Canvas || !player || player->bDeleteMe || !boost || Boost->bDeleteMe || boost == NULL) return; try { if (boost) { std::map<std::string, ACarComponent_Boost_TA*>::iterator it; //Есть ли игрок уже в map if (BoostMap.count(boost->Owner->GetFullName()) > 0) { //Обновляем игрока в map it = BoostMap.find(boost->Owner->GetFullName()); BoostMap.erase(it); BoostMap.insert(std::pair<std::string, ACarComponent_Boost_TA*>(boost->Owner->GetFullName(), boost)); } else { BoostMap.insert(std::pair<std::string, ACarComponent_Boost_TA*>(boost->Owner->GetFullName(), boost)); } } std::map<std::string, ACarComponent_Boost_TA*>::iterator i; for (i = BoostMap.begin(); i != BoostMap.end(); ++i) { //Опять проверяем на валидность if (!i->second->Owner || i->second->Owner->bDeleteMe || !i->second || i->second->bDeleteMe || i->second == NULL || i->second->Owner == NULL || !Canvas) { //Удаляем если не валиден BoostMap.erase(i); continue; } //Переводим 3D Координаты игрока через Видовую матрицу Canvas->Project в 2D FVector PlayerLoc = Canvas->Project(i->second->Owner->Location); if (i->second->Owner->GetTeamNum() == 0) //Blue Team { //Проверка на то, видем ли мы на экране точку в который нужно рисовать if (PlayerLoc.Z > 0) DrawTextToScreen(Canvas, string("Boost Amount: ") + std::to_string((int)(i->second->CurrentBoostAmount * 100)), PlayerLoc.X + 10, PlayerLoc.Y - 30, BLUE); } else { //Orange Team if (PlayerLoc.Z > 0) DrawTextToScreen(Canvas, string("Boost Amount: ") + std::to_string((int)(i->second->CurrentBoostAmount * 100)), PlayerLoc.X + 10, PlayerLoc.Y - 30, ORANGE); } } } catch(std::exception& e) { printf("Exception %s", e.what()); } } Итог: Разобраться в этом сразу конечно очень сложно, но методом проб и ошибок у вас должно получиться Ах, да, забыл показать конечный результат Вот... Отрисовку линий я убрал в коде, но там нет ничего сложного Теперь мы видим количество буста у тиммейтов и противников, что вполне неплохо Также можно придумать множество реализаций SDK
  46. 1 балл
    Нужно брать только байты опкодов (типа MOV, ADD и т.д.) все остальные байты заменять XX. И проверять после замены XX на уникальность сигнатуру, если не уникальная - удлиняешь дальше. Собственно идея такая - с написанием патчей для игр в основном меняются адреса, но также могут поменяться и регистры тоже, смотри мою ссылку на сообщение в пред.посте, а вот опкоды, т.е. логика кода скорее всего не поменяются (ну если это не основательные изменения в игре). Вот из-за этого та моя старая табличка оказалась такой долго живущей.
  47. 1 балл
    У Меня работало так: [ENABLE] luacall(speedhack_setSpeed(5)) [DISABLE] luacall(speedhack_setSpeed(1)) Я так понимаю игра 64-битная? Может из-за 64 бит косяк какой? Я пробовал только на 32-битных играх.
×
×
  • Создать...

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

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