-
Постов
1 635 -
Зарегистрирован
-
Посещение
-
Победитель дней
55
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент keng
-
Смещение мы считаем ручками, для обоих переходов. А потом только записываем.
-
Любой, например. Хоть стандартный виндовый, хоть какой-нибудь outpost, между ними не слишком много разницы.
-
Правильно настроенный фаерволл прекрасно защищает от большинства вирусов. От остального защищает софт с открытым иходным кодом или же из проверенных источников.
-
Предположу, что сам герой, координаты которого меняет скрипт, и дорожка следов за ним - это два разных объекта, и дорожке тоже нужно менять координаты.
-
Так это не входит в рамки объяснения работы сканера сигнатур. Проще говоря, у тебя есть функция, которая принимает аргументы и возвращает результат и есть массив из 100 разных аргументов. Чтобы получить 100 результатов работы функции, нужно вызвать ее 100 раз (для каждого из аргументов). Хоть циклом, вариантов - масса.
-
Привет! Сигнатура ищется через Cheat Engine или, например, через OllyDbg (есть для него плагин), при этом важно понять, как они работают. Насколько ты знаешь, скомпилированный ассемблерный код состоит из опкодов команд, адресов и смещений. Допустим, есть такой код: MOV EAX,EBX JMP 0x10 Перед тем, как просто копировать опкоды и использовать их в качестве сигнатуры, стоит немного осмотреть код и разобраться в нем. Первая команда поменяется только в каком-нибудь исключительном случае (скажем, очень большом патче для игры), а вот вторая может поменяться и при небольшом. Представим, что опкоды для второй команды выглядят примерно так: E900000010 E9 - опкод JMP, следующие четыре байта - адрес для прыжка. Эти четыре байта могут поменяться просто запросто - достаточно хотя бы один байт выше или ниже по коду добавить, потому что прыжок относительный (т.е. на некоторое количество байт вверх или вниз от текущего адреса). Такие вот вещи, которые могут легко и часто меняться (адреса и смещения в первую очередь) лучше загонять в wildcard, то есть сигнатура будет выглядеть так: E9???? Но в примере еще была команда MOV, опкоды которой можно взять целиком, я их сейчас придумаю из головы и получится как-то так: ABFFD9E3E9???? Вот и готово. Прежде всего такие сканеры должны искать определенную последовательность команд. В нашем случае это "MOV JMP", потом учитывать операнды, а только потом - адреса переходов и смещения в операндах. PS: Если ты не до конца понимаешь, как работает чей-то код, скрипт или любая методика взлома - лучше сидеть и задавать вопросы, пока тебе внятно не объяснят. Плох тот автор, который выкладывает готовое решение и не поясняет, как оно работает, или же не поясняет достаточно хорошо. Сначала разберись - потом используй сам и объясняй тем, кто еще не разобрался.
-
Привет! Код я прочитал по диагонали и могу тольк сказать, что все можно реализовать раз в пять проще. Поищи на форуме - есть и темы и видеоуроки, в том числе на C++. На самом деле кода там строчек 5, а не 50.
-
Наткнулся на хабрахабре, вот [ссылка]. У авторов игра была на html5, но идеи описаны довольно интересные.
- 3 ответа
-
- 3
-
-
Я так уже делал в некоторых своих скриптах, но никто не обратил внимание. (:
-
Полезная штука, спасибо.
-
Конечно, можно. Сделать можно все. что угодно. Просто подумай, как это должно и будет работать, а затем реализуй.
-
Или через FPU-инструкции, или же тупо через mov, но переведи руками float в decimal.
-
PS2-темы лучше перенести в раздел взлома эмуляторных игр. Я сам не знаю, насколько сильно отличаются консоли от PC, предположу, что не очень. По поводу смены уровня - или находится нечто, что меняется только с уровнем, или же обычное "изменилось\не изменилось" при смене уровня. Можно взять два сохранения, например, и загружаться\отсеивать.
-
Я попробую вечером написать статью на эту тему. Может, так проще будет. С картинками!
-
Какого именно?
-
Вообще, читайте документацию по командам, если не до конца уверены в том, как они работают. Пара "call-ret" существует аж в трех экземплярах, но в 99% случаев все работает без аргументов, т.е. просто call и просто ret. Мораль - сперва нужно разобраться в чужом исходнике, прежде чем его использовать.
-
Можешь голосование об этом устроить, но по моему опыту - приведенный пример оформления работает отлично.
-
Мастер все верно сказал, нужно внимательно посмореть на стек перед вызовом ret - на верхушке будет лежать адрес, куда передастся управление. Если не туда, куда нужно, то исправить.
-
Думаю, эту тему лучше оформить в виде одной большой шапки примерно такого вида: [Тема0] [Тема1] [Тема2] Где каждая тема будет ссылкой на, гм, тему на форуме или конкретный пост. Со временем тут будет довольно много информации, а крутить много страниц и постов в поисках интересного - не очень удобно.
-
Привет! В таких вопросах лучше указывать название игры. Предположу, что можно найти через что-нибудь, что не меняется от уровня к уровню. Например, структуру персонажа, у которого оружие. Или же найти, какая инструкция меняет уровень, а затем плясать оттуда. В итоге все сведется к фильтрам и указателям, потому что играм не очень выгодно самих себя запутывать - это только из ассемблера некоторые места кажутся сложными и нелогичными.
-
А сейчас как думаешь? (:
-
Если не знаешь, зачем, то и не надо. Ставь там 0 и все. Параметр не обязательно указывать, как и сказано в MSDN.