На нашем форуме вы можете получить приватный чит для игры Euro Truck Simulator 2. Подробности по ссылке ниже:
Тема с читом на Euro Truck Simulator 2

Лидеры


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

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

  1. 14 баллов
    Всем привет. Сегодня я расскажу о том, как создавать нужный автомобиль с помощью CE в GTA Vice City. Как и говорил partoftheworlD, это очень просто, но раз возникают вопросы, я решил написать небольшой гайд. Собственно, выйти на функции создания автомобилей очень просто - в игре есть читы, которые позволяют "вызывать" себе танк, катафалк и другие автомобили. Поэтому выйдя на функцию обработки чита - мы найдем функции для создания автомобиля. Приступим. Для начала вспомним несколько читов для создания автомобилей. Я выбрал чит-код создания катафалка - THELASTRIDE , но так же можно использовать наш любимый чит создания танка - PANZER. Собственно ввод кодов - это операция по сохранению текущего введенного символа в строку и последующая проверка получившейся строки на соответствие. Каждый введенный символ записывается как в стек, поэтому в реальности эти читы выглядят как REZNAP и EDIRTSALEHT. Но если поискать данный текст, мы его не найдем. Как же так спросите вы? На самом деле функция обработки чит-кодов срабатывает на вводе последней буквы, поэтому проще всего просто искать часть введенного кода. Выйдем в меню игры, введем чит-код THELASTRIDE и попробуем поискать подстроку TSALEHT (не забываем переворачивать чит-код) в игре: Ура, мы нашли текст по адресу 00A0F94F. Не будем его запоминать, он нам не пригодится, а сразу посмотрим, что же творится в памяти. Нажмем на адрес правой кнопкой мыши и выбираем Browse this memory Region. В памяти сразу поднимемся на пару строк вверх, обычно строки длиннее чем мы искали: Ура, видим часть введенного нами кода. Так же могут присутствовать и другие куски текста, например на скришоте я немного побегал перед вводом чит-кода. Теперь мы видим, что в реальности строка ввода чит-кода больше чем мы ожидали, а её начало находится там, где присутсвуют первые символы DW DIRTSAL, т.е. по адресу 00A0F94A. Добавим этот адрес в табличку (размер строки вычислен эмпирическим путем - посчитал не нулевые байты): Теперь если в игре мы побегаем или введем другие чит-коды, увидим как они укладываются в памяти. Посмотрим же, что использует этот буфер - попросим CE найти всех, кто использует данный адрес при вводе чит-кода Сначала жмем ПКМ на адресе в главном окне CE и выбираем Find out what accesses this address: Теперь переключимся в игру и введем любое слово, например HELLOGHL. Этим мы отсеим инструкции, которые используют наш адрес при обычном вводе. В окне появились следующие инструкции, мы будем их игнорировать: Теперь введем чит-код на создание автомобиля - THELASTRIDE. Внимательно следим за окном с инструкциями, т.к. в процессе ввода у меня появились еще несколько инструкций, которые используют адрес, но не влияют на появление машины. После ввода последней буквы видим следующую картину: Уже можно заметить несколько функций, выполняющихся один раз. Для того, чтобы отсеять лишние инструкции, попробуем ввести другой чит-код, не относящийся к созданию автомобилей, например LEAVEMEALONE: Ура, из предыдущих инструкций у нас осталось одна - инструкция mov byte ptr [00A0F94A] по адресу 004AC84A. Давайте выделим её и нажмем Show disassembler, чтобы увидеть, где она выполняется: Собственно мы видим некое условие, после которого в наш буфер записывает 0x20, он же 32 он же пробел и вызывается некая функция gta-vc.exe+AE7C0 с аргументом AC. Заочно можно нас поздравить, потому что мы нашли нужную нам функцию, осталось только убедиться в этом. Попробуйте тем же способом найти чит-функцию для создания танка. Я её уже нашел, давайте посмотрим: Видно, что функция находится немного в другом месте, но отличие состоит только в том, какой аргумент передается в функцию - push записывает в стек A2 , вместо AC. В остальном код условия идентичен и я предлагаю попробовать просто вызывать функцию gta-vc.exe+AE7C0 с разными параметрами. Для вызова функции мы будем использовать AutoAssembe и функцию createthread. Зайдем в AutoAssembler (откроем Memory Viewer, меню Tools - AutoAssemble) и набросаем следующий скрипт: Добавим его в таблицу через File - Assign to current cheat table и можно закрывать окно Auto assemble. Скрипт выделяет в памяти игры 64 байта для себя, после чего записывает туда инструкции, которые мы скопировали из оригинальной игры и просит createthread выполнить их. Обратите внимание, что аргументы в данную функцию передаются как push AC. В оригинальной игре после call мы можем заметить инструкцию pop ecx. Это значит, что функция не трогает стек и мы сам должны двигать его за ним (т.е. откатить push AC). Поэтому после функции выполняется pop и мы обязательно должны его скопировать, иначе ret будет пытаться вернуть поток не куда-то по адресу 0xAA123456, а по адресу 0x000000AC. Почему pop использует ecx? В данном случае - потому что левая пятка компилятора так решила и это ни на что не влияет (ecx спокойно можно заменить на eax и другие регистры). Ура, скрипт в нашей таблице, давайте же активируем его! Смотрим на результат и...: Наш скрипт вызвал чит-функцию создания катафалка! Наверное вы уже догадались, что если мы заменим push AC на push A2 мы увидим заспаунившися танк? Получается, что AC - это катафалк, а A2 - танк. Поискав GTA Vice City Vehicle IDs, мы найдем, что действительно, A2 = 162 - это Vehicle ID танка, а AC = 172 - катафалк. Попробуем указать свой ID, один из списка, например 168 (такси). Передача аргумента превратится в push #168: Можно сказать, что наш скрипт работает! Осталось вынести ID модели как переменную: Я удалил из скрипта функцию вызова потока, чтобы переместить её в отдельный скрипт: Теперь можно добавить в таблицу адрес our_vehicle_id, в который после записи скрипта будет записано число 206 (ID наикрутейшего Sabre Turbo). Это число отвечает за то, что мы передаем в чит-функцию и меня его мы будем менять ID заспаунившегося автомобиля: Результат: И о проблемах Скрипт фактически вызывает чит-код, поэтому мы начинаем слыть читерами, рейтинг в игре уменьшается и т.д. Это довольно легко обходится, т.к. если мы провалимся в функцию gta-vc.exe+AE7C0, перед самым ret есть две инструкции - add [gta-vc.exe+5B4F94],000003E8 и mov byte ptr [gta-vc.exe+60FB37],01 . Первая накидывает очки читерства (они хранятся отдельно) и устанавливает флаг - "этот парень использовал коды". Если их занопить - игра никогда не узнает о ваших проделках. И вновь, потому что мы просто вызываем функцию чит-кода, она спаунит машины только на дорогу. Она находит ближайшую RoadPoint, прибавляет по оси Z несколько метров и спаунит авто. Поэтому создать авто прямо перед игроком так просто не получится. Ну и основная проблема - это то, что в данной функции использует конструктор только для автомобилей. Он так же используется для вертолетов, но вот байки и лодки с ним заспаунить не получится (заспаунится, но крешится при посадке и выглядит, кхм...): О том, как обойти эти проблемы и вызывать уже конструкторы классов мы узнаем в следующем уроке С видеоформатом гайдов мне сложно работать (довольно тяжело как смотреть, так и записывать их), поэтому уроки в текстовом формате.
  2. 11 баллов
    @Garik66 спросил - как использовать createthread, чтобы он не крашился. Начал отвечать и это слегка вышло за рамки простого ответа в тему, поэтому решил выделить это в отдельный топик. Я не очень хорошо знаю assembler, но попробую описать возможные причины. createthread создает поток и просит его выполнить call с адресом переданной функции. Например в данном случае createthread(my_function) в отдельном потоке выполнит call my_function: И тут вступает в дело стек, да. Вот эта штука (в Memory View вызывается через ПКМ на правом нижнем окне и выборе пункта Full stack): После выполнения call my_function мы попадаем в нашу функцию, а в стек записывается адрес, куда нужно вернуться после выполнения этой функции (my_function). Собственно за возврат куда нужно и отвечает ret. Он берет первую запись из стека и делает jmp в правильное место. Собственно сам адрес возврата виден в стеке на скриншоте - это KERNEL32.BaseThreadInitThunk+24. Без ret ассемблер вывалится за пределы функции и попытается выполнить команду - add [eax],al , хотя для нас это просто участок пустой памяти - 00 00. Ну а так как в EAX ничего приличного нет, то программа выдает ошибку - сорян, не могу записать в данный участок памяти и падает. Поэтому ret обязателен. Из этого вытекает то, что при подходе к ret в последней записи в стеке (адрес в регистр ESP) должна быть с правильным адресом возврата, который был нам передан из call my_function. И основная причина крашей в том, что регистр ESP указывает не на тот адрес при выполнении команды ret. Программа выполняет jmp на неизвестный нам адрес и крешится из-за невозможности выполнить команды, на которые она попала (как с add [eax],al). А что собственно двигает стек и адрес регистра ESP? А двигают стек наши любимые команды push и pop. Собственно, когда мы пытаемся вызывать функцию и передаем параметры через push #100, на самом деле выполняются две команды - sub esp,4 и mov [esp],#100. Первая уменьшает адрес вершины стека на 4 байта, а вторая записывает на вершину стека значение 100. А pop eax сдвигает вершину в другую сторону - делает mov eax, [esp] и дальше сдвигает вершину стека назад add esp,4. Поэтому после того, как мы сдвинули стек с помощью push при передаче параметров в функцию - после её выполнения нужно сдвинуть стек обратно! Собственно следующий пример почти 100% скрешится: Мы ввели новую функцию second_function, которая берет переданный аргумент и записывает его в EAX. Вроде бы всё просто, передали в функцию 100, получили в EAX ответ, а всё равно креш. Почему? А это видно на следующем скриншоте - на вершине стека теперь хранится значение 0x64 (=100): Теперь когда выполнится ret он попытается прыгнуть на адрес 0x00000064, а не на 0x760E8744 как должен был. Как же этого избежать? Есть несколько путей: сохраняем значение регистра esp и возвращаем его перед ret внимательно следим за стеком по мере выполнения нашей функции и к концу программы он сам будет в правильном месте В целом первый способ очень неплох. Мы можем сохранить адрес регистра esp в памяти и вернуть его прямо перед вызовом ret. Например: Но это не совсем assembler-way, поэтому я предпочитаю следить за стеком самостоятельно. Для этого нужно обращать внимание на то, как со стеком работает вызываемая функция. Например, наша функция second_function не следит за стеком. Поэтому если мы делаем push для передачи параметров, то мы так же должны сдвинуть его назад. Это можно сделать через pop указав неиспользуемый регистр или просто добавить к адресу ESP 4 байта (размер адреса в 32 битной системе, в 64-битной - это 8 байт): Собственно таким образом мы двигаем стек за функцией. И в зависимости от количества переданных push - на такое же количество нужно сдвинуть и регистр ESP. Например для 3-х аргументов нужно выполнить 3 pop или добавить к esp 3 * 4 (3 - количество сдвигов, 4 - размер инструкции): В результате мы получим следующий код: Единственное, есть небольшое исключение - функции, которые сами заботятся о стеке, после их вызова не нужно сдвигать регистр esp, просто делаем push и call. Их довольно просто отличить, посмотрим на примере следующего кода: Основное отличие - после call функции которая сама двигает стек не идет ни каких add esp,8 или не выполняются pop: Так же можно обратить внимание на код самой функции, а точнее на ret 8. Параметр 8 указывает программе, что нужно не просто взять адрес из вершины стека и прыгнуть на него, а так же после этого сдвинуть стек на 8 байт, т.е. выполнить ret и add esp,8. Собственно и получается, что add делаем не мы, а сама функция. Вот и получается, что следя за стеком и тем, как вызываемые функции заботятся о стеке - мы не получим крашей в вызове createthread.
  3. 9 баллов
    Здравствуйте! Я записал видео уроки, по программированию и созданию трейнера на Lua (Cheat Engine), после чего решил поделиться с вами и выложить их на данный форум. Впрочем вот и сами видео уроки: Видео урок 1: В данном видео уроке мы разбираем работу со статическими адресами. Видео урок 2: В данном видео уроке мы научимся работать с AAScript (Cheat Enigne). Видео урок 3: В данном видео уроке, разбираем такую тему как GUI, научимся добавлять контролы, так же научимся работать с ними. Понимаем что такое Main Lua, и учимся с ним работать. Видео урок 4: В данном видео уроке мы учимся ставить BreakPoint и получать значение регистров. После чего учимся создавать хоткеи, создавать таймер, замораживать значения. Видео урок 5: Используем наши знания и пишем трейнер для игры Left 4 Dead 2. В конечном результате работаем с функцией которая взаимодействует с жизнями, обрабатываем ее, и делаем нас бессмертными. (AAScript). Исходники трейнеров выкладываются под видео в описании. Спасибо.
  4. 9 баллов
    Данная статья расскажет вам о создании чит-опции под названием «„Blink“ Teleport», которая позволяет телепортировать игрока в указанную точку, используя для её выбора какой-то объект (прицел, курсор, или что-то иное, что может указать место для телепортации). Этот чит является разновидностью всеми известной опции «Teleport» и его создание практически ничем от него не отличается, за исключением нескольких моментов. Примеры скриптов телепорта на форуме есть, а вот статьи на русском языке нету. Поэтому, сначала нужно рассказать о нём. Часть 1: «Teleport» Данный чит предназначен для быстрого перемещения игрового объекта (игрока) по заранее сохранённым или известным координатам. К примеру, вы взяли у НПС квест, который выполняется в другой части карты. Долго-долго шли, выполнили его и теперь нужно снова долго-долго возвращаться обратно для его сдачи. Чтобы сократить время бесполезного перемещения, умными геймхакерами была придумана опция «Teleport». Мы сохраняем координаты нахождения игрока около НПС и когда нужно, мы изменяем текущие координаты игрока на сохранённые, тем самым мгновенно перемещается к НПС. Стоит заметить, что данная опция предназначена для перемещения персонажа в игровом пространстве в играх с открытым миром или в пределах одного игрового уровня. Я не стану описывать трехмерную систему координат или строение игровых уровней. Для создания этих опций, как ни странно, знать это совершенно не обязательно (Но не ленитесь, поищите в гугле, там много информации на эту тему и это знание будет полезным). Нужно просто уметь находить хотя бы одну из координат. Все дальнейшие действия (в 99% случаев) сводятся к тому, что вы будете просто изменять инструкцию, её адрес, смещения и регистры в готовом шаблоне скрипта. Первой игрой для примера будет Tomb Rider 2013. Для начала нам нужно найти одну из координат игрока. Какую именно искать – решать вам. Лично я советую искать координату по оси Z (т.е. высоту), т.к. в большинстве игр, если мы спускаемся вниз, то значение координаты по оси Z уменьшается, если поднимаемся, то увеличивается. В случае же с X и Y, мы первоначально не знаем расположение игрока, относительно направления этих осей, поэтому мы можем идти вперёд и искать увеличивающееся значение, а на самом деле мы идём назад и значение координаты уменьшается. Итак, мы запустили игру и нашли подходящее место, где мы можем спускаться и подниматься. Ищем «Неизвестное значение» (Float), спускаемся и отсеиваем «Уменьшилось», поднимаемся и отсеиваем «Увеличилось» и так до тех пор, пока не найдем нужный нам адрес. Часто бывает так, что у нас остаётся много адресов, которые уменьшаются и увеличиваются вместе с нужным нам адресом или вообще имеют такое же значение. Что и произошло в данной игре. Добавляем их всех в таблицу, какую-то часть замораживаем и пытаемся прыгнуть в игре, если нам удалось это сделать, то это не те адреса. Размораживаем и удаляем их. И так, пока не найдем нужный адрес. Мы нашли адрес со значением координаты по оси Z. «02С7С7D8» (у вас он будет другим). Теперь ставим на него «Брейкпоинт на Доступ», всплывает много инструкций. Нам нужно выбрать подходящую инструкцию и убедиться, что она работает только с координатами игрока. Я выбрал «011E5D24 – 8B 50 08 – mov edx,[eax+08]». Нажимаем на неё правой кнопкой мыши и во всплывшем меню выбираем «Проверить адресам, к которым получают доступ выбранные инструкции (макс. 8)» Появляется окно. В нём отображается только 1 адрес, наш адрес. Отлично! (Желательно делать подобную проверку рядом с другими динамическими объектами – противниками, автомобилями и т.д. просто я первоначально знал, что данная инструкция верна) Теперь можно выделить этот адрес и нажать комбинацию клавиш «Ctrl+R» и там скопировать адрес напротив нужного регистра или вернуться в предыдущее окно, выделить нашу инструкцию и нажать на кнопку «Доп. Информация» Копируем адрес после «Предполагаемое значение указателя:». У меня это 02C7C7D0, и он является началом структуры, в которой расположены координаты игрока. Переходим в «Анализ данных/структур» и исследуем найденную структуру, содержащую координаты игрока Практически всегда все 3 координаты по осям X,Y,Z находятся рядом друг с другом. Отыскиваем уже найденную Z Добавляем в таблицу адреса находящиеся рядом с Z, замораживаем их по очереди и смотрим, можем ли мы перемещаться в какую-либо сторону, если нет, значит мы нашли ещё какую-то из координат. Отлично, адреса по смещению 0, 4, 8 и есть адреса с нашими координатами. Переходим к написанию скрипта. Мы написали скрипт, добавили его в таблицу. Теперь туда же нужно добавить флаги «_saveCoords» и «_loadCoords» И когда нам нужно сохранить или загрузить координаты, мы просто меняем значение одного из этих адресов на 1 (можно вручную, а можно установить Хоткей). Вот, в принципе, и всё. Это самый простой скрипт телепорта, его можно сделать и более навороченным, но наша главная цель – «„Blink“ Teleport», для которого этого будет достаточно. Часть 2: «„Blink“ Teleport» А что, если нам нужно переместиться в место, где мы ещё не были? В опции «Teleport» мы сначала сохраняли координаты нашего объекта, а уже потом заменяли его текущие координаты на сохранённые. А вот в «„Blink“ Teleport» всё тоже самое, только мы заменяем текущие координаты нашего объекта на текущие координаты другого объекта. А какой объект, помимо игрока, мы ещё можем перемещать? Прицелом! Во многих играх (не во всех, а значит и эту опцию реализовать именно так не всегда получится) прицел задаёт траекторию движения пуль. Грубо говоря, прицел показывает вон туда, после выстрела там должна быть дырка. Координаты этого «вон туда» мы и должны попытаться найти. Опять вам нужно начать поиск «Неизвестного значения», изменять расположение прицела и отсеивать «Увеличилось»/«Уменьшилось». Можно встать у ровной стены и, перемещая прицел вверх/вниз, искать координату по оси Z, как в случае с игроком, но я стал искать координату по оси Y, т.к. можно поставить прицел как можно ближе к ногам игрока, текущие координаты которого нам известны, и начать с поиска «Диапазона», что значительно уменьшит число ложных адресов. Далее можно продолжать отсеивать «Увеличилось»/«Уменьшилось». В общем, любым удобным методом находим одну из координат прицела. Далее, повторяя те же действия, что мы делали в первой части статьи, мы находим инструкцию, начало структуры и смещение адресов с координатами в ней. И изменяем наш скрипт телепорта В нём всё тоже самое, только скрипт уже работает с двумя разными инструкциями. В «_save:» теперь происходит сохранение не координат игрока, а прицела. Флаг «_saveCoords» уже нам не нужен (Но его можно поставить, если вы хотите данный телепорт не сразу). В «_load:» всё осталось без изменений. Активируем скрипт, прицеливаемся в выбранную точку, меняем значение флага «_loadCoords» на 1 и вуаля. Но не всегда бывает всё так гладко с нахождением координат. К примеру возьмём игру «Санитары Подземелий» (1 и 2 части). Получать координаты для телепортации мы будем из курсора, точнее из зелёного кружочка, который указывает конечную точку перемещения Хартмана. Если мы расположим его в том же месте, где стоит Хартман, то увидим, что координаты по оси X и Y равны, а вот по Z отличаются (координаты курсора) (координаты игрока) Высота расположения курсора ниже на 3, чем у Хартмана. Если в первой части игры это никак не отображалось на телепортации, то во второй Хартман проваливался под землю. Следовательно в скрипте пришлось делать небольшую поправку, а именно уменьшать значение координаты курсора по оси Z на 3 Это лишний раз говорит о том, что не всегда может быть точно так же, как и в статье. Стоит так же отметить, что сейчас существует много игр с якобы открытым миром, где при обычном прохождении ничего не замечаешь, а на самом деле там всё строго заскриптовано. И, если перепрыгнуть заскриптованную сцену при помощи данного чита, то могут появиться различные глюки, вплоть до невозможности пройти дальше. Удачи! © SER[G]ANT 2013
  5. 8 баллов
    Смотри: 1. Узнаем ID скрипта из таблицы! Для этого делаем: Заходим в CE открываем окно "Memory view" там нажимаем "CTLR + L" Открывается окно "Lua Engine" туда вставляем этот скрипт -> Жмем "Execute" далее просто активируем скрипт и получаем: -> NAME СКРИПТА -> ID СКРИПТА -> INDEX СКРИПТА Запоминаем ID допустим 29 ВИДЕО: 2. Открываем окно где будем писать скрипт для этого жмем "CTRL+ALT+L" или жмем "Table -> Show Cheat Table Lua Script" Там начинаем писать скрипт: ВИДЕО: 3. Теперь нужно сгенерировать чит: Сначала мы сохраним нашу форму жмем в CE "Table -> Наша форма -> Edit" открывается окно редактирования формы там жмем "File -> Save" сохраняем форму и удаляем ее. Теперь идем в "File -> Generate generic trainer lua script from table". Там откроется дефолтная форма в окне "Trainer generator" жмем кнопку "Design userinterface manually" далее нужно заменить эту форму нашей. В окне редактирования формы жмем уже "File -> Load" и выбираем нашу сохраненную форму. Далее активируем наш LUA скрипт ( если это уже было сделано то не активируем ) "CTRL+ALT+L" или жмем "Table -> Show Cheat Table Lua Script". Далее уже в окне "Trainer generator" в строке "Processname" пишем название нашего процесса ( допустим game.exe ). Снимаем галочку с "User can resize window" ( чтоб конечный пользователь на мог изменить размер окна ). Выбираем иконку "Set Icon". В "Output" не забываем выбрать "EXE" и жмем "Generate trainer" и выбираем куда сохранить. Далее открывается еще одно окно в нем указываем опять же иконку так же выбираем процесс ( если игра x64 то ставим x64 ну и наоборот ). Так же выбираем "Gigantic" в "Trainer size" и жмем "Generate" и все! Видео:
  6. 8 баллов
    Записал видео со спавном машин рядом с игроком. Получилось ужасно долго, тихо и в конце похоже пропал звук. Я решил всё равно выложить, я вряд ли смогу переснять, но если получится исправить - исправлю ссылку на видео. Плюс если что есть текстовая статья - можно выложить её (но она как и видео - огромна). В видео мы узнаем какие функции вызываются при создании автомобиля через чит-коды и набросаем небольшой скрипт, который будет создавать требуемый автомобиль перед игроком: Итоговый скрипт:
  7. 8 баллов
    Выполнял этот запрос - Assassin’s Creed Chronicles: India и решил написать заодно небольшую статейку для новичков. Статья будет короткой, пояснения внутри скриптов, работа скриптов показана на видео. Поиск самих значений таймера в этой статье не рассматривается. По поискам значений есть много статей и видео. Варианты решения задачи с таймером (какой вариант использовать и где, решать Вам). 1. Заморозка таймера. 1.1. С помощь опкода NOP пример скрипт "Timer Mission Freeze v. Nop": 1.2.* С помощью опкода DEC пример скрипт "Timer Mission Freeze v. dec " 2. Обнуление таймера при достижении определённого значения пример скрипт "Timer Mission v. Adding a limit to the timer": 3. Замедление таймера 3.1. Вариант с добавлением дополнительного внутрискриптового таймера: пример скрипт "Timer Mission v. timer slowdown v. Adding a timer inside the script": * - вариант скрипта может приводить в некоторых играх к вылету, в конце в видео я это показал. В этом случае нужно выяснять из-за чего происходит вылет (для данной игры я не делал этого). Но что-то подобное происходило у меня при написании скрипта на патроны для Fallout 3 и там я решил проблемы с вылетами и объяснил почему происходил вылет, если появиться желание можете почитать в той теме - Видео: Ну и сама табличка со скриптами и уже назначенными адресами: PS: Табличку выложил ниже.
  8. 8 баллов
    Меню на Insert. Для активации запустите FarCryCheater.exe. Либо можно вручную заинжектировать FarCryCheater.dll в игру. Примечание: инжектировать в оконном режиме! После можно развернуть на весь экран. Функции 1)Crosshair - прицел 2)Infinity Health - бесконечное здоровье 3)Infinity Armor - бесконечная броня 4)Infinity Ammo - бесконечные патроны 5)Infinity Stamina - игрок не устаёт (бесконечное "дыхание") 6)Infinity Grenades - бесконечные гранаты Управление в меню: Стрелочки вверх\вниз - сменить подсвечиваемую функцию Стрелочки влево\вправо - включить\выключить (On - включено\Off - выключено) Так же можно передвигать меню зажав клавишу Ctrl и нажав на стрелочки, либо зажав Ctrl и нажать и удерживать ЛКМ, затем двигать мышку. Меню потащится вслед. http://rghost.ru/8b869bWgw
  9. 7 баллов
    Скрипт: Видео: Таблица: DARKSOULS_03062017.CT
  10. 7 баллов

    Версия 7.1

    588 раз скачали

    Установка: Скопировать содержимое архива в корневую папку Cheat Engine
  11. 7 баллов
    Euro Truck Simulator 2 Просмотреть файл [ ONLY x64 ] Использование: Скаченный архив распаковываем в любое удобное для вас место. Запускаем игру, потом запускаем трейнер и жмем клавиши интересующих опций. Функции. 1] > Бесконечное топливо. 2] > Супер тормоза. 3] > Супер движок. 4] > Бесконечные деньги. 5] > Легендарный уровень. 6] > Ускорение. 7] > Нет урона авто и грузу. PS: Работает на 2 версии игры и на ATS и на ETS2 Автор LIRW Добавлен 21.01.2017 Категория Трейнеры для PC игр 28.02.2018 English version below Attention (Внимание): Трейнер для мультиплеера более недоступен для распространения бесплатно или для покупки. Но вы можете пожертвовать небольшую сумму для поддержания форума и мы не сможем удержаться, чтобы не подарить вам его. Дополнение от 28.02.2018 Краткая инструкция по получению трейнера. Перед тем, как вы внесете пожертвование каким-либо из перечисленных ниже способов, необходимо сделать следующее: 1. Скачать файл generateID.zip 2. Запустить его. 3. Полученный текст из его поля ввода ввести в комментарий к пожертвованию вместе с остальной информацией, указанной ниже. ВНИМАНИЕ, если вы забудете его ввести трейнер у вас работать не будет. Дополнение от 04.03.2018: В связи с проблемами у некоторых пользователей добавлю следующее: Генератор из предыдущего дополнения (generateID.zip) нужно запускать именно на том компьютере, на котором вы собиратесь играть в игру и использовать трейнер. Дополнение от 17.03.2018: Если с трейнером возникает какая-то проблема, не нужно одновременно писать о ней везде, где только получится. Пишите в личку @Xipho ИЛИ @LIRW (но не обоим сразу!). Дополнение от 10.01.2019: В связи с повсеместным повышением цен на услугу провайдеров, у нас меняются минимальные размеры пожертвований. Чтобы поддержать форум вы можете использовать нашу форму доната. Для этого вам нужно перейти по ссылке: Сделать пожертвование Через эту форму вы можете внести сумму Банковской картой или кошельком Яндекс.Денег. Если вам недоступны Яндекс.Деньги, вы можете воспользоваться QIWI-кошельком через копилку: https://qiwi.me/gamehacklab-ets2 Дополнительно есть возможность воспользоваться PayPal: https://paypal.me/RuslanIskhakov Внимание, когда делаете пожертвование через PayPal, оплачивайте комиссию самостоятельно. Впредь, если сумма доната не дотягивает до указанной ниже, она будет округляться в меньшую сторону Сам чит мы дарим только через ЛС на форуме, в течении некоторого времени после получения пожертвования. Мы будем очень рады следующим суммам (для российских пользователей): 250р - дарим чит с обновлениями на месяц; 1200р - дарим чит с обновлениями на полгода (экономия 300р); 2500р - дарим чит с обновления на год (экономия 700р). Суммы обусловлены тем, что из-за некоторых читеров администраторы игры решили закрыть всевозможные дыры, и нам приходится искать новые пути. PS. При заполнении полей будьте внимательны. Трейнер будет отправлен в личку на тот никнейм, который будет указан в реквизитах оплаты. PPS. Функция NoClip из трейнера выпилена раз и навсегда. Активация: Включаем игру, и когда появились на карте, запускаем чит. Появится логотип протектора, нажимаем клавишу ОК и появляется меню чита. Приятной игры! EN: Hello. We neither sell, nor giveaway this trainer anymore. But you can support our forum with small donation and after that we can thanks you by trainer UPDATE (Feb 28, 2018) DO NOT PAY SO FAST. You must do a few steps right before donation: 1. Download generateID.zip 2. Unpack and run it. 3. Send us the text (from a text field in the application) with comment for donation. ATTENTION, the trainer won't work if you forget to send us the text from the application. Update (Mar 04, 2018): Attention: ID generator must be run on PC used for ETS2 gaming. Update (Mar 17, 2018): If you have any problems with trainer please don't write about it everywhere! Only send PM to @Xipho OR @LIRW (NOT! both) Update (Jan 10, 2019? We have changed donations amount. For support our forum you can use our donation form. You can find it here: Make donation You can use this for to support with Bank Card or Yandex.Money wallet (rubles only). If you can't pay through Yandex.Money, you can use QIWI-wallet: https://qiwi.me/gamehacklab-ets2 Also you can use PayPal: https://paypal.me/RuslanIskhakov When donating through PayPal pay commission fee (tax) by yourself and donation must be in russian roubles (check conversion rate at google. Ex: 10 euro in roubles). Remember, donation amount we receive have to be exact one of shown below. If the amount of the donation is less than specified below, it will be rounded downwards without refund the difference. Trainer will be sent through forum's PM within some time after donation. We are really happy to see next amount of donations (for non Russian users): 12 € - new version with free trainer update for one month. 65 € - new trainer version with half a year free updates period (saves 7€) 120 € - new trianer version with one year free updates period (saves 24€) *IMPORTANT: You have to pay in ruble equivalent! PS. Carefully fill in fields on payment form, trainer will be sent by PM to user with nickname provided with payment. PPS. NoClip function was removed from trainer completely and will not be available anymore. Activation: Start only the game, then during game play (on the road) start the trainer. You will see the logo of software protection, just press the OK button and you will see the cheat menu. Have a nice game! generateID.zip
  12. 7 баллов
    Решил так же для новичков описать взлом игр Sega Mega Drive/Genesis... 1: Скачиваем эмулятор отсюда Gens v2.11 и какую нибудь игру. Например гонку: Top Gear 2. 2: Запускаем эмулятор с игрой, начинаем играть и видим 6 полосок нитро. 3: Жмём на кнопку "F10" на своей клавиатуре. Появится окно "Поиск адресов". Советую выбирать так: "Искать > Неизвестное значение" "Искать > 2-Байта" "Отсеивание > Уменьшилось" "Тип поиска > Не равный" 4: Жмём на кнопку "Искать" и жмём на кнопку "Да". Тратим в игре одну нитро. 5: Снова жмём на кнопку "F10" и жмём на кнопку "Отсеять" и так проделываем пока не останется один адрес (Лично у меня остался вот такой адрес FF1B9E). 6: Выделяем этот адрес и жмём на кнопку "Сохранить" появится маленькое окно с названием "Чит-код". В поле "Значение" вводим 1536, ну а в "Название" пишем например: Вечное нитро, и жмём на кнопку "Да", далее переходим в игру и тратим нитры, если адрес правильный, то они не будут уменьшаться. Поздравляю! Вы нашли адрес отвечающий за нитро. Что бы открыть меню чит-кодов нажмите кнопку "F9". Что бы включить чит-код, нужно выделить его в списке и нажать на кнопку "Да" Есть два варианта ввода чит-кодов: A) Game Genie - ABCD-EFGH В) Адресные коды - 012345:3210 А можно пойти дальше...создать Game Genie код или вшить чит-код в игру! Это нужно что бы на всех эмуляторов этот чит-код работал. И так у нас есть адрес нитро - FF1B9E, жмём на кнопку "F11" появится окно "Отладчик М68000". В самом верху слева ставим галочку на "Установить брякпоинт", тут же вводим адрес нитро FF1B9E, ставим справа галочку на "Запись" и жмём на кнопку "Да". В игре тратим одну нитро и тут же должен сработать отладчик (Появиться), в листе справа в самом вверху будет отображаться наш адрес, код и инструкция, которая уменьшает нитро в игре. Адрес Код Инструкция 00E0C8 532C02D4 SUBQ.B #1,$02D4(A4) Скачиваем с интернета утилиту Game Genie Converter, выбираем консоль и вводим туда: 00E0C8:4E75 и получаем вот такой R1TA-A60J Game Genie код. Далее вводим его в окно чит-кодов и проверяем в игре на уменьшения нитро. Пояснение: Код я выделил красным, который нам нужно заменить 4E75 - Этот код перекрывает дальнейшие коды (Инструкция - RTS). Есть и ещё коды которые могут понадобится такого типа, если код 4E75 не помог или глючит: 6002, 6004, 6006, 6008, 600A, 600E, 6010, 6012, 601E, 6022, 6026 и 4E71 Что бы вшить чит-код в игру, скачиваем с интернета любой HEX-Редактор. Открываем с помощью HEX-Редактора образ игры Top Gear 2 (U) [!].gen Далее переходим к смещению (Offset) 00E0C8 и заменяем в строке код 532С на 4E75 и жмём сохранить файл. Вот и всё. Всем удачи! Решил поделится игрушками которые я взломал. Чит-коды в шиты: The Adventures of Batman & Robin Бессмертие. Вечные жизни. Нет перезарядки оружия. Начать игру с 9 жизнями. Начать игру с 99 кредитами. Начать игру с максимальным оружием. Скачать Robocop Versus The Terminator Бессмертие. Вечные жизни. Начать игру с 99 жизнями. Включён турбо-режим. Выбор оружия (В игре нажмите "Вниз+А+В+С"). Проваливаться сквозь пол (В игре нажмите "Вниз+С"). Режим отладки (В режиме паузы нажмите "А") Пропуск уровня (В режиме паузы нажмите "В") В игре появляются женщины (В режиме паузы нажмите "С") P.S - Оружие меняйте лучше в прыжке. Скачать Disney's Aladdin Бессмертие. Вечные жизни. Вечные яблоки. Вечные кристаллы. Начать игру с 9 жизнями. Начать игру с 99 яблоками. Начать игру с 99 кристаллами. Начать игру с 999999 очками. Скачать Doom Troopers: The Mutant Chronicles Бессмертие. Вечные жизни. Вечные оружия. Вечное время. Не терять оружия. При взятии оружия, добавляются 999 единиц. Предметы не исчезают. Скачать Batman Returns Бессмертие. Вечные жизни. Вечные оружия. Вечно парировать. Начать игру с 9 жизнями. Начать игру с максимальным парированием. Начать игру с 99 единицами оружием. Скачать Contra Hard Corps Бессмертие. Вечные жизни. Вечные бомбы. Не терять оружия. У Fang оружие "D" без перезарядки. Начать игру с 99 жизнями. Начать игру со всеми оружием. Выбор уровней. Фикс - отключена защита для патча. Скачать Boogerman: A Pick and Flick Adventure Бессмертие. Вечные жизни. Вечные сопли и слюни. Вечные отрыжки и пердёшь + огненные. Вечные пердополёты. Не терять банку слюней. Не терять красный перец. Начать игру с 99 жизнями. Начать игру с банкой слюней. Начать игру с красным перцем. Скачать Comix Zone Бессмертие. Вечные жизни у крысы. Выбор уровней (Зайдите в "Options > Jekebox" с 1 по 6 цифры). Скачать Battletech Бессмертие. Вечные жизни. Вечные оружия. Вечное время. Начать игру с 9 жизнями. Начать игру с полным вооружением. Скачать Jungle Strike Бессмертие. Вечные жизни. Вечное горючие. Вечные оружия. Продвинутая лебёдка. Можно уничтожать объекты миссии. Открыты все пилоты. Начать игру с полной амуницией. Фикс - отключена защита для патча. Скачать Sunset Riders Бессмертие. Вечные жизни. Не терять оружие. Фикс - можно выбрать очень сложный режим игры в "Options". Фикс - можно увеличить в настройках до 7 жизней в "Options". Фикс - отключена защита для патча. Скачать Top Gear 2 Вечное N2O. Вечное активное нитро. Вечные деньги. Нет урона машине. Начать игру с 9 нитрами. Фикс - отключена защита для патча. Скачать Blades of Vengeance Бессмертие. Вечные жизни. Вечный инвентарь. Вечный магазин. Быстрая максимальная атака из арбалета (Нажмите "Вверх+В). Начать игру с 9 жизнями. Фикс - отключена защита для патча. Скачать Spider-Man vs The Kingpin Бессмертие. Вечная паутина. Вечная плёнка. Вечное время. Mary Jane не опускается в огонь. Скачать TMNT: The Hyperstone Heist Бессмертие. Вечные жизни. Начать игру с 99 жизнями. Начать игру с 99 продолжениями. Фикс - В опциях можно увелить жизни до 9. Фикс - В опциях можно увелить продолжения до 9. Фикс - отключена защита для патча. Скачать Dune: The Battle for Arrakis Бессмертие. Вечные деньги. Карта всегда открыта (Нужно ещё фиксировать). Фикс - отключена защита для патча. Скачать Battletoads & Double Dragon: The Ultimate Team Вечные жизни. Начать игру с 5 жизнями. Скачать Battletoads Вечные жизни. Вечное время порталов. Скачать Urban Strike Бессмертие. Вечные жизни. Вечное горючие. Вечные оружия. Вечное время. Продвинутая лебёдка. Можно уничтожать объекты миссии. Открыты все пилоты. Начать игру с полной амуницией. Фикс - отключена защита для патча. Скачать Shinobi 3: Return of the Ninja Master Бессмертие. Вечные жизни. Вечные ножи. Вечная магия. Начать игру с 9 жизнями. Начать игру с 200 ножами. Начать игру с 9 магиями. Скачать Judge Dredd Бессмертие. Вечные жизни. Вечные полёты. Вечные оружия. Начать игру с 9 жизнями. Начать игру со всем оружием. Скачать Pirates! Gold Вечное золото. Вечная еда. Нет урона в дуэли. Не терять команду в дуэли. Не терять команду в море. Нет урона кораблю. Нет перезарядки пушек. Не терять пушки. Фикс - отключена защита для патча. Скачать The Jungle Book Бессмертие. Вечные жизни. Вечные оружия. Вечное время. Начать игру с 9 жизнями. Скачать Skeleton Krew Бессмертие. Вечные жизни. Вечные продолжения. Яростная стрельба. Начать игру с 9 жизнями. Скачать Robocop 3 Бессмертие. Вечные жизни. Вечное время. Вечные оружия. Начать игру с 9 жизнями. Начать игру с 9 продолжениями. Начать игру со всем оружием. Начать игру с максимальным оружием в режиме полёта. Фикс - можно увеличить в настройках до 9 жизней в "Options". Фикс - можно увеличить в настройках до 9 продолжений в "Options". Фикс - отключена защита для патча. Скачать Side Pocket Вечные шары. Начать игру с 16 шарами. Фикс - отключена защита для патча. Скачать AAAHH!!! Real Monsters Бессмертие. Вечные жизни. Вечный мусор. Вечный страх. Начать игру с 9 жизнями. Начать игру с 99 мусором. Начать игру с 9 страхами. Скачать Rambo 3 Бессмертие. Вечные жизни. Вечные стрелы. Вечные бомбы. Быстрая загрузка стрелы. Начать игру с 9 жизнями. Начать игру с 99 стрелами. Начать игру с 99 бомбами. Фикс - отключена защита для патча. Скачать Rolo to the Rescue Бессмертие. Вечные жизни. Начать игру с 99 жизнями. Фикс - отключена защита для патча. Скачать Tiny Toon Adventures Бессмертие. Начать игру с 5 сердечками. Начать игру с 99 жизнями. Фикс - прозрачность увеличена в 2 раза при уроне. Фикс - отключена защита для патча. Скачать Demolition Man Бессмертие. Вечные жизни. Вечный дробовик и магнум. Вечные гранаты. Предметы в игре не исчезают. Начать игру с 99 жизнями. Начать игру с дробовиком. Начать игру с гранатами. Выбор уровней в меню "Options". Скачать Pitfall: The Mayan Adventure Бессмертие. Вечные жизни. Вечные оружия. Быстрая раскрутка броска мешков. Начать игру с 9 жизнями. Начать игру с 99 единицами оружия. Выбор уровней в главном меню (Нажмите верх или вниз). Скачать Earth Worm Jim Бессмертие. Вечные жизни. Вечные патроны. Вечные плазмы. Вечный энергетический барьер. Вечный кислород. Нет урона батискафу. Начать игру с 9 жизнями. Режим отладки (В режиме паузы нажмите 8 раз "А"). Режим обзора... (В режиме паузы нажмите 8 раз "В"). Дать 9 плазменных выстрелов (В режиме паузы нажмите 8 раз "С"). Скачать Earth Worm Jim 2 Бессмертие. Вечные жизни. Вечные оружия. Вечные щенки. Вечный реактивный движок. Вечное время. Начать игру с 9 жизнями. Начать игру с 99 секундами. Режим отладки (В режиме паузы нажмите 8 раз "А"). Режим обзора... (В режиме паузы нажмите 8 раз "В"). Дать 3 само-наводящие (В режиме паузы нажмите 8 раз "С"). Скачать Jurassic Park: The Lost World Бессмертие. Вечные жизни. Вечные оружия. Вечные брелки. Вечное время. Начать игру с 9 жизнями. Начать игру со всем оружием. Начать игру с 6 брилками. Начать игру с красным охотником. Фикс - отключена защита для патча. Скачать The Lion King Бессмертие. Вечные жизни. Вечный рёв. Вечная отрыжка у Пумбы. Вечное время у Тимона. Увеличено прозрачность в 2 раза при уроне. Начать игру с полным здоровьем. Начать игру с полным рёвом. Начать игру с 9 жизнями. Начать игру с 99 секундами у Тимона. Скачать Sonic The Hedgehog Бессмертие. Вечные жизни. Вечное время. Вечный кислород. Выбор уровней. Включён режим редактора. Начать игру с 99 жизнями. Фикс - отключена защита для патча. Скачать Sonic The Hedgehog 2 Бессмертие. Вечные жизни. Вечное время. Вечный кислород. Выбор уровней. Включён режим редактора. Соберите 50 колец, что бы превратиться в супер-ежа. В режиме супер-ежа, кольца не расходуются. Не терять кольца в бонусных уровнях. Начать игру с 99 жизнями. Фикс - отключена защита для патча. Скачать Thunder Force 2 Бессмертие. Вечные жизни. Все оружия. Начать игру с 99 жизнями. Фикс - в настройках можно ставить больше жизней. Фикс - отключена защита для патча. Скачать Thunder Force 3 Бессмертие. Вечные жизни. Все оружия. Начать игру с 99 жизнями. Фикс - отключена защита для патча. Скачать Thunder Force 4 Бессмертие. Вечные жизни. Все оружия. Начать игру с 99 жизнями. Фикс - отключена защита для патча. P.S - есть баги и зависания. Скачать X-Perts Чтобы восстановить жизни и патроны нажмите на кнопку "MODE" Скачать Warlock Бессмертие. Вечные предметы. Не терять предметы. Начать игру с максимальной магией. Скачать Chase H.Q.2 Вечное нитро. Вечное время. Всегда максимальное нитро. Начать игру с 6 нитро. Начать игру с 99 секундами. Скачать Gargoyles Бессмертие. Вечные жизни. Бросать огненные шары. В игре удерживайте "A+B+C" и направление, чтобы летать. Начать игру с 10 жизнями. Скачать Sonic The Hedgehog 3 Бессмертие. Вечные жизни. Вечное время. Вечный кислород. Включён режим редактора. В главном меню включен "Sound Test" Соберите 50 колец, что бы превратиться в супер-ежа. В режиме супер-ежа, кольца не расходуются. Начать игру с 99 жизнями. Скачать The Ooze Вечные плевки. Яростные плевки. Вечные жизни. Начать игру с 9 жизнями. Выбор уровней в меню "Options" зажмите "А" и нажмите "START". Скачать Splatterhouse 3 Бессмертие. Вечные жизни. Вечная сила. Вечное время. Начать игру с полной силой. Начать игру с 99 жизнями. Скачать Sonic 3D Blast Бессмертие. Вечные жизни. Выбор уровней. Начать игру с 9 жизнями. Скачать Vectorman 2 Бессмертие. Вечные жизни. Вечные оружия. Вечное время. Вечные ускорительные прыжки. Выбор уровней и тест звука (Ставим игру на паузу и нажмите "А"). Сменить оружие (Ставим игру на паузу и нажмите "В"). Превратиться в курсор (Ставим игру на паузу и нажмите "С"). Начать игру с 10 здоровьем. Начать игру с 99 жизнями. Начать игру с 99 временем. Фикс - увеличено время мигания героя в 2-3 раза при уроне. Скачать Vectorman Бессмертие. Вечные жизни. Вечные оружия. Вечное время. Выбор уровней, оружия и жизней (В меню "Options" нажмите "B"). Превратиться в курсор (В режиме паузы нажмите "А"). Перейти в "Options" (В режиме паузы нажмите "B"). Координаты (В режиме паузы нажмите "С"). Начать игру с 10 здоровьем. Начать игру с 99 жизнями. Начать игру с 99:99 временем. Скачать Batman Forever Бессмертие. Вечные жизни. Вечное время. Все оружия. Выбор уровней и прочее... (В главном меню нажмите 6 раз "А"). Убить всех врагов (В режиме паузы нажмите "В"). Вернуться в главное меню (В режиме паузы нажмите "С"). Начать игру с 99 жизнями. Начать игру с 99:99 временем. Скачать HellFire Бессмертие. Вечные жизни. Вечное супер-оружие. Включён режим сложности "Yea Right" Начать игру с максимум оружием (Есть не большой баг, необходимо взять одну "P"). Начать игру с максимум супер-оружием (Необходим один выстрел). Начать игру с максимальной скоростью перемещения. Начать игру с щитом. Начать игру с помощником. Начать игру с 99 жизнями. Скачать James Bond 007: The Duel Бессмертие. Вечные жизни. Вечные патроны. Вечные обоймы. Вечные гранаты. Вечное время. Начать игру с 9 жизнями. Начать игру с 9 здоровьем. Начать игру с 9 обоймами. Начать игру с 9 гранатами. Скачать
  13. 7 баллов
    FreeCam - свободная камера, подразумевает возможность полёта камеры отдельно от объекта/персонажа и тому подобного, используется в самых разных целях, для обнаружения противников, для создания красивых снимков, для нахождения секретов и тому подобного. Принцип создания: Всё зависит от типа игры. Если реализован поворот камеры мышью - то данную функцию делать не нужно. Для перемещения камеры можно использовать самые разные функции, но я склоняюсь к полёту в ту сторону куда смотрит игрок. Для этого необходимо вычислить синус и косинус для поворота по горизонтальной, и синус для поворота по вертикальной оси. После их надо умножить на радиус, мы получим точку на сфере - это и будет вектор ускорения для камеры. Его следует добавлять к уже существующим координатам камеры, изменяя радиус мы можем изменять скорость. Для того что бы камера была "свободная", нужно записывать свои значения в координаты, а функцию которая записывает их в игре по стандарту - отключить. Более детально всё показано в следующем видео Создание свободной камеры на примере игры "WarThunder": Видео где показан принцип работы формул: тык
  14. 7 баллов
    Я не буду здесь объяснять, что такое видовая матрица и для чего она нужна - для этого есть специальные книжки и статьи (раз, два) Обычный Step-by-Step гайд с пояснениями. Искать будем в Counter-Strike: Global Offensive, но в принципе подойдет и любая другая игра. Никаких консольных команд для облегчения поиска использовать я не буду, дабы способ мог пройти в любой другой игре. Значит так, сначала цепляемся к процессу игры, затем устанавливаем параметры поиска: Scan Type: Value between... Value Type: Float Почему именно так? Дело в том, что точное значение искать довольно рискованно. Во-первых, флоат вообще довольно неточная штука, а во-вторых - мы не знаем точного угла нашей камеры. Например, в csgo угол наклона (pitch) варьируется от -89.0 до 89.0 градусов , а в других играх может и прямой угол получаться, т.е. 90 градусов. Теперь опускаем камеру до упора вниз, так что наш угол наклона получится 89 градусов. По идее, в видовой матрице это значение отобразится как ~0,999, но мы все равно будем искать диапазон. Ну а теперь выставляем диапазон: от 0.9 до 1.1 и сканируем Нам тут же нашло овер9000 значений, но ща мы их отсеим. Камеру до упора вверх и сканим теперь следующий диапазон: Оп-па. Теперь значений осталось всего-ничего: 521. Нет, это конечно много, но не настолько. Можно конечно по приколу отсеить те значения, что изменились за время чтения данной строки, но тут может поджидать сюрприз: в некоторых играх камера может немного "ходить" туда-сюда. Но если вы уверены в том, что она статична, то флаг вам в руки. Сейчас осталось только и делов: отсеить весь хлам, ну а дальше будем смотреть на найденное и анализировать. Можно так же до упора туда-сюда камеру водить, но я сделал так: направил ее примерно параллельно земле и прожал скан от -0.2 до 0.2. После пары-тройки дополнительных сканов у меня осталось примерно 60 значений. Многовато для ручного перебора, но я знаю, что мне нужны только "зеленые", т.е. статические адреса. Пролистав чуть ниже, я тут же натолкнулся на целый ряд таких значений: Выносим все эти ячейки в список адресов и начинаем их перебирать: ПКМ по первому же адресу -> Browse this memory region ( Ctrl + B ) Выставляем тип отображаемых значений на float, чтобы проще было наблюдать за всеми значениями матрицы. ПКМ -> Display Type -> Float ( Ctrl + 9 ) Смотрим на первую матрицу: На всю матрицу у нас должно быть только 3-4 больших значения и все они должны быть в одной колонке. Ну или так: каждое четвертое значение имеет большую величину. Желательно сразу их выровнять по 4 колонке. Остальные значения находятся в диапазоне от 0 до +-1.33 Тут мы видим, что она явно какая-то не такая: Nan-значения, остальные нули и тд. Но даже если она выглядит более-менее правдиво, то достаточно подвигать туда сюда камерой ( + побегать! ), чтобы убедиться в том что это не она: только два значения меняются, а остальные статичны. По идее меняться должны все значения, кроме одного в первой строке, оно скорее всего будет равняться нулю. Дальше увидите. Проделываем те же действия с другими матрицами: оцениваем их визуально + меняем состояние камеры в игре и смотрим на значения. Просматривая вторую и третью матрицы я заметил, что между ними есть участок памяти, который наиболее активно изменяется при движении/изменении углов камеры. Фиолетовым я выделил адреса второй и третьей матрицы, а между ними зеленым - интересующий участок. Как видите, здесь есть 4 довольно больших значения ( на фоне других ) и одно из них (0x1F97E26C) остается неизменным. Но в других играх оно может немного меняться: оно отвечает за угол поворота ( по часовой ). Это в тех играх, где камера туда-сюда наклоняется, например, при передвижении пресонажа, но оно в таком случае все равно не будет сильно большим. Теперь выделяем предполагаемое начало матрицы, жмем ПКМ->Add this to address list и копируем адрес. Теперь Ctrl + G и переходим по скопированному адресу. Смотрим: Ба! Выглядит отлично. Значения не сравнивайте между скринами, за это время я немного подвигал камеру опять, поэтому они изменились. Ну, оффсет для статического адреса сделать вообще не сложно: берем адрес матрицы и вычитаем из него базовый адрес модуля: 0x1F97E264 - client.dll = 0x4A7E264 Если все еще не понятно, как таки найти view matrix, то можете посмотреть видеоурок от Guided Hacking: https://www.youtube.com/watch?v=-WL1Gpe9VRo Ну, так как во многих обновляемых играх, особенно в кс, оффсетам свойственно меняться, а каждый раз искать по новой эту матрицу не очень хочется, то можно сделать сигнатурку. По ней мы будем автоматически вытаскивать наш оффсет из исполняемого кода. Точнее даже не оффсет, а уже конкретный адрес. Добавляем первое значение нашей матрицы в список адресов и ставим бряк. Тут же ловим кучу инструкций, которые взаимодействуют с нашей матрицей: Берем самую первую и смотрим: Это похоже на какой-то метод класса матрицы, который может использоваться не только нашей матрицей, но и другими. Что-то типа оператора присвоения. Если поставить бряк на эту инструкцию, то можно в этом убедиться: в регистр ecx попадает не только "наш" адрес, но и куча других. Что же делать? Все просто: будем "раскручивать" цепочку вызовов функций. Ставим Breakpoint ( F5 ) на инструкцию push ebp. Это начало функции. Затем ПКМ по ней же и выбираем "Set/Change break condition" и выставляем фильтр на брейкпоинте, чтобы он остановился когда функция будет работать с нашей матрицей. Тут, конечно же, адрес вашей матрицы вместо моего. И в тот же миг "ловим" наш поток. Смотрим на регистры и на стек: В регистре ecx наша матрица, стек разворачиваем на "полную" и видим такую картину: Это адрес функции, которая нас вызвала. В чем суть вообще того, что мы сейчас делаем? Все дело в том, что нам надо выйти на ту единственную функцию, которая работает ТОЛЬКО с нашим адресом. Т.е. там, где все начинается. Там же, вероятно, мы и сможем узнать откуда игра берет адрес этой матрицы и мы сделаем сигнатурку. Значит так, теперь снимаем наш брейкпоинт и прыгаем по адресу из нашего стека: client.dll + 67379B Отлично. Что мы видим? А, ну это соответственно тот самый вызов функции, из которой мы пришли. Можно тут так же поставить брейкпоинт и убедиться, что функция всё так же работает с несколькими матрицами. Так, а с каким регистром-то у нас там работали инструкции? С ecx, точно. Смотрим буквально на пару строк выше и видим инструкцию: lea ecx, [edi+00000284] Похоже, тут в наш регистр загружается адрес матрицы. Хм, а сама матрица тоже лежит в какой-то структуре, адрес которой лежит в edi. А значит теперь нам надо искать ту инструкцию, которая загружает в регистр edi адрес 0x1F97DFE0. Это уже адрес нашей структуры, т.е. ( 0x1F97E264 - 0x284 ). Теперь ищем по нему. Прокрутив в самый верх функции можно увидеть, что в edi значение перекладывается из регистра ecx. client.dll+673740 - 55 - push ebp client.dll+673741 - 8B EC - mov ebp,esp client.dll+673743 - 81 EC 80000000 - sub esp,00000080 client.dll+673749 - 56 - push esi client.dll+67374A - 57 - push edi client.dll+67374B - 8B F9 - mov edi,ecx Теперь делаем то же самое, что и в предыдущий раз: брейкпоинт (на push ebp), condition, и прыгаем на предыдущую функцию. Тут наблюдаем такую картину: Фигассе, сказал я се. Приехали, значение вытаскивается из стека) Можно попрыгать по функции и найти когда значение пушится в стек, но мне лень, поэтому я просто прокрутил функцию в самый верх и не прогадал: поставив бряк на начало функции я тут же поймал в ecx прежний адрес структуры, которую мы пытаемся выследить. Но эта функция все еще работает с каким-то адресом помимо нашего, поэтому раскручиваем дальше: те же действия, прыгаем на предыдущую функцию. Тут такая же ситуёвина, все делаем точь в точь, пока не наткнемся на ту самую функцию, где у нас бряк будет ловить в регистре только наш адрес. А вот и она: Думаю, тут все ясно. Мы поймали разрабов с поличным: адресок-то прямо вот он, в ecx кладется. Двойной клик по строчке чтоб увидеть полный адрес: client.dll+1F2C68 - B9 E0DF971F - mov ecx,1F97DFE0 А вот и адрес нашей структуры. Дело за малым, выделяем кучку инструкций для того чтобы составить уникальную сигнатуру, по которой мы сможем найти в дальнейшем этот участок кода. Получаем такую строчку: B9 E0 DF 97 1F 50 6A 00 6A 03 83 EC 08 8D 45 DC F3 0F 11 44 24 04 F3 0F 10 45 F8 F3 0F 11 04 24 И теперь "замазываем" наш адрес, который после перезапуска игры 100% поменяется. B9 ?? ?? ?? ?? 50 6A 00 6A 03 83 EC 08 8D 45 DC F3 0F 11 44 24 04 F3 0F 10 45 F8 F3 0F 11 04 24 Все, сигнатура готова. У меня примерно так выглядит всё в коде: pViewMatrix = (D3DXMATRIX*) CEngine::FindPattern( "client.dll", "B9 ?? ?? ?? ?? 50 6A 00 6A 03 83 EC 08 8D 45 DC F3 0F 11 44 24 04" ); if( pViewMatrix ) { pViewMatrix = (D3DXMATRIX*)( *(DWORD*)( (DWORD) pViewMatrix + 1 ) + 0x284 ); } Да, не забываем, что это адрес СТРУКТУРЫ, но не матрицы. Матрица имеет своё, внутреннее смещение по структуре: 0x284. Сканер сигнатур сами как-нибудь сделаете, это уже к кодингу относится Да и на самом деле, эту сигнатуру можно использовать даже в CE.
  15. 7 баллов
    Отладчик - глаза любого хакера/геймхакера. Отладчики позволяют вам выполнять трассировку (отслеживание) выполнения процесса, или проводить динамический анализ. Возможность выполнения динамического анализа абсолютно необходима. Это очень важно, чтобы вы понимали, что такое отладчик, и принцип его работы. Большинство из них предоставляют возможность запускать, останавливать, или выполнять пошагово процесс, устанавливать точки останова, манипулировать регистрами и памятью, и отлавливать случающиеся исключения в исследуемом процессе. Регистр - это небольшой объем памяти находящийся прямо на центральном процессоре, и доступ к нему - быстрейший метод для процессора, чтобы получить данные. В наборе инструкций архитектуры x86 используются восемь регистров общего назначения: EAX, EDX, ECX, ESI, EDI, EBP, ESP и EBX. Большинство регистров доступны процессору, но мы рассмотрим их только в конкретных обстоятельствах, когда они потребуются. Каждый из восьми регистров общего назначения разработан для своей конкретной работы, и каждый выполняет свою функцию, которая позволяет процессору эффективно выполнять инструкции. Это очень важно - понимать, какой регистр для чего используется, ибо это знание положит фундамент понимания того, как устроен отладчик. Регистр EAX, так же называемый регистром аккумуляции (или аккумулятором), используется для выполнения расчетов, а также для хранения значений, возвращаемых вызванными функциями. Многие оптимизированные инструкции в наборе инструкций x86 разработаны для перемещения данных именно в регистр EAX и извлечения данных из него, а также для выполнения расчетов с этими данными. Большинство простых операций, таких как сложение, вычитание и сравнение оптимизированы для использования регистра EAX. Кроме того, многие определенные операции, такие как умножение или деление, могут выполняться только в регистре EAX. Как было замечено ранее, возвращенные значения из вызываемых функций хранятся в EAX Регистр EDX это регистр данных (data register). Этот регистр в основном является дополнительным для регистра EAX, и он помогает хранить дополнительные данные для более сложных вычислений, таких как умножение и деление. Он так же может быть хранилищем данных общего назначения, но обычно он используется в расчетах, выполненных в сочетании с регистром EAX. Регистр ECX так же называется регистром-счетчиком (count register), он используется в операциях цикла. Часто повторяющиеся операции стоит хранить в упорядоченной пронумерованной строке. Очень важно понимать, что счетчик регистра ECX уменьшает, а не увеличивает значение. Регистры ESP и EBP соответственно указатель стека (stack pointer) и указатель базы (base pointer). Эти регистры используются для управления вызовами функций и операциями со стеком. Когда функция вызвана, аргументы функции перемещаются (проталкиваются) в стек и следуют по адресу возврата. Регистр ESP указывает на самый верх стека, поэтому он будет указывать на адрес возврата. Регистр EBP указывает на самый низ стека вызовов. В некоторых случаях компилятор может использовать оптимизацию для удаления регистра EBP как указателя кадра, в этих случаях регистр EBP освобождается и может использоваться точно так же, как любой другой регистр общего назначения. Единственный регистр, который не был разработан для чего-то конкретного - это EBX. Он может использоваться, как дополнительное хранилище данных. Единственный дополнительный регистр, который стоит упомянуть отдельно, это регистр EIP. Он указывает на инструкцию, которая выполняется в данный момент. Как процессор проходит по двоичному исполняемому коду, EIP обновляется для отображения адреса, по которому в данный момент происходит выполнение. Стек хранит информацию о том, как вызывается функция, какие параметры она забирает, и что надо вернуть после выполнения функции. Структура стека представляет собой модель "Первый пришел, последний вышел" (FILO, First In, Last Out), когда аргументы проталкиваются в стек для вызова функции, и извлекаются из стека после того, как функция завершит свое выполнение. Регистр ESP используется для отслеживания самой вершины кадра стека, а регистр EBP используется для отслеживания самого низа стека. Стек "растет" от верхних адресов памяти к нижним адресам памяти События отладчика Отладчик работает как бесконечный цикл, который ждет события отладки. Когда событие для отладки случается, цикл прерывается, и вызывается соответствующий обработчик событий. Когда вызван обработчик событий, отладчик останавливается и ждет указаний, что ему делать дальше. Вот несколько обычных событий, которые улавливает отладчик: · Встреча точки останова (breakpoint) · Нарушения памяти (так же называемые нарушениями доступа или нарушением сегментации) · Исключения, сгенерированные отлаживаемой программой Точки останова Возможность остановить отлаживаемый процесс достигается установкой точек останова (breakpoints). Остановив процесс, у вас появляется возможность проверить переменные, аргументы стека, и что находится в памяти без изменения переменных процесса, прежде чем вы сможете записать их. Точки останова - это определенно самая частая вещь, которую вы можете использовать при отладке процесса, и рассмотрим их очень внимательно. Есть три основных вида точек останова: программные (soft breakponit), аппаратные (hardware breakpoint), и памяти (memory breakpoint). Они ведут себя очень похоже, но выполняются очень разными способами. Программные точки останова используются специально для остановки процессора при выполнении инструкций и это самый частый вид точек останова, который вы будете использовать при отладке приложений. Программный брейкпоинт - это однобитная интсрукция, которая останавливает выполнение отлаживаемого процесса и передает управление обработчику исключений точек останова. В целях понимания как это работает, вам следует знать разницу между инструкцией (instruction) и опкодом (opcode) в ассемблере x86. Аппаратные точки останова (hardware breakpoints) полезны, когда нужно установить небольшое число точек останова, и отлаживаемая программа не может быть модифицирована. Этот тип точек устанавливается на уровне процессора, в специальных регистрах, называемых регистрами отладки. Типичный процессор имеет 8 регистров отладки (по порядку с DR0 до DR7 соответственно), которые используются для установки и управлением аппаратных точек. Регистры отладки с DR0 до DR3 зарезервированы для адресов точек останова. Это означает, что вы можете использовать лишь 4 аппаратных точки одновременно. Регистры DR4 и DR5 зарезервированы, а регистр DR6 используется, как регистр статуса, который определяет тип события отладки, вызванного встречей точки останова. Регистр отладки DR7 по существу является выключателем (вкл/выкл) аппаратных точек останова, а так же хранит разные состояния точек останова. При установке специальных флагов в регистр DR7, вы можете создать точки останова в следующих состояниях: · Останов, когда инструкция выполняется по определенному адресу. · Останов, когда данные записываются по адресу. · Останов на чтение или запись, но не выполнение. Аппаратные точки останова обрабатываются таким же способом, как и программные, но их механизм находится на низком уровне. Прежде чем процессор попытается выполнить инструкцию, он сначала проверит, не установлена ли на адрес аппаратная точка. Он так же проверит операторов инструкции, не имеют ли они доступ к адресу, на который установлена аппаратная точка. Если адрес хранится в регистрах отладки DR0-DR3 и условия чтения, записи, или выполнения встречаются, прерывание INT1 приказывает процессору остановиться. Если адрес не хранится в регистрах отладки, процессор выполняет инструкцию и переходит к следующей, и эта проверка выполняется снова, и так далее. Аппаратные точки очень полезны, но у них есть некоторые ограничения. Помимо того, что вы можете выставить только четыре ваших точки в одно время, вы так же можете установить точку только на данные длинной 2 байта. Это может сильно ограничить вас, если вы собираетесь получить доступ к большому участку памяти. Как правило, для обхода этих ограничений вы можете использовать точки останова памяти.В отличие от программных, которые используют событие INT3, аппаратные точки используют прерывание 1 (INT1). INT1 случается для аппаратных точек останова и одноступенчатых событий. Одноступенчатый означает проход по порядку по инструкциям, что позволяет вам очень близко исследовать участки кода во время изменения наблюдаемых данных. Точки останова памяти являются не совсем точками останова. Когда отладчик устанавливает точку памяти, он меняет разрешения на регион, или страницу памяти. Страница памяти - это наименьшая размер памяти, которую обрабатывает операционная система. Когда страница памяти выделяется, у нее устанавливаются конкретные разрешения на доступ, которые указывают как эта память может быть доступна. Вот некоторые примеры разрешений на страницу памяти: · Выполнение страницы (page execution) Дает возможность выполнять, но выдает нарушение, если процесс попытается прочитать или записать данные на страницу. · Чтение страницы (Page read) Позволяет процессу только считывать со страницы; любая запись или попытка выполнения вызовут нарушение доступа. · Запись страницы (Page write) Позволяет процессу записывать на страницу. · Сторожевая страница (Guard page) Любой доступ к сторожевой странице возвращает единовременное исключение, и затем страница возвращается к своему первоначальному статусу. Большинство операционных систем позволяют вам комбинировать эти разрешения. Например, вы можете иметь страницу памяти, куда вы можете писать и читать, в то время, как другая страница может позволить вам прочитать или выполнить. Каждая операционная система так же имеет присущие функции, позволяющие вам запрашивать конкретные разрешения памяти в месте для особой страницы и изменять их, если понадобится. Источник: Gray Hat Python. Justin Seitz, Перевод: forum.reverse4you.org M. Chumichev
  16. 7 баллов
    Название: Dishonored Добавил: CuBiC Добавлен: 28 марта 2015 Категория: Трейнеры для PC игр "F1" - Toggle Inf. Health (Бесконечное здоровье [Вкл/Выкл]) "F2" - Toggle Inf. Stamina (Бесконечная энергия [Вкл/Выкл]) "F3" - Toggle Inf. Ammo / No Reload (Бесконечные патроны / Без перезарядки [Вкл/Выкл]) "F4" - Toggle Invisibility (Невидимость [Вкл/Выкл]) "F5" - Toggle Inf. Breath (Бесконечное дыхание [Вкл/Выкл]) "F6" - Add 1K Gold / Runes (+1000 монет и руны [Вкл/Выкл]) Нажмите здесь, чтобы скачать файл
  17. 6 баллов
    Cheat Engine сервер предназначен для удалённого взлома каких либо приложений, сервер располагается на целевом устройстве, а клиент подключается к нему по IP, после этого становятся доступны почти все функции стандартного Cheat Engine ☺️. Установка Cheat Engine сервера на Android: Особенности использования, написание скрипта:
  18. 6 баллов
    Данной мне властью выкладываю здесь сиё творение, дабы не испытывал нужды человек в поисках инструкции по байтам. sl = AOBScan("ХХ ХХ ХХ ХХ ХХ"); if(sl == nil) then print("No code found!"); else j = stringlist_getCount(sl); print("Found:",j); for i = 1, j do print(stringlist_getString(sl,i-1)); end object_destroy(sl); end Вместо букв "Х" вписываете нужные байты (не обязательно 5 пар, их может быть больше). Если что-то найдёт, то скажет Found: кол-во_адресов и список их, в обратном случае скажет No code found! Код вставлять в Lua Engine, как его вызывать думаю знаете...
  19. 6 баллов
    Статью пишу первый раз , так , что где будет не понятно - спрашивайте Python под GHL флагом Часть 1 В этой статье (будет из нескольких частей) я полностью объясни и напишу рабочий автошот для игры Начну с введения: 1) Определимся с языком программирования , для меня пал выбор на язык python так как давно хотел его изучить начать писать на нем (язык очень простой , да и библиотек сторонних куча, что должно радовать)PS для вас может быть тот который хорошо знаете 2) представим как должна работать программа : Программа не как не воздействует на игру, не читает/ не пишет в память, не инжектится в код, а работает как стороннее приложение благодаря чему не доступна для анти-читов, т.е. бан в игре получить почти не реально! Программка сканирует цвет пикселей экрана в заранее заданной области, где обычно должен отображаться ник врага (по кому программа должна делать авто-выстрел), допустим цвет ника будет красный и должен появляться при наведении прицелом на врага, как только это условие соблюдается и в заданной области появляются пиксели заданного(красного) цвета то программа имитируя нажатие ЛКМ/ПКМ делает выстрел по врагу , задержка между выстрелами по желанию, и так далее.... 3) вообразим алгоритм программы : 1) программа обнаруживает ник противника (пиксельно) 2) программа имитирует выстрел Ну что ж , начнем : Сразу первый этап выполнять "круто" , начнем с малого , определим цвет пикселя под мышкой (компьютерной) . 1 этап: В этом нам поможет классная статья с хабрахабр (в комментариях он оставил ссылку на gamehacklab, явно кто-то из наших, я оставлю ссылку на статью ) PS рекомендую к прочтению Нагло скопируем код Воспользуемся его наработками Все замечательно , с малой задачей справились. 2 этап : Теперь мы осознали, что ник у нас "прямоугольный" и с одним пикселем можем не попасть в красные буквы Создадим дополнительно пару переменных (модернизируем программу под наши нужды) и получим такое: картинка Тут я использовал 5 пикселей чтобы наверняка определить ник точно : где x - это горизонтальная точка и от нее "отходим" влево и вправо Код программы : Теперь делаем скрин игры , определяем цвет ника , рисуем прямоугольники , радуемся , что программа работает и/или просто вводим мышкой по экрану.... PS конец первой части , оцениваем и обсуждаем , продолжение следует по мере возможности(скоро) ....
  20. 6 баллов

    Версия 2.29.12

    211 раз скачали

    Возможен бан в игре. Вы используйте хак, на свой страх и риск. Перед использованием, ознакомьтесь с ЭТИМ Поддерживаемые ОС: Win7+ (x32 , x64) Поддерживаемые античиты: MRAC Версия от 01.11.19 (Последняя) Undetected Последнюю версию хака, можете скачать ТУТ.
  21. 6 баллов
    Для чего может понадобится размер пакета, это зависит от фантазии читера, допустим сделать аимбот, чтобы наблюдатели при стрельбе не наблюдали ничего необычного. Т.е отключаем отправку пакетов на сервер, делаем выстрел и включаем в итоге сервер не получает пакеты на которых у нас дергается экран к примеру. Легче искать это в играх, при отключении интернета в которых будет выводиться какое-нибудь сообщение от которого можно будет оттолкнуться при поиске функции. Для начала зайдем на любой сервер и отключим интернет, смотрим какие сообщения игра нам выдаст. Заходим в IDA(olly, x64dbg) и ищем сообщение которое было в верхнем правом углу. Переходим на функцию которая использует этот текст. Смотрим по коду и ищем какой-нибудь вызов перед текстом который нашли. \ После того как перешли по вызову, надо будет поискать младшую половину 8-битного регистра.(сейчас используется ECX(cl), хотя раньше был EBX(bl)) Находим откуда берется ECX, теперь подключаем CE к игре, Ставим бряк на инструкцию lea ecx,[ebp-1C] и добавляем адрес(ebp-1C) в таблицу. Теперь с этими данными можно делать что угодно. //UPD Немного ошибся, это размер пакета мы находим, а не их количество. Это можно проверить посмотрев в Wireshark. Все это происходит перед функцией которая создает "движение" в игре(движение противников, выстрелы, летящие гранаты и т.д.).
  22. 6 баллов
    Многие из вас слышали такие понятия как AIM, автонаведение, автоприцел и тому подобное, когда прицел игрока автоматически наводится на какой нибудь объект. В видео показано как сделать такое на LUA, ассемблер ничем не будет отличаться, разве что кучей команд ?. В первых четырёх (включая пример) видео - создание и мелкие нюансы.. В 5 просто демонстрация. Патроны летят в цель, неровная камера - просто обновления и это не влияет. Попадание зависит от разброса оружия ?. Видео о поиске значений ♦️: Видео о создании и вычислениях ?: Видео дополнение ко второму (запись сломалась и потому пришлось доснять тут): Обзор первый: Обзор второй: Ну и скрипт на LUA:
  23. 6 баллов
    Сегодня начал серию видео уроков по написанию тренера на С++. В данный момент урок только один. Думаю раз в неделю(каждое воскресенье) будет добавляться по уроку. В данный момент, в первом уроке нового нечего нету и похожие уроки были на канале ГХЛаб, на канале товарища Coder и думаю много где еще. Но в планах наверно на третбем уроке перейти на немного другой тип тренеров(dll) и возможно уже там начнется что-то новое(но это не точно, уроков то масса, наверняка кто-то затрагивал те темы которые планирую я :)) Это первый видео урок, если можно конструктивной критики, может какие-то недоработки, ошибки и прочее... Сам пересмотрел уже несколько раз, пару косяков заметил в начале второго видео поправлюсь Всем спасибо Первый урок:
  24. 6 баллов
    В видео про спавн врагов в ре6, во второй его части пользователь спросил: могу ли я сделать подобное для ре4, версия 1.1 Еще в феврале в 10-х числах начал искать. Как-то несколько дней что-то проверял, потом нашел зацепку, потом затянулось и только в марте снова взялся. Только сейчас дошли руки записать видео, скрипт пробный уже недели 2 готов был. Версия игры 1.1., это не Ultra HD Remaster или как он там в стим называется, но кажется в нем все так же работает, разве что указатели в других местах. Сделал пробный скрипт спавна врагов. Спавнит в упрощенном варианте, рядом с игроком. Если на уровне не предусмотрены враги, то возможен вылет при попытке спавна (возможно файл не загружен в памяти, а при создании объекта не проверяется, что не загружен). Как обычно работает на Tab. Сначала инициализирует массив со всеми структурами npc/enemy, прописано изначально только на врагов (0x12). При смене уровня обновляет массив заново. Можно убрать инициализацию цикла и создавать, заполняя данные вручную. По крайне мене когда я пытался, если спавнить не врагов а все иное, то вылет происходит, не сильно проверял почему, т.к. главной целью было спавнить врагов. видео Скрипт ссылка на файл http://s000.tinyupload.com/?file_id=08064413723196487564 Указатель на объект, который используется для спавна npc/врагов (и игрока единожды) 0x033F6EC4 +4 указатель на игрока +8 максимально возможно количество объектов +14 - последний созданный объект в каждом объекте +8 - предыдущий объект таким образом происходит полный обход всех объектов 0x009D3558 класс врага 0x009EF690 класс игрока если кому интересно, допишу подробнее информацию из заметок, что вел *оказалось записывал с отключенной функцией подавления шума, она сильно делала тише запись, но шумов не было. Когда усилил сигнал тут, то шумы очень сильно слышны были, подавил как мог в Audacity. Громкость не повышал аудиозаписи сильно, чтобы шумы не были уж слишком слышны.
  25. 6 баллов
    Расчёт дистанции Расчёт угла Player/Map Расчёт Player_Velocity X,Y
  26. 6 баллов
    Вот и вышла релизная версия Cheat Engine 6.6 http://cheatengine.org/download/CheatEngine66.exe Ссылка на обновлённый русификатор в подписи
  27. 6 баллов
  28. 6 баллов
    Только что посмотрел "Итоги" на НТВ, до этого был не в курсе (выехал на работу в 6.30, вернулся в 22.00 по Москве). Хочу выразить соболезнования родным и близким пострадавших и погибших в результате взрыва в петербургском метрополитене.
  29. 6 баллов
    Название: Tomb Raider 2013 Версия игры: 1.01.748.0 (Steam License) Категория: Трейнеры для PC игр (Тренер) Прямая ссылка на тренер: Tomb_Raider_2013_By_Taiwan Ссылка на VirusTotal: VT Дополнительный скриншот: Функции: ¤ Numpad 0 - Высокий прыжок. ¤ Numpad 1 - Спид Хак. ¤ Numpad 2 - Аим Бот - примечание: (Не работает в режиме "НА ПОМОЩЬ"). Примечание: Для работы тренера, требуются все (Офф Дополнения) к игре такие как: (Tomb Raider: Caves and Cliffs Multiplayer Map Pack, Tomb Raider: Animal Instinct, Tomb Raider: Headshot Reticule, и т.д). Инструкция: ¤ 1. Запустить Игру. ¤ 2. Запустить Тренер. ¤ 3. Выбрать, подходящий для вас режим - подключится, дождаться оппонентов. ¤ 4. Дождаться загрузки мапы - (Карты), после это-го нажать на волшебные клавиши "Numpad 1 и Numpad 2" и стоять ждать, пока не услышим звуковое оповещение: "Помни читер, сообщество GameHackLab всегда с тобой!" ¤ 5. Крикнуть 3-и раза во всё горло "Allah Akbar, qoyun!" при этом нажать клавишу "F1" чтоб вас слышали не только окружающие, но и все игроки играющие с вами ну а дальше, действуйте по обстоятельствам. Немного от себя: Говорят, и пишут - что за подобные махинации без обхода LD3D - возможность выхватить Бан по VAC и SG приравнивается к 70%+ после которого, придется доказывать разрабам TR-a, что ты честный игрок. А уж после того, в течении месяца разрабы Steam будут рассматривать рапорт от TR-a на счет разбана... вообщем полная рутина! Так что не советую - если ваш Стим аккаунт стоит хотя бы, от 10$ и выше. А по тренеру: чутка подлагивает при Спид Хаке, наверно из за моей отдачи интернет канала, АИМ не на всех картах работает и одного выше описанного режима. После того, как прочел на счет Бана - лучше запускать не буду, хотя у меня игр раз-два и обчелся.
  30. 6 баллов
    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. Добавить АА скрипт-ы: на здоровье, стамину. -------------------
  31. 6 баллов
    Скрипт "Infinite HP": Скрипт "God Mod": Видео: Табличка: HowToSurvive2.CT
  32. 6 баллов
    Некоторые особенности: 1 DLL x32 4.5 кб 2 Никаких внешних костылей 3 Меню\клавиши используют поток игры 4 Меню максимально простое 5 В хаке 8 опций 6 NASM: http://www.nasm.us/pub/nasm/releasebuilds -> X.XX.XX -> win64 -> nasm-X.XX.XX-win64.zip -> nasm.exe 7 Линкер: http://www.godevtool.com/Golink.zip -> golink.exe 8 Редактор: https://notepad-plus-plus.org/download Приступим... Создадим txt файл и переименуем в "dragon commander hack.asm" Открываем файл в notepad++ Добавим EntryPoint, структуры, импорт апи Создадим секцию кода Добавим функцию DllMain, resd 1 - для пропуска адреса возврата а ret 3*4 значит что у функции 3 параметра по 4 байта Добавляем функцию инициализации, получаем базу/размер exe из PE хидера, поиск патч опций, установка хуков. DX9Binding.dll, там будем ставить хуки для менюхи. длка загружается на старте игры - добавлять проверку ее наличия не нужно. Теперь создадим функцию меню. Место где установили хук - достает для игры D3D_Device +нам он нужен для D3DXCreateFontW, сохраним его, а в конце функции вернем игре Добавим функцию для быстрого закрытия игры на кнопку PAUSE Добавим код для проверки активности окна. Также код используется для получения hGameWnd, следовательно, после инжекта, меню нарисуется только после клика в окно Добавим кнопку скрыть/показать меню. cmp + setz = 0/1 aka вкл/откл Добавляем все опции, включая опции для которых нужен патчкод После опций, добавим код создания шрифта и получения размера видимой области окна, также передвинем меню в правый угол Для вывода текста опций - используем DrawTextW Возвращаем игре D3D_Device, выравниваем стек, восстанавливаем важные регистры и ставим ret для возврата на код игры Теперь добавляем функцию поиска. Она не особо сложная, очень быстрая и может пропускать мусорные байты. и функцию обмена байтами, чтобы не копировать оригинал код для откл опций. и самую важную часть - освобождение ресурсов которые были созданы D3DXCreateFontW, если их не освободить - игра просто вылелит в момент изменения размера окна. Обнуление hFont нужно чтобы D3DXCreateFontW смог создать новый шрифт +получить новый размер окна и остальные функции для обработки перехвата. там также находится "оригинал код" который был заменен на call Создадим секцию данных для: паттернов, патчкода, строк Создадим секцию неинициализ. данных (они не занимают место в длке) Сборка: ps справка по опциям линкера на оф сайте.
  33. 6 баллов
    Max Payne 3 Просмотреть файл Бессмертие. Бесконечные патроны. Без перезарядки. Бесконечное замедление. Бесконечные таблетки. Убийство с одного выстрела. Бесконечное время в режиме - время не ждет. Версия игры steam на 07.01.2016 Автор LIRW Добавлен 20.10.2015 Категория Трейнеры для PC игр  
  34. 6 баллов
    Поздравляю всех!!!!!
  35. 6 баллов
    Название: Call of Duty + Call of Duty - United Offensive Добавил: LIRW Добавлен: 08 июля 2015 Категория: Трейнеры для PC игр COD 1 Бесконечная жизнь. Бесконечные патроны,гранаты. COD United Offensive Бесконечная жизнь. Бесконечные патроны,гранаты. Версия игры COD 1.51 Версия игры COD United Offensive 1.51 это как дополнение идет.(Запутаешься в них) P/S Опции надо активировать каждый раз на следующим уровне...(просто нажать кнопку) Движок похожий на wolfenshtein первый - там тоже подобия этой проблема. Трейнер как бы бета - (на пробу сделан) Без музыки пока, без всего - просто для теста Если кому то понравится - то можно делать на все части в одном трейнере... Как запускать - выложу видео по ниже строчкой.
  36. 6 баллов
    Название: Boiling Point: Road to Hell v.2.2Rus Добавил: LIRW Добавлен: 01 июня 2015 Категория: Трейнеры для PC игр Бесконечная жизнь. Бесконечные предметы в сумке. Бесконечная сумка. Супер точность. Супер машина...(бензин не кончается и она не лопается) Супер оружие.(Очень большое расстояние полета пули,скорострельность,нет отдачи,мгновенная перезарядка,без перезарядки) Оружие не ломается. Открыть умение на транспорт.(Можно ездить на всём - не имея на это навыков) Супер прыжок. Миллиард пессо. Супер точность. Примечание: что бы оружие активировалось с новыми параметрами - надо зайти к себе в сумку и нажать на каждое оружие,для активации ему новых заданных параметров... PS...... Ну и естественно большая благодарность Игорю,а то есть garic66 за помощь... В обьединении,тесте,поиске и так далее. (Искали всё вместе с ним)
  37. 6 баллов
    Название: TimeShift Добавил: CuBiC Добавлен: 17 Мар 2015 Категория: Трейнеры для PC игр "F1" - Toggle Inf. Health (Бесконечное здоровье [Вкл/Выкл]) "F2" - Toggle Inf. Energy (Бесконечная энергия [Вкл/Выкл]) "F3" - Toggle Inf. Ammo (Бесконечные патроны [Вкл/Выкл]) "F4" - Toggle Inf. Grenades (Бесконечные гранаты [Вкл/Выкл]) "F5" - No Turrets Overheating (Туррели не перегреваются [Вкл/Выкл]) "F6" - No Damage Dirigible (Дирижабль не получает урон [Вкл/Выкл]) Нажмите здесь, чтобы скачать файл
  38. 5 баллов
    В общем я решил по настроению сделать пошаговую инструкцию для новичков по взлому игр Dendy, NES и Nintendo. И так приступим... 1: Скачиваем с интернета эмулятор FCEUX v2.2.22: Запускаем эмулятор и открываем с помощью него игру, например - Contra (U) [!].nes.3: Начинаем играть в игру и видим две жизни у нашего героя.4: В меню эмуляторе нажимаем на Tools > Cheats, появится окно поиска адресов.5: В этом окне жмём на кнопку Reset, справа появится адреса и их значения.6: Далее вводим значение 02 где 0x 00 и жмём на кнопку Known Value.7: Переходим обратно в игру и теряем одну жизнь и опять переходим в окно Cheats Search.8: Вводим значение 01, где 0x 02 и жмём опять на кнопку Known Value.8: Так проделываем пока не будет один адрес: 0032 это и есть адрес наших жизней.9: Далее в меню эмулятора нажмите на Debug > Degugger появится большое окно отладчика.10: Справа с верху есть три кнопки две из-них не активны и одна кнопка с названием Add нажмите на неё.11: Появится окно Add BreakPoint, вводим в поле где адрес, наш адрес жизней 0032 - 0032 и ставим галочку где Write и жмём ОК.12: Переходим обратно в игру и теряем ещё одну жизнь, сразу должен сработать бряк в отладчике и он покажет в самом верху слева нашу инструкцию уменьшения жизней 07:DA03:D6 32 DEC $32,X @ $0032 = #$0213: Подводим к этой инструкции курсор мышки, в самом низу отладчика будет отображаться информация.Информация: CPU Address 07:DA03, Offset 0x01DA13 in file "Contra (U) [!].nes" (NL file: 7)14: Далее в меню эмулятора нажмите на Debug > Game Genie Decoder/Encoder появится окно создания кодов.15: Вводим в поле Address - DA03, в поле Compare вводим значение в НЕХ'е D6, а где Value вводим значение НЕХ'е 60, справа верху появится наш Game Genie код ATEIUZVI. Вот мы и сделали свой Game Genie код на вечные жизни. Пояснение:DA03 - Это адрес где сработал наш бряк на уменьшение жизней.D6 - Это первый байт нашей инструкции (07:DA03:D6 32 DEC $32,X @ $0032 = #$02).60 - Это байт инструкции RTS, которая затирает наш оригинальный байт D6, что бы жизни в игре не уменьшались. Как вшить этот чит-код в игру на вечные жизни, что бы больше не париться для его ввода? 1: Скачиваем с интернета программу WinHEX желательно русскую, не забудьте ввести ключ продукта для активации, а лучше скачивайте крякнутую или портейбл версию, ну или любой другой НЕХ-Редактор.2: Запускаем программу WinHEX и перетаскиваем в неё туда файл игры Contra (U) [!].nes.3: Появится много чисел и букв, это называется НЕХ-Кодами.4: Далее в меню программы жмём Навигация > Перейти к смещению, появится окно.5: Вводим в поле наше смещение 01DA13 и жмём ОК (Это смещение выдал наш отладчик в информации или где мы создавали Game Genie код, там он тоже отображался пока игра была запущена).6: И мы сразу перейдём на наше смещение и увидим знакомый нам код инструкции D6 32.7: Заменяем D6 на 60 и жмём в программе WinHEX сохранить, то есть жмём на дискетку с изображением верхнем в левом углу программы.Вот и всё, закрываем программу WinHEX, запускаем эмулятор с игрой и наслаждаемся.
  39. 5 баллов

    Версия 3.0

    50 раз скачали

    Версия игры 1.5 [Steam] [РУ] - Бесконечные боеприпасы - Скорострельность на всех видах оружия - Спидхак - Без отдачи - Супер точность - Абсолютное бессмертие и без урона - Призрак (каспер мод) - Бесшумность - Заморозка прицела (для снайперских винтовок) - Высокий прыжок - Без перегрева (для пулеметов) - Умный триггер бот Инструкция по запуску: - Запустить игру - Запустить файл JHInject.exe (Необходимы права администратора) Скрыть / Показать меню клавиша INSERT
  40. 5 баллов
    Возможность кооперативного прохождения сюжета: F.E.A.R. F.E.A.R. Extraction Point F.E.A.R. Perseus Mandate Для запуска нужна версия от GOG "F.E.A.R. Platinum" 1: перейти в папку "FEARXP2" 2: переименовать "StringEditRuntime.dll" в "StringEditRuntime_.dll" и "Default.archcfg" в "Default_.archcfg" 3: добавить "Default.archcfg", "StringEditRuntime.dll", "FEARXP2.cmd", "FEARServerXP.cmd" 4: запустить игру "FEARXP2.cmd" 5: Multiplayer -> Host -> LAN или через инет (нужно открыть порт), Bandwidth T3 6: Multiplayer -> Client Settings -> Player name: ник, CD Key: ник или случайный набор символов (должно быть уникально на игрока) 7: перейти в "FEARXP2\Config\ServerOptions", открыть "ServerOptions0000.txt" добавить вверху и сохранить: [Extra] SyncObjects=0 CoopMode=1 BotsMP=0 8: запустить сервер "FEARServerXP.cmd" 9: подключится к серверу, играть автор: vityacv тест: gmz написано на: С, i686-w64-mingw32-clang++ source: https://github.com/Vityacv/fearservmod dll: https://github.com/Vityacv/fearservmod/blob/master/bin/StringEditRuntime.dll default.archcfg: https://github.com/Vityacv/fearservmod/blob/master/extra/Default.archcfg FEARXP2.cmd: start /b FEARXP2.exe -userdirectory Config FEARServerXP.cmd: start /b FEARServerXP.exe -userdirectory Config
  41. 5 баллов
    Вот тут показаны некоторые простые функции LUA и как сделать управление перемещением на примере игры Terraria. Первая часть: Вторая часть:
  42. 5 баллов
    Итак, начнем с самого начала Когда-то очень давно я начал играть в игру под названием 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
  43. 5 баллов
    Второй урок готов! Третий будет сегодня чуть-чуть по позже К сожалению данный урок пришлось клеить из кусков, т.к. немного косячил Надеюсь в дальнейшем буду записывать целиком, с первого дубля
  44. 5 баллов
    Assassin's Creed 4 Black Flag v1.02 Plus 20 Trainer HOME ~ Активировать Трейнер NumPad 1 ~ Бессмертие NumPad 2 ~ Без Перезарядки NumPad 3 ~ Бесконечные Патроны/Бомбы NumPad 4 ~ Бесконечные Деньги NumPad 5 ~ Бесконечные Ресурсы NumPad 6 ~ Невидимость NumPad 7 ~ Бесконечный Кислород NumPad 8 ~ Бессмертие Для Корабля NumPad 9 ~ Без Перезарядки Орудий Корабля NumPad 0 ~ Заморозить Таймер NumPad / ~ Супер Скорость NumPad * ~ Супер Прыжок Numpad + ~ Заморозить Всех Numpad - ~ Быстрая Ходьба Numpad . ~ Убийства с Одного Удара Page Up ~ Замедлить Время Page Down ~ Ускорить Время End ~ Бесконечное Действие Снотворного F11 ~ Всегда День F12 ~ Всегда Ночь СкачатьAssassins Creed 4 Black Flag v1.02 Plus 20 Trainer.rar
  45. 5 баллов
    С Днем Победы! Этот день был мечтой миллионов наших людей, надеждой, которой жили и ради которой умирали. И вот уже много лет мы вновь и вновь празднуем День Победы. Хочется пожелать мирной, счастливой, долгой жизни, добра, процветания и патриотизма, достойного памяти наших победивших соотечественников!
  46. 5 баллов
    Название: I Am Alive Добавил: CuBiC Добавлен: 21 апр. 2015 Категория: Трейнеры для PC игр 'F1' - Toggle Inf. Health (Бесконечное здоровье [Вкл./Выкл.]) 'F2' - Toggle Inf. Stamina (Бесконечная выносливость [Вкл./Выкл.]) 'F3' - Toggle Inf. Ammo (Бесконечные патроны [Вкл./Выкл.]) 'F4' - Toggle Inf. Replays (Бесконечные попытки [Вкл./Выкл.]) P.S.: exe name "IAmAlive_game.exe"! Нажмите здесь, чтобы скачать файл
  47. 5 баллов
    Версия игры 1.0; версия трейнера 1.0 +6; дата создания 04.11.2011 Описание: 1) Деньги 2) Качок 3) Полночь 4) Полдень 5) Толстяк 6) Худой Трейнер:gtatrn.rar