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

Лидеры


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

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

  1. 6 баллов
    И снова, здравствуйте)) В этой части, мы с вами создадим NoRecoil hack. Здесь, я уже не буду всё разжевывать. Опирайтесь на прошлые статьи, кому что-то не понятно. Открываем дамп из прошлых частей. Поиск по строкам. Для начала, нам нужно найти IGameFramework. Вводим "Failed to create the GameFramework Interface!". Двойной клик по строке, попадаем сюда Через окно перекрестных ссылок, выходим на адрес Итак, мы нашли адрес IGameFramewrok = 0x1AF7E2C Теперь, в окне поиска строк, ищем "sp_difficulty" Двойной клик по строке. Меню перекрестных ссылок. Открываем псевдокод. Через ReClass x32 восстанавливаем классы. Переходим к написанию кода. classes.h Собираем проект. Внедряем в игру. Готово.
  2. 6 баллов
    Привет всем, кто это читает, а может даже, пытается повторить)) По просьбам некоторых злодеев с форума, дискорда и ютуба, я буду пытаться написать цикл статей, по созданию мультихака через внутренние классы, на примере игры Варфейс. А может, я не буду вас мучать и ограничимся всего 1-2 публикациями. Всё зависит от вашего интереса и моего свободного времени. Все описанные действия, могут быть реализованы в какой-то степени и в других играх, на движке CryEngine3. Итак, начнем пожалуй с самого простого, а далее будем двигаться к более сложному. Здесь не будет объяснений, что такое дизассемлер, указатели, классы, интерфейсы, смещения и прочее. Если вы не знаете, что это, то вам придется самостоятельно восполнять эти пробелы. Движок CryEngine3, сделан на основе глобальных объектов. Глобальные объекты завёрнуты в одну структуру и являются указателями на абстрактные сущности, которые инициализируются в нужный момент, в нужном месте программы. Никаких дополнительных накладных расходов, никаких лишних надстроек, контроль за типом во время компиляции. CryEngine3 представляет собой достаточно старый проект, где все интерфейсы устаканились, а новое прикручивается подобно тому, что существует на данный момент. Поэтому нет необходимости придумывать дополнительные обёртки или способы работы с глобальными объектами. SSystemGlobalEnvironment - это основной базовый класс, где хранятся указатели на "стартовые классы". Примерное описание и содержание можно посмотреть на GitHub. Т.к. мы решили начать с самого простого, то на этом этапе, мы сделаем хак, который будет убирать эффект ослепления от светошумовых гранат (антислепа / noflash). Для этого, нам понадобится класс - I3DEngine* p3DEngine; Он находится по такому пути SSystemGlobalEnvironment->I3DEngine. И вызвать метод SetPostEffectParam (ознакомиться) Итак, наша задача найти адрес базового класса SSystemGlobalEnvironment, затем указатель на I3DEngine, восстановить класс и вызывать метод SetPostEffectParam, с нужными нам параметрами. Делов то 😆 Необходимый софт: Официальный SDK движка Visual Studio 2015+ PeTools IdaPro версии 6.6+ ReClass x32 Блокнот, notepad++, sublimetext и т.п.(на выбор) Калькулятор Продолжение следует...
  3. 5 баллов
    Необходимые инструменты чтобы начать искать и делать стелс деньги: OpenIV, IDA, Cheat Engine и конечно же GTA с доступом к онлайну. Так же, если вы все собираетесь проделывать на основном аккаунте, то советую после всех манипуляций удалить персонажа и создать нового, так очищается список транзакций(но это не точно). Для начала нам необходимо зайти в одиночный режим, чтобы найти инструкции работающие с деньгами. Это нам необходимо для того, чтобы не искать деньги в онлайне, в любом случае там найти мы их не сможем. Дальше, переходим в онлайн и так же переходим в дизассемблер. Нам необходимо узнать как рассчитывается rdx. Ставим бряк на инструкцию mov rdx, [r8+rax*8] и в регистре rdx видим 00007FF739F26820, перейдем на этот адрес в IDA. Да это же массив с указателями на скрытые структуры, нам необходимо найти единственную работающую с деньгами, я думаю вы сами справитесь с этим, поэтому, как только мы нашли структуру связанную с деньгами высчитаем её индекс, он нам пригодится во время эмуляции транзакции. (00007FF739F268A0 - 00007FF739F26820) / 8 = 0x10 Теперь, нам придется восстановить смещения, проблема в том, что эта структура работает только с миссиями, ну что ж пойдем работать, но сначала необходимо найти начало структуры внутри указателя на структуру денег, для этого ещё немного по реверсим, зная адрес начала структуры поставим на инструкцию которую нашли до этого бряк с условием. И идем выполнять миссию, главное получить деньги, поэтому советую выбрать одиночную миссию т.к. во время бряка с условием у вас будет фпс около 3-4 кадров(на моем компуктере миссия в 5 минут растянулась на 2 часа и пришлось перепроходить т.к. бряк не сработал, ага победитель по жизни.). Так что вас ожидает боль и страдания, но как только найдем начало нашей структуры, выставляем сравнение структур с блокировкой текущего состояния структуры и снова идем проходить миссию(в этот раз все будет на много лучше, обещаю) После прохождения миссии, снова смотрим в эту структуру, получаем вот такие значения, это и есть смещения работающие с транзакцией. #1 000000000000004A * 8 = 1 (offset 0x250 ) //активатор транзакциии #2 0000000000000000 * 8 = 5 (offset 0x00 ) //5 счет банка, 4 наличка #3 0000000000000001 * 8 = 3587 (offset 0x08 ) //сумма #4 0000000000000002 * 8 = 1 (offset 0x10 ) //активатор #5 0000000000000003 * 8 = BC537E0D (offset 0x18 ) //хеш #6 0000000000000004 * 8 = 00000000 (offset 0x20 ) //сервисный хеш #7 0000000000000006 * 8 = 57DE404E (offset 0x30 ) //хеш #8 0000000000000007 * 8 = 00000000 (offset 0x38 ) //хеш типа действий #9 0000000000000047 * 8 = 4 (offset 0x238 ) //?? #10 0000000000000048 * 8 = 7 (offset 0x240 ) //?? #11 000000000000000A * 8 = -1 (offset 0x50 ) //?? #12 0000000000000028 * 8 = 0 (offset 0x140 ) //?? #13 0000000000000049 * 8 = 0 (offset 0x248 ) //?? #14 000000000000004B * 8 = 0 (offset 0x258 ) //?? #15 000000000000004F * 8 = 0 (offset 0x278 ) //?? Теперь нам необходимо найти новые хеши вместо нулей, для этого запускаем OpenIV и ищем файл с названием networkshop, и подставляем все хеши из блоков actiontype и services по нашим смещениям, actiontype задает тип транзакции т.е. добавить, отнять деньги и т.д, services задает от кого мы получили деньги, от R*, с гонок, со ставок и т.д. Комбинаций много, но что делать, халява это дело времязатратное, тем самым перебирая хеши выстраиваем порядок выполнения транзакции, но иногда хеши фиксят, чтобы не допустить распространение читов. BC537E0D 57DE404E Эти 2 хеша предустановлены их можно найти в коде тем самым определив и функции работающие с транзакциями. Самое время начать писать код и тестировать. Хеши не рабочие в этом примере кода, чтобы любителям ничего не делать, пришлось пошевелиться.😉 //активация транзакции DWORD64 activate = 0x1; //установка хешей валидации транзакции WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x60), &activate, sizeof(activate), 0); DWORD64 value = 0xBC537E0D; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x68), &value, sizeof(value), 0); //установка суммы транзакции int amount = 10000000; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x58), &amount, sizeof(amount), 0); //установка хешей действий и откого будем получать деньги value = 0x762D6BF6; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x70), &value, sizeof(value), 0); value = 0x3B6B7024; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x88), &value, sizeof(value), 0); value = 0x57DE404E; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x80), &value, sizeof(value), 0); //установка для того чтобы транзакция не зависла в ходе выполнения по разным причинам value = 0x7FFFFFFF; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x50), &value, sizeof(value), 0); value = 0x07; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x290), &value, sizeof(value), 0); //куда будем давать деньги 4 наличка, 5 счет банка value = 0x04; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x288), &value, sizeof(value), 0); value = 0x01; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x2a0), &value, sizeof(value), 0); //деактивация транзакции value = 0; WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x78), &value, sizeof(value), 0); WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x298), &value, sizeof(value), 0); WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x2a8), &value, sizeof(value), 0); WriteProcessMemory(hProcess, reinterpret_cast<PBYTE*>(buf + 0x2c8), &value, sizeof(value), 0); Инструкции работающие со значениями в функции. Ну и результаты, так же я испытываю новый метод поиска подобного функционала, если все пройдет удачно, то скоро будет новая статья, в разы проще этой и быстрее. Ну, что вы молодцы, если дочитали до сюда, можете взять печеньку.
  4. 5 баллов
    Итак, мы вооружились всеми нужными инструментами и поверхностным пониманием того, что будем делать. Теперь, можно приступать к самому интересному 👀 В этой части, перед нами стоит задача найти SSystemGlobalEnvironment и I3DEngine. Сразу скажу, что буду разжевывать максимально подробно, дабы избежать лишних вопросов (а как сдампить, а как открыть перекрестные ссылки и т.п.). Поэтому, не обижайтесь на меня, профи этого дела, кому это покажется слишком "жидким"😆 Запускаем игру, открываем PeTools и делаем полный дамп Далее, запускаем IDAPRO и выбираем "новый проект" Открываем наш дамп игры. Выбираем IDAPRO, предложит указать расположение 3 библиотек. Выбираем место установки игры и нажимаем ОК. Дождёмся, пока IDA проанализирует файл. Вы услышите звуковый сигнал, по окончании. Также, можно будет видеть надпись "idle" (в простое). После окончания анализа, открываем список всех строк. Через меню View или нажав Shift+F12. Жмем Ctrl+F и вводим " ai_CompatibilityMode " Двойной клик по строке и оказываемся тут Выделяем строку и жмем X, в открывшемся окне перекрестных ссылок, нажимаем ОК Оказываемся тут dword_18C23DC это и есть адрес нашего SSystemGlobalEnvironment = 0x18C23DC. Можете переименовать сразу (выделив и нажав N), можете оставить так. Кому как удобнее. Самое главное мы нашли. Теперь нам нужно найти I3DEngine и SetPostEffectParam. Повторяем шаги с поиском SSystemGlobalEnvironment , только теперь вводим "Dof_Active" в строке поиска. Нашли, выделили, перешли в окно перекрестных ссылок, выбираем первую и жмем ОК. Попадаем сюда Выделяем, жмем F5, для перехода к псевдокоду. Видим такую запись. Выделяем смещение '+136', жмем ПКМ, переводим в HEX. И получаем SSystemGlobalEnvironment + 0x88 это и есть смещение до I3DEngine В итоге имеем: SSystemGlobalEnvironment = 0x18C23DC SSystemGlobalEnvironment + 0x88 = I3DEngine Продолжение следует...
  5. 4 балла
    Рекомендации 1. Медленный условный брейкпоинт 2. Медленное определение адресов на инструкции
  6. 4 балла

    Версия 4427 Codex

    19 раз скачали

    Использование: Скаченный архив распаковываем в любое удобное для вас место. Запускаем игру, запускаем трейнер от имени администратора в главном меню игры или в уже начатой игре. Клавиши в трейнере парные - зажимаем insert и в En алфавитном порядке функции. Функции Трейнера: 1) Бесконечная жизнь. 2) Убийство с одного выстрела - убивает всех. 3) Нет урона автомобилю. 4) Быстрое убийство вражеского авто. 5) Бесконечные очки. - Поднять надо какое либо количество. 6) Много репутации. 7) Без перегрева пулеметов. 8. Супер счет убийств. 9) Супер скорость персонажа. 10) Точность оружия. 11) Без отдачи оружия. 12) Без перезарядки оружия. 13) Бесконечные патроны. 14) Бесконечные гранаты. 15) Заморозка времени - пока в бете. 16) Сброс поиска персонажа (врагами). Demo:
  7. 4 балла
    Хехей для начала мне лень писать статью с картинками и прочим, кто поймет, тот молодец, а кто нет, значит не особо нужно. Ну в общем я когда-то показывал что можно сделать с динамической типизацией, а точнее с классами, так что мы будем использовать код сканера сигнатур, немного переписав его чтобы сканировать всю память компьютера, чтобы дампить все предметы которые используют выбранный нами класс. Для начала подготовим базу, берем свой сканер сигнатур, либо из паблика. Теперь нам необходимо изменить код который указывает диапазон по которому мы будем брать страницы виртуальной памяти. Он выглядит примерно так: while(offset < size) { VirtualQueryEx ... Для того, чтобы получить минимальный и максимальный адрес памяти будем использовать GetSystemInfo. SYSTEM_INFO si; GetSystemInfo(&si); auto seg_base = si.lpMinimumApplicationAddress; while (seg_base <= si.lpMaximumApplicationAddress) { if (VirtualQueryEx(hProcess, reinterpret_cast<DWORD64*>(seg_base), &mbi, sizeof(MEMORY_BASIC_INFORMATION))) ... Необходимо отфильтровать страницы, чтобы уменьшить время поиска значений и работы программы, для этого добавляем такую проверку. if ((mbi.State == MEM_COMMIT) && (!(mbi.Protect & PAGE_GUARD)) || (!(mbi.Protect & PAGE_NOACCESS))) Теперь в цикле будем считывать адреса с шагом в 4 байта каждой оставшейся страницы памяти. for (auto i = 0; i < mbi.RegionSize; i+=4) { ... ReadProcessMemory(hProcess, reinterpret_cast<PBYTE*>(base + i), &wrBuff, sizeof(wrBuff), nullptr); Настало время для проверки значений, это можно сделать с помощью memcmp и загрузить результат в контейнер для удобного хранения. Выглядит это примерно так. Из минусов такой способ относительно долгий, повысить скорость работы можно за счет многопоточности. А из плюсов это дает нам возможность забить на поиски структур хранящих список вещей, списки оружия или же игроков. Т.е. нам достаточно сгенерировать сигнатуру указывающую на нужный нам класс, чтобы находить адреса всех структур, которые используют выбранный нами класс. Сделать ESP, Radar Hack или просто взломать список вещей в инвентаре не прикладывая усилий, вот что я люблю.
  8. 4 балла
    Здесь. Step 1 Скрипты: "Step 1 v.1" "Step 1 v.2" "Step 1 v.3" Видео: Табличка: // табличку перенес ниже.
  9. 3 балла
    Плагин ведет историю поиска, отсева, отмены. Логи выглядят следующим образом Для чего может применятся На шаге отсева посмотреть в логах, какое значение искали до этого и какой способ поиска использовали. При неудачных поисках мы просматриваем как и что мы сканировали раньше. Если вообще ничего не получается при сканировании, то логами можно обмениваться. Горячие клавиши, которые настраиваются из окна настроек CE работают и в логах. Установка: скопировать GHL_log.lua в директорию "/autorun" Lua скрипт: В комментариях можно написать про ошибки или про идеи улучшения плагина.
  10. 3 балла
    Сегодня у нас будет прелюдия перед основной статьей, так что желательно быть готовым ко всему. Поехали. Скрытые структуры, что они из себя представляют? Скрытая структура это какая-то структура находящаяся в любой части используемой кодом структурой(назовем её мега-структурой), обычно мега-структуры огромных размеров(не зря же мы её так назвали) и содержат в себе по 10-100 скрытых структур, в ГТА например она занимает около 105кб. Как вообще игра находит скрытые структуры? Да, как и везде адрес мега-структуры + index * 0x8 для 64 битных приложений. А теперь поговорим о том как они работают, по сути скрытые структуры просто принимают в себя значения, а в коде это выглядит как обычная функция примерно так. Если по простому, то скрытые структуры можно представить как обработчики значений, которые работают постоянно, но как только определенное смещение будет равно определенному значению, то что-то случится. Одна из проблем при использовании таких структур им необходимо подавать все переменные в определенном порядке, например, если мы не активируем транзакцию, то и значение передаваемое не будет обработано, оно будет просто пропущено. Находить такие структуры обычным поиском практически не реально, значения попадающие в неё перезаписываются нулями через 10-20 мс в среднем. Поэтому нам и необходим реверс-инжиниринг. Еще одна проблема конкретно для гта, это расширение функционала структуры, а именно получение рабочих хешей, скажем так, хеши нужны для того чтобы транзакция считалась валидной для определенного количества денег, например для значений денег от 100к до 1 миллиона будет один хеш, для того чтобы получить от 1 миллиона до 10 миллионов нужен другой, но об этом расскажу в следующей статье. Думаю, пока информации хватит, если возникнут вопросы по таким структурам, то пишите в комментариях.
  11. 3 балла
    Пока выложу видео т.к. я доволен проделанной работой и рад результату, как только пофиксят используемый метод для добавления денег, так напишу статью о том как находить скрытые структуры, как работать с ними и что это вообще такое. Во-второй версии добавил возможность отнимать деньги.
  12. 3 балла

    Версия 0.98a

    349 раз скачали

    Использование: Скаченный архив распаковываем в любое удобное для вас место. Сначала запускаем игру, а в меню игры или в уже начатой игре, запускаем сам трейнер. Клавиши в трейнере парные - зажимаем insert и в En алфавитном порядке функции. Функции Трейнера: 1) Бесконечная жизнь. 2) Бесконечная выносливость. 3) Бесконечные деньги. Надо что то продать или купить на существующую сумму. 4) Точность оружия. 5) Без отдачи оружия. 6) Оружие не ломается - функция захватывает и бронежилет. 7) Бесконечные патроны. Которые висят в слотах на персонаже. 8. Увеличенный бег - примерно в 4 раза. 9) Увеличенный прыжок. 10) Нет урона при падении с высоты после прыжка. 11) Мгновенное расстояние полета пули до цели. 12) Неограниченная дальность выстрела. 13) Максимальный переносимый вес около 90 млн тонн. 14) Убийство с одного выстрела - любого персонажа в игре. 15) Без перезарядки оружия. demo:
  13. 3 балла

    Версия Steam 25.06.2018

    0 раз скачали

    Бессмертие. Бесконечная броня. Бесконечные патроны. Супер прыжок. PS: Все функции работают по принципу "без вычитания из существующего значения".
  14. 2 балла
    Всем привет. Не могу сделать скрипт c фильтром на бессмертие для игры far cry 3 И теперь по порядку 1 Нашел адрес здоровья для себя и врага 2 Нашел инструкцию которая отнимает здоровье 3 Нашел текущее здоровье [0010] и максимальное [0014] 4 Нашел отличие 5 Начал писать скрипт 6 Сама проблема (Скрипт работает мое здоровье целое а врага уходит но убавляется до нуля и не умирает) 7 (Эта инструкция работает со здоровьем, выносливостью и воздухом под водой) Прошу помогите я уйму времени угробил на это, уже не могу.
  15. 2 балла
    Тогда проще поставить бряк на адрес в esi movss [esi+10],xmm0 Выбрать читающую с 1 адресом и на ней сделать здоровье. к примеру. newmem: movss xmm0,[ecx+xxxx] - оно наверное в +8 лежит или +14 movss [ecx+10],xmm0 <--------- xmm там выберишь пустой.. code: mov eax,[ecx] mov ebx,[eax+xxxx] А кислород с выносливостью затереть вычитание.. Так делал, что в четвертой, что в пятой части. На жизнь просто не прикольно искать каждое вычитание из него.
  16. 2 балла
    Завершение уровней Первый: Второй: Третий:
  17. 1 балл
    Продолжаем создавать наш noflash хак. В этой части, мы восстановим классы и напишем код. Открываем Reclass x32 и создаем новый класс. Далее, переименовываем название класса в SSystemGlobalEnvironment. Сейчас наш класс очень мал. Нарастите класс до смещения 0x90, используя панель модификации. Переходим на смещение 0x88, жмем по зеленой стрелке, выбираем тип - Указатель. Переименовываем указатель в p3DEngine. Ниже строчкой, переименовываем класс в I3DEngine. Спускаемся еще на строчку ниже. Создаём виртуальную таблицу, указав тип VTable. Открываем и видим, что функций всего 9, а нам нужно 143. Смещение 572 / 4 т.к. 32 битный процесс. Если бы был 64 битный, то делили бы на 8. 143 это и есть наша функция SetPostEffectParam() Наращиваем количество функций, как делали с классом. Переходим на 143 функцию, двойной клик, вписываем саму функцию. И очищаем лишнее в классе. Далее жмем "генерировать" класс. Получаем готовый код класса, копируем в удобное место. Открываем Visual Studio, создаем пустой проект, тип проекта "Библиотека DLL". Добавляем исходный файл main.cpp и заголовочный файл classes.h . В main.cpp подключаем #include <windows.h> #include "classes.h" Прописываем нашу функцию void no_flash(){ SSystemGlobalEnvironment* pEnv = (SSystemGlobalEnvironment*)(*(DWORD*)(0x18C23DC)); while (true){ if (!pEnv)continue; I3DEngine* p3DEngine = pEnv->p3DEngine; if (!p3DEngine)continue; p3DEngine->SetPostEffectParam("Flashbang_Time", 0, true); } } В точке входа пишем CreateThread(0, 0, (LPTHREAD_START_ROUTINE)no_flash, 0, 0, 0); Открываем файл classes.h и вставляем туда сгенерированный код из ReClass. В итоге файл classes.h будет выглядеть вот так Собираем проект. Внедряем в игру. Готово.
  18. 1 балл
    Пошаговая отладка в 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 файла игры и определяем по нему версию Unity. Например, "Версия продукта 5.5.0.3120186" или версия "файла 5.50.39994" может указывать на версию Unity 5.5. 4. Определяем разрядность приложения через Process Explorer 5. Т.к. версия Unity 5.5 и приложение 32 разрядное, то открываем Unity-debugging-win32.zip ищем там версию Unity и заменяем mono.dll в директории игры 6. Запускаем игру и dnSpy x86 (игра 32 разрядная поэтому x86). Открываем файл "\...\Managed\Assembly-CSharp.dll" Запускаем отладку нажав F5 или кноgку Play 7. Настраиваем соединение и жмем ок 8. Ставим брейкпоинты, смотрим перемененные, перемещаемся по коду, пишем свой код и так далее 9. После изменения кода, нужно перезаписать модуль предварительно сохранив его О других способах подключения пошаговой отладки есть на английском руководство. ---------------------- Как работать в пошаговой отладке Работать можно почти также как и в Cheat Engine в пошаговой отладке или в среде разработки программ. Начать стоит с обзора названия пространств имен, названия классов, методов и полей, Названия могут подсказать логическую связь с читом, который хотим сделать. Стоит обратить внимание на такие названия как "IsPlayer, Player, Character, CharacterController, MainCharacter, Health, Inventory, Craft" и другие. Чтобы не искать вручную можно задействовать поиск сборкам. Поиск стандартного тега "Player" в виде в строки кода (в Unity выше версии 5.0) или свойства "IsPlayer" может помочь найти игрока или отличить от чужих. Важно представлять иерархию игровых объектов, которую мы не видим в dnSpy. Программист работая в Unity видит это окошко много лет и эту иерархию всегда представляет смотря на скрипты в dnSpy Скрипты наследники от MonoBehavior могут находиться на игровом объекте и могут работать как с ним так и с другими объектами. Получается такая штука, что игровой объект всегда имеет Transform компонент с полями позиций, углами и scale. Классы Transform и GameObject самые основные. Методами этих классов можно разместить объект в мире, создать или удалить его. В идеале удалив объект со сцены не должно быть никаких ошибок связанных с пустыми ссылками, потерей объекта. Также и клонировав объект, тоже не должно быть ошибок. Но не всегда так просто отспавнить игровой объект. Если это сделать методами UnityEngine, то другие классы ничего не будут знать о появлении игрового объекта. Нужно ставить брейкпоинт в функции Start или Awake в классе и трейсить по Shift+11 чтобы выйти на функцию разработчиков спавна этого GameObject. Функции Start или Awake (в классе наследника от MonoBehavior) срабатывают один раз при включении скрипта и инициализации. По ним можно выйти на строку кода, которая создает объекты в мире. Отдельно стоит сказать про количество скриптов. Практически в любой игре, которая мне попадалась в dnSpy много скриптов или очень много. Иногда и не будет понятных названий у типов (из-за обфускации). В любом случае при пошаговой отладке можно найти требующиеся участки кода для создания чита и использовать их по другой логике. Основные приемы В Update можно обновлять параметры только своего игрока. Например, в Character классе сделать сравнения в Update по IsPlayer свойству (если оно там есть) и у тебя за каждый кадр рендеринга будет максимум характеристик. В Update с классом Input можно считывать хоткеи. В Start и Awake можно подгружать свои ассеты с внутриигровым user interface. Код скриптов перед загрузкой ассетов должен быть внедрен через dnSpy Иерархию игровых объектов и инспектор, если очень нужно, то можно отрисовать в user interface. Обычно не требуется. (поищите по форуму в игрострое) В заключении Пока нет времени делать трейнер или таблицу на CE для включения опций в играх Unity. Для меня пока подходит способ через перезапись модуля в dnSpy вручную. Вместо трейнера можно сделать программу патчер, который будет проверять версию игры и перезаписывать модуль с возможностью вернуть оригинальный модуль
  19. 1 балл
    А зачем тут setInterval? document.addEventListener('DOMContentLoaded', function(){ var vm_button = document.querySelector("a.yt-uix-button.yt-masthead-picker-button.yt-masthead-picker-button-primary.yt-uix-sessionlink.yt-uix-button-default.yt-uix-button-size-default"); if(vm_button && vm_button.href.includes("dashboard")) { vm_button.href = "/my_videos?ar=1&o=U"; } }); И все. При каждой загрузке страницы ссылка будет подменяться единожды. Ни к чему функцию с интервалом гонять, я полагаю.
  20. 1 балл

    Версия v 2.2

    69 раз скачали

    Использование: Скаченный архив распаковываем в любое удобное для вас место. Запускаем игру, запускаем трейнер.(Запускать с правами администратора) Клавиши в трейнере парные, зажимаем Insert и остальное указано уже на панели трейнера. Функции Трейнера: 1) Бесконечная Жизнь. 2) Бесконечная Выносливость. 3) Бесконечный Бронежилет. 4) Бесконечная Прочность Оружия. 5) Супер точность. 6) Без Отдачи Оружия. 7) Нет Радиации. 8) Нет Урона от Падений. 9) Супер Бег (Сделал до максимально возможного, далее запинается). 10) Супер Прыжок. 11) Возможно летать при прыжке. 12) Супер нож. 13) Сброс Поиска - если включить с функцией Ghost mode - то выйдет 100% не видимость. 14) Бесконечные деньги. - Что не будь продать надо. 15) Бесконечный Противогаз. 16) Без Голода. 17) Бесконечный Вес. 18) Без перезарядки оружия. 19) Бесконечные патроны. 20) Не видимость - враги вас не видят, но слышат. 21) (Запасная функция Без перезарядки оружия) PS: Последняя функция, она сделана для того, что если 18) работать не будет, а там поинтер стоит, что бы отделить врага. Так вот если он по каким то причинам работать перестанет, то включаем последнюю функцую. Она прямая без всего. Но стрелять уже будут все - без этой самой перезарядки. Обновлять более не буду.. Если только под заказ Demo:
  21. 1 балл
  22. 1 балл

    Версия 1.3

    41 раз скачали

    Бессмертие. Бесконечные патроны. Без перезарядки оружия. Без отдачи оружия. Максимальная точность. Нет качания прицела. Не видимость. Бесконечная выносливость. PS: Это как бы Бета версия - посже гляди и обновлю и добавлю новые функции. Пока просто не когда ковыряться особо. Тут же обновлять буду файл - по мере настроения для этой игры Demo:
  23. 1 балл
  24. 1 балл
    Когда ещё начинал писать первую статью по использованию RTTI хотел приложить эту статью, которую когда-то увидел на black hat, но как обычно бывает потерял её с переездом на vivaldi, очень круто все расписано включая внутреннее устройство этих таблиц, что очень полезно для начинающего реверсера. bh-dc-07-Sabanal_Yason-WP.pdf Ах, да, статья на английском.
  25. 1 балл
    Сегодня взломал ещё 6 ромов на NES. Чит-коды в шиты. Battletoads Вечные жизни.Начать игру с 5 жизнями.Вечное время порталов.Скачать взломанную игру Battletoads Battletoads & Double Dragon: The Ultimate Team Вечные жизни.Выбор уровней + 5 жизней.Скачать взломанную игру Battletoads & Double Dragon: The Ultimate Team Darkwing Duck Бессмертие.Вечные жизни.Вечные оружия.Вечное время бонуса.Начать игру с 99 жизнями.Начать игру с 9999999 очками.Начать игру с 99 секундами в бонусе.Фикс - увеличено время мигания героя в 2 раза.Скачать взломанную игру Darkwing Duck Duck Tales 2 Бессмертие.Вечные жизни.Не терять заработанные деньги.Драгоценные камни не исчезают.Драгоценные камни высоко подлетают.Начать игру со всеми навыками.Начать игру с 5 здоровьем.Начать игру с 9 жизнями.Скачать взломанную игру Duck Tales 2 Shatterhand Бессмертие. Вечные жизни. Вечные деньги. Вечный дрон. Вечный дрон-костюм. Монетки не исчезают. Начать игру с 9 жизнями.Скачать взломанную игру Shatterhand Super C Бессмертие.Вечные жизни.Начать игру с 99 жизнями. Давать всегда при проигрыше оружие S+R. Скачать взломанную игру Super C
×

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

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