Timofej3255

Timofej3255

На Пикабу
Дата рождения: 31 марта
70 рейтинг 3 подписчика 42 подписки 8 постов 0 в горячем
Награды:
5 лет на Пикабу
3

Справка по Ассемблерным инструкциям

Если честно, то я не знаю что выкладывадывать. Но я попробую выложить это. Писал всё сам.

Команда cmp

Команда cmp позволяет сравнивать между собой регистры. Результаты этой команды записиваются в флаги-регистры. Эта команда предназначена для выполнения условных переходов (jz,jg  и. т. д.)


cmp (первый регистр), (второй регистр)

Команда call

Команда call позволяет выполнить переход, при этом место до перехода помещается в стек


call (адрес, или label)

Команда ret

Команда ret "вытаскивает" из стека адрес (по техническому "возврат из ближней процедуры")(который появляется при помощи команды call) и  выполняет адрес который был до перехода + 1 шаг. Такую задачу также выполняют команды retf,retn

Команда push, pop

Эти команды позволяют взаимодействовать со стеком, push  - записывает значение, а pop - берёт значение из стека соотвественно.

Команда je, jz - перейти если равно

Команда jne,jnz - перейти если равно

Команда jo - Перейти если будет переполнение (в основном при используется для арефметических операций)

Команда mov  - Перенос регистра с одного места на другое (Не путайте с дубликацией регистра)


mov (в),(из)


Команда lea - Выполняет тоже самое что и mov, но появляется возможность изменять регистры


lea (регистр) [Регистр и арефметические действия (+,-)]

Команда syscall - Выполняет системный вызов. аргументы не требуется. Обычно не используется.

Команда sysenter - Тоже самое что и syscall, но эта команда не во всех системах может работать/

Команда int - Одна из извесных команд. генерирует программное прерывание


int (прерывание,например 21h)

Команда int3 - Может использоватся как пустышка, при вызове его программа останавливается и генерирует исключение.

Команда DB - По сути это не команда, предназначена для хранения данных. Может использоватся как пустышка.


DB (данные)

Обратите внимание что не все команды могут быть во всех версиях ассемблера. Например есть синтаксис (AT&T), который сильно отличается от того, что я написал.

Всем хорошего.

Показать полностью
17

Реверс инженеринг в doom 1

Как то раз ковырялся в коде и увидел это

Хм... В doom-е есть анти пиратская защита? Давайте посмотрим...

И так, что-бы вас не путать скажу, что cmp - это команда сравнения которая записывает в регистры результаты сравнения. Затем используется jz (Jump if zero), если сравнение оказалось верным (Переход если ноль ). Попробуем включить антипиратскую защиту, и посмотрим что будет.

А вот и кстати ещё одна проверка по переменной.

Вот так. Мы его нашли. В регистр esi записывается 1, а потом данные регистра esi переносятся в некую переменную. Попробуем изменить значение.

Отлично! Всё сделано! Сохраняем изменения и смотрим!

Увы, но видимо разработчики и/или пираты очень были проворны и похоже то значение которое я изменил было не одним. Хорошо, пойдём другим путём.

Что делаем? Убираем проверку.

Как видите, вместо перехода стоит nop (nope) и теперь проверка не будет работать. Я оставил cmp просто потому что было лень убирать ;D (он не влиет на работу). И так смотрим что получилось

Всё работает. Теперь это предупреждение будет появляться каждый раз когда будете запускать игру. Вот как то вот так. Думаю что возможно он вам был "полезен", а также в том вы узнали что такое на практике реверс инженеринг. Сделано при помощи ida, но в x64dbg тоже есть возможность "патча" файлов

Показать полностью 8
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества