-
Постов
2 999 -
Зарегистрирован
-
Победитель дней
129
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент MasterGH
-
К сожалению, я с понедельника ограничен по времени и силам. Началась рабочая неделя. На данное время интересной информации по ломанию игрушек у меня нет. Надо наработать схему, по которой можно будет по происходящим действиям в игре искать функции, повторять их, не повторять, повторять с измененными аргументами... и прочее. Пока этой схемы нет и все прощупывается. В общем если что-то толковое появиться, то будут статьи и возможно даже видео (в том числе и Fallout 3, и по Chicken Invaders 4, где шифрованные значения, и по Function Hacker).
-
Спасибо
-
Прогнал я Ultimap-ом игру. На игру кстати надо переключаться ALt+Tab иначе происходил выход в меню. Так вот, я уменьшал сердца пять раз и по счетчику отсеял инструкции. Они все на скриншоте. Интересно, что адрес на видео... вот он на скриншоте. Все эти инструкции вызывались ровно пять раз, пока корабль не сдох. Я поставил бряки на все эти инструкции и отпустил игру умерев. Тут же на первой инструкции в стеке засветилось 4 - расшифрованное значение. FunctionHacker я еще попробовал часов шесть назад. FunctionHacker или сейчас его называют CDA: Code Dynamic Analysis не выдерживает работы через какое-то время примерно 10 секунд и закрывает игру с ошибкой. В FunctionHacker все на интуитивном уровне было понятно. 1. Подключаем процесс. Снимаем все галочки с регионов памяти и ставим только одну на главном exe модуле игры с правами на выполнения кода (зеленый цвет) 2. Жмем старт 3. Быстренько умирает три раза 4. В фильтре пишем от трех до трех Все. Игра правда у меня закрывается все равно. Фильтры еще можно ставить по предполагаемым числам в аргументах функций. Но этого можно не делать Вот сравнение Ultimap и CDA Много инструкций CDA не увидел. Возможно CDA показал достаточные функции, а Ultimap избыточные, я не проверил. Ultimap показал много инструкций и главное не вылетал через 10 секунд. Ultimap сегодня показал мне BSOD в три ночи и потом после ресета комп не запустился. Я думал, все приплыли. Но после еще одного рестарта все заработало.
-
Просьба модераторам в FAQ написать как искать в Гугле текст на нашем форуме [ваш текст без квадратных скобок] site:forum.gamehacklab.ruПример поиска слова "ROM" ROM site:forum.gamehacklab.ru
-
Данный инструмент позволяет найти call-ы и ret-ы в игре, которые связаны с каким-то событием в игре. call - вход в ветвь кода, ret - выход из ветви кода. Описание функций (пока не полное) int Summ(int arg1, int arg2){ return arg1 + arg2;}int sum = Summ(5, 5)
-
Очень хорошо, что понятно. Больше ничего понимать и не надо. Так как поиск адреса у игр может быть разным и зацикливаться на этом наверно не стоит Если не получается найти адрес зашифрованного значения здоровья, то смотрим на инструкции 0044DB20 - 8B 81 04010000 - mov eax,[ecx+00000104] 0044DB26 - 33 81 80000000 - xor eax,[ecx+00000080] Идем в дизассемблер на инструкцию 0044DB20. Далее просмотреть адреса в квадратных скобках и один из них будет шифрованным значением здоровья.
-
1. В первый пост я добавил ссылку на перевод всего сайта, потому что удобней читать, когда соблюдено форматирование. Если на русском не понятно, то наводим мышкой и смотрим исходный текст, пытаемся сами перевести по логике. 2. Игра называется Chicken Invaders 4 v4.00. Советую установить игру. Проделать действия, которые описал автор. Лучше один раз сделать самому и увидеть как это работает и как работать с трейсером. Объясню статью, для тех кому сложно разобраться. Самая важная часть статьи - это видео, на котором показан принцип работы с логами трейсера и отладчиком. Остальной текст не важен. Есть игрушка Chicken Invaders 4 v4.00. Есть адрес здоровья зашифрованный. Нашли его как показано в первом посте. Поставили бряк. Посмотрели стек. В стеке увидели расшифрованное значение. Не стали делать инъекцию кода, а решили найти инструкцию, которая пишет в стек незашифрованное значение. Вот на видео показано как найти инструкцию push eax, которая запишет незашифрованное значение. Еще раз повторю, важно понять как работать с трейсом. Видео начинается с того, что автор копирует стековый адрес ESP в таблицу CE и изменяет его на адрес 0x0012EB20. Автор будет постоянно следить за этим адресом на видео. Автор хочет найти инструкцию, которая записала незашифрованное число жизней в этот адрес. Это можно сделать как минимум двумя способами. Первый - через условный брейкпоинт на запись, который автор не показал как сделать. Второй - через пошаговую отладку + трейсер. Первый способ на мой взгляд хуже, т.к. он наудачу. Ведь поставив бряк на запись на 0x0012EB20 можно прерваться много раз и не на исследуемой ветке кода. А вот второй способ четко ведет по ветке кода. Сначала мы поднимается вверх по трейслогам из глубины ветки кода пока по адресу 0x0012EB20 перестанет показываться здоровье. И вот появился мусор "6209463". Теперь идем вглубь кода F7 и нажимаем F8 двигаясь по шагам, пока по адресу 0x0012EB20 не появится значение жизни - первая запись в стек. И вот мы тут! 00591203 - 8B 44 24 24 - mov eax,[esp+24] 00591207 - 8D B5 E0010000 - lea esi,[ebp+000001E0] 0059120D - 50 - push eax << четко тут запись в 0x0012EB20, в стек произошла запись 0059120D - 50 - push eax запишет первый раз незашифрованное здоровье. Нужно понять только как мы сюда дошли рабтая с трейсером и пошаговой отладкой. Больше ничего в этой статье понимать не нужно. Дальше идет тупая АА инъекция уже характерная только для этой игры. Я выложил эту статью только для того чтобы показать как работать с веткой кода, пошаговой отладкой, трейс логами.
-
Немного пояснений по Структурному пауку, которые мне удалось найти. Структурный паук В этой теме было две версии зачем он нужен от меня от и от Кодера. Насчет версии Кодера у меня нет практических подтверждений. На счет своей напишу, что моя версия точно не верная и сугубо теоритическая (не было времени это все проверять). В общем, структурный паук не может уточнять (менять) типы данных при каждом новом сравнении структур по базовый адресу и вообще он даже не для этого предназначен. А для чего?! На официальном форуме CE (тык): Своими словами. Основная задача структурного паука это поиск указателей от "базового адреса" к "конечному адресу" через уже известный "уровень глубины указателей". Этот поиск должен быть гораздо быстрее чем если делать это через стандартное окно поиска указателей. Человек с ником "mgr.inz.Player" (довольно опытный по CE, судя по его постам) привел пример. Если узнали "глубину уровня1" от "базового адреса1" до некоторого "адреса2 здоровья". Затем чтобы не искать цепочку указателей на адрес3 патронов долгим поиском указателей, мы можем в структурном пауке указать "базовый адрес1" (пологая что он будет базовым и для патронов), вписать предположительную ту же "глубину уровня1". Перейти в игру, менять оружие, грузить новые уровни игры и отсеивать, отсеивать пока не найдем указатель. Возможно даже можно и перезапустить игру, чтобы отсеять значения... Ultimap Ultimap тоже одна из новинок, которая еще не совсем понятна и на практике. Я думаю, автор темы тоже захочет узнать как этим пользоваться. Предположительно Ultimap позволит через отсев найти функции, которые вызываются игрой. Затем изучив этот вызов call, передаваемые аргументы можно повторить этот вызов новым потоком игры из скриптов CE АА или CE Lua. Например, подобрать какую-то вещь, когда она не существует. Купить вещь, когда даже у магазина покупки вещей не стоим. Т.е. можно собрать инвентарь нужных вещей, которые нужно искать по карте. По руководству из видео я нашел только одно на инглише. Здесь попытка повторить вызов диалога About из скриптов
-
Я бы посоветовал к прочтению Grom-Skynet-темы Как найти идентификатор игрока ( ID players )
-
Ссылка на источник Гугл-Переводчик Моё объяснение статьи(!) Уточнение. Зашифрованный адрес количества сердец найти не получилось способом Geri. Есть другой способ. Смотрим на инструкции 0044DB20 - 8B 81 04010000 - mov eax,[ecx+00000104] 0044DB26 - 33 81 80000000 - xor eax,[ecx+00000080] Идем в дизассемблер на инструкцию 0044DB20. Далее просмотреть проскакивающие адреса в квадратных скобках умерев персом и один из них будет шифрованным значением здоровья. Подробнее на скринах Статья Geri еще написана была в 2011 году. О том как можно применять трейссер и пошаговую отладку. Есть даже видео ролик. Для счастливых обладателей знаний английского языка должно быть понятно. Ну а для тех кто не знает, тем надо подучить с гугл переводчиком. Спасибо Geri за интересную статью.
-
Условные брейпоинты в CE ставятся не как EDI==03B6228C, а как EDI==0x03B6228C Так же не правильно: 1. edi==03B6228C - регистры должны быть с большой буквы 2. Не должность быть русских символов например русская буква С и английская С 3. и вроде, не дложно быть пустых пробелов Также, советую помнить финт когда условный бряк очень сильно тормозит игру (такое бывало и часто). В этом случае поможет АА-инъекция. Позволяет сделать условие любой сложности и можно сравнить тот же EDI как cmp edi,03B6228Cje original codenop // сюда ставишь бряк на выполнение по F5 в дизассемблере CEnoporiginal code: Да, и глянь видео Xipho. Там вроде был пример по взлому со стеком. Это единственный пример ведо, если я не ошибаюсь, где был применен стек. Если это не то видео, то поищи еще. Я просто сейчас очень спешу. Даже Кенга не почитал выше.
-
1. Если говорить о данных в стеке, то проще представить, что остановив процесс игры по условному брейкпоинту, по адресу ESP хранятся только копии данных при перходах между call-ами. Эти копии могут быть временными и могут быть скоро стёртыми, и нигде более не существовать в памяти. Однако, могут быть и копии адресов или указателей, которые существуют на протяжении всей игры, т.е. данные по этим адресам актуальны долгое время до загрузки нового уровня игры или во время всей игры.
-
Понимаешь грязь она есть внутри людей, а не только в постах. К сожалению, грязь из людей не возможно вычистить, если они сами этого не хотят. Я не думаю, что есть проблема со флудом. Если бы она была и была критичной, то были бы предприняты меры. Модераторы и админы делают все, что в их силах. Если будет нужно, то введут и новые правила, и ограничения, и прочее... может быть только привязка к социальным сетям, где регистрация как правило по номеру телефона. Но оно вам надо? Если человек задает тупые вопросы по сто раз и это жестко не пресекается, значит так надо. На это могут быть множество причин. Одна из них, чтобы форум вам нравился и жил жизнью не администраторов и модераторов, а своей жизнью. Чтобы именно пользователи были бОльшей частью жизни форума. Пользователи, т.е. вы создаете жизнь форума - полезный этот форум или огромная куча флуда. Отчасти это решать вам. Насколько я помню хостинг позволяет хранить очень много данных. Те кто хотят злостно флудить, могут наверно быть в шоке, ведь они могут задавать тупые вопросы бесконечно. Если флуд вам мешает жить, а вы полны энергией помочь кому-нибудь, то вы можете написать статью, записать видео, сделать что-то полезное вместо того чтобы читать унылые сообщения. Так я недавно написал плагин Тини Дамер... Тем не менее флуд на самотек пускать не будем. Все в пределах правил форума. Если будет нужно, то будут новые правила. Так что все хорошо и проблем никаких нет.
-
Я думаю, из-за праздинков Xipho вас балует. Он очень добрый человек. Да и вообще, когда у человека хорошее настроение это очень сильно дает мотивацию всем, кто с ним рядом. Наказывая и ограничивая, это только ухудшает настроение всем. Если вы добрые и порядочные люди, то вам разрешают даже пофлудить. Если кто-то будет специально злостно флудить, то тех попросят не делать этого или придется наказывать
-
Мной удален подфорум . "Cheat Engine -> Поиск адресов, указателей, связей структур и фильтров Описание различных приёмов поиска в конкретных или общих случаях " Причина В форуме было две темы. Одна тема была с линками на поиск указателей на форум CE. На форуме CE умерли картинки и не удалось найти в Интенете. Вторая тема была по модернизации CE русской версии и то не доделана мной. В общем, т.к. нет активности подфорум мной удален. Темы перемещены в "Удаленные публикации". Информацию по поиску указателей и фильтров можно найти в других разделах используя поиск по форуму. АА-инъеции практически всегда делать гораздо быстрее и проще, чем тратить время на поиск указателей, хотя этот поиск как инструмент существует и продолжает оставаться в программах Cheat Engine, Artmoney и т.п.
-
Слова такие как ROM, NoCD и PORNO могут помочь пользователям? Вот это да... может неудачный пример. Вы понимаете, что назвав эти примеры, администрация не только должна оставить флуд контроль, но еще и вынуждена пояснить Вам что но-сиди и порнуха под запретом, а ром-ов вообще тут нет. Эти слова могут быть в названиях тем, но порнухи точно нет нигде. Защита форума не только от флуда, а от чрезмерной нагрузки и сотен попыток получить информацию для взлома форума отправляя неверный запрос. Очень много руководств по взлому форумов можно найти в Интернете.... В трейнермейкер группу попасть очень легко, а этих людей администрация форума не может знать лично всех. Я думаю флуд контроль снимать не стоит (мое имхо). Если что-то мешает поиску, то можно использовать Интернет поисковики, которые кешируют все темы на форуме.... Да, не удобно, но зато это защита. В общем это по части Xipho. Я думаю, такие вопросы лучше задавать лично ему.
-
Версия 1.2
235 раз скачали
Пошаговое руководство Функции: 1. Копирование участка виртуальной памяти фиксированной длины 2. Связывание адреса копированных данных с новой меткой 3. Возможность сравнивать дампы во время игры с любого доступного адреса (в том числе стека) 4. Возможность сравнивать сохраненные дампы структур после перезагрузки игры Основное назначение - снимать дампы со стека в пошаговой отладке по адресу ESP и сравнивать эти дампы в окне расструктуризации данных (Dessect Data/Structure). Таким образом можно найти сходства или различия в передаваемых аргументах функций, а также в адресах обратного вызова по инструкции ret. Сравнение аргументов может помочь определить указатели, смещения на данные. Сравнение адресов возврата может помочь определить развилки между ветками кода ботов и ветками персонажа за которого играете. Можно начать исследовать эту развилку для определения условий свой/чужой. Второе назначение - сравнивать дампы после перезагрузки игры. Сравнения дампов после перезагрузки, загрузки уровней игры, загрузки слотов сохранения, смены оружия, изменения в инвентаре, смены уровня героя и многие другие изменения после перезагрузки игры могут позволить найти отличия или совпадения данных структур от начала базового адреса структуры и обратить на них гораздо большее внимание среди данных в структуре Данные для ввода: Source Address - адрес с которого будет сниматься дамп Size dump - размер участка данных в байтах Register label - метка для обращения к адресу *Подсказки: 1. Плагин можно найти в первом окне дизассемблера в меню Tools (Утилиты). Окна-клоны дизассемблера не имеют подключенного подменю. 2. Зарегистрированные метки, которые вы забыли можно посмотреть и удалить через окно зарегистрированных меток "Symbol Config" (нажать на CTRL+U в окне дизассемблера) 3. Память дампов сама не очищается. Поэтому не рекомендуется снимать очень часто огромные дампы и тем самым засорять память. Если все же память переполнена, что мало вероятно, то просто перезапустить игру. -
Tiny Dumper ver 1.2 Ссылка для скачивания Tiny Dumper 1.2 Пошаговое руководство по Tiny Dumper
-
Для Painkiller - Battle out of Hell 1.64 1. Оконный режим можно сделать через 3DAnalyze.exe (если не работает, то через запуск админа) 2. Поиск в CE рабочих адресов здоровья, брони, патронов тип Double 3. Бряк на адресе здоровья показывает инструкции 1015CD11 - 8B 48 08 - mov ecx,[eax+08] - постоянно работает 1015CD17 - 8B 50 0C - mov edx,[eax+0C] - постоянно 1015C194 - 89 53 08 - mov [ebx+08],edx - при уроне (смотрим чему равен ebx) 1015C19C - 89 43 0C - mov [ebx+0C],eax - при уроне На всех адресах инструкций постоянно проскакивает огромное количество адресов и безусловно это все мешает исследовать. 4. Ставим бряк на инструкцию 1015C194 в дизассемблере нажав F5. Открываем окно бряков и пишем условие "EBX==0x00000000" где вместо нулей адрес из пункта 3. 5. Отпускаем игру по F9 и ждем пока по герою кто-нибудь ударит. После урона процесс игры останавливается и можно исследовать стек. Там по именам адресов, которые распознает CE видно, что во время удара мечом по главному персонажу вызывается какая-то функция связанная с физикой по понтеру из vTable (из таблицы виртуальных функций при наследовании и полиморфизме), потом вверх по стеку вызов на обновление MenuItem, затем идет вверх по стеку проверка, что если это не число, то ошибка (наверняка из-за Луа + С++ в игре с переводами из Double) и наконец идет запись в адрес здоровья. .... Что можно делать дальше: 1. Мы можем этот сктек с помощь CE Lua или CE AA скриптов скопировать в новую память. Затем скопировать стек для других случаев в другую новую память. Затем сравнить через окно расструктуризации Dessect Data/Structure. Возможно так можно найти зацепки для создания фильтров. После вызова vTable функции физики поток процесса игры вызывает апдейт для гуи в главном экране, а для ботов этого делать явно не будет (можно проверить через стек ботов). Можно исследовать это развилку для определения, кто свой, а кто чужой. 2. Пойти по пути последовательного поиска звеньев цепи указателя, поднимаясь на уровень выше и выше и сравнивания структуры для определения кто свой, а кто чужой. 3. Можно поискать инструкции, которые бы работали только с игроком или только те, которые работали с ботами. При этом надо еще постараться найти адрес здоровья ботов. Если что-то узнаю еще, то напишу...
-
Если это надо сделать на CE Autoassembler, то пример из справки с записью 16 байт из адреса 00410000. ReadMem examplealloc(x,16)alloc(script,2048)script:mov eax,[x]mov edx,[x+c]retx:readmem(00410000,16) //place the contents of address 00410000 at the address of XЕсли на Ассемблере, то укажи какой именно Ассемблер: fasm, masm, tasm и прочие... Хотя ты мог поискать как работать с память на WinAPI на интересующем Ассемблере.
-
AntonVit, я правильно понял, что теоретически с этой программой игрок-читер среди других игроков может против воли других игроков включать эти опции. Я правильно понимаю? Т.е. могут же быть люди, которые не хотят этих эффектов и вынуждены играть с ними или вынуждены покинуть игру?
-
У меня нет возможности проверить этот трейнер, но я думаю, это программа обманывает честных игроков. Xipho я думаю, доверился на слова и не стал проверять. AntonVit, меняя массу машин, повреждения, slow motion ты не получишь равзе больше шансов придти первым на финиш чем другие игроки без этого трейнера? Что все игроки в игре по своему желанию получают все эти способности или запрещают их через голосование? Я думаю, тут явно многое не досказано. По коллизиям не понятно, что там за настройки. Например убирая коллизии все могут срезать повороты или только только ты? Все например могут проходить сквозь друг друга отключая коллизии или только ты? Ну явно смысл игры ломается и явно нет никакой возможности нормальным игрокам не играть с теми кто играет с читами. Вот например есть игроки, которые не хотят, чтобы ты с читами срезал повороты лучше них и проходил сквозь их машины? Как им быть, они хотят играть честно с другими игроками по правилам игры без этих трейнеров. Они не хотят отключаться от игры, но ты случайно попал в командную игру к ним. Так же не понятно, что там с достижениями и открытиями трасс. Одни игроки честно открывают все с трудом играя друг с другом, а другие не играя друг с другом сразу получают возможность играть на закрытом контенте с опытными игроками? Тогда какое может быть соревнование опытного игрока с нубами на труднодоступных картах. Нубам-читерам на закрытых трассах делать обычно нечего - они все портят. Допустим все скачают этот трейнер, но тогда меняется смысл игры в лучшую сторону для тех у кого есть эта программа и в худшую для тех у кого нет или тех кто не хочет её пользоваться. В общем поясни толком, хоть в двух словах. Я не вижу никаких причин разрешать этот трейнер по твоему описанию в пером посте.
-
Теоретически можно спрятать скрипт, который должен выполниться хотя бы один раз перед запуском некоторых читов. Не надо будет пояснять, когда и зачем его активировать. За пример возьмем таблицу Remember Me от NullAlex. Если посмотреть таблицу, то активирующий скрипт или мастер скрипт спрятал две опции внутри себя. Читы внутри можно увидеть, если изменить опции отображении группы записей на более удобные или активировать мастер скрипт во время игры. Так вот. Можно сделать с виду упрощенный вариант Итак. 1. Мастер скрипт, который нужно активировать один раз перед запуском любого чита пишем Lua скриптом в форме показываемой по CTL+ALT+L. isMainScript = falsefunction CheckMainScript() if(not isMainScript) then isMainScript = false autoassemble([[ alloc(newmem,2048) label(returnhere) label(originalcode) //Бесконечное здоровье label(GodMode) label(health) registersymbol(health) //Убийство с одного удара label(OneHitKill) label(one_hit_kill) registersymbol(one_hit_kill) newmem: cmp [ecx+380],#100 jne OneHitKill jmp GodMode GodMode: cmp byte [health],0 je originalcode sub [ecx+0000037C],0 jmp returnhere OneHitKill: cmp byte [one_hit_kill],0 je originalcode mov [ecx+0000037C],edi jmp returnhere originalcode: mov edi,[ecx+0000037C] jmp returnhere // health: db 0 one_hit_kill: db 0 // "RememberMe.exe"+90BFBB: jmp newmem nop returnhere: ]]) endend[ENABLE]{$LUA}CheckMainScript(){$ASM}health:db 1[DISABLE]health:db 0[ENABLE]{$LUA}CheckMainScript(){$ASM}one_hit_kill:db 1[DISABLE]one_hit_kill:db 0
-
[ENABLE] {$LUA} print("ENABLE") print(getCEVersion()) if(myTimer == nil) then myTimer = CreateTimer(null, false) end myTimer.Interval = 1000 function FTimer() local memoryRecord = getAddressList().getMemoryRecordByDescription('Cheat0') memoryRecord.Active = false myTimer.Enabled = false print("Timer Stop...") end myTimer.OnTimer = FTimer myTimer.Enabled = true print("Timer Start...") {$ASM} // тут обычный АА-код [DISABLE] {$LUA} print("DISABLE") {$ASM} // тут обычный АА-код Test.CT