[Перевод] Пишем на C самоизменяющуюся программу x86_64
«Зачем вообще писать программу, меняющую код в процессе выполнения? Это же ужасная идея!»
Да, всё так и есть. Но это и хороший опыт. Такое делают только тогда, когда хотят что-то исследовать, или из любопытства.
Самоизменяемые/самомодифицируемые программы не обладают особой полезностью. Они усложняют отладку, программа становится зависимой от оборудования, а изучение кода превращается в очень утомительный и запутанный процесс, если только вы не опытный разработчик на ассемблере. Единственный разумный сценарий применения самоизменяемых программа в реальном мире — это механизм маскировки зловредного ПО от антивирусов. Моя цель исключительно научна, поэтому ничем подобным я заниматься не буду.
Предупреждение: в этом посте активно используется язык ассемблера x86_64, в котором я ни в коем случае не являюсь специалистом. Для написания статьи мне пришлось изучать приличный объём материалов, и, возможно (почти наверняка), в ней есть ошибки. Читать дальше →
Источник: Хабрахабр
Похожие новости
- Инсайдеры vs хакеры — кто опаснее?
- [Перевод] Как я превратил простую HTML-инъекцию в SSRF с помощью рендеринга PDF
- Как стать менеджером по продукту, если вы никогда этим не занимались
- Юридический разбор формулировок нового закона о поиске экстремистских материалов
- О мессенджерах, блокировках и анонимности
- [Перевод] Архитектура корпоративных данных: AWS + Snowflake
- [Перевод] [Перевод] Поиск способов закрепления в Linux (Часть 2). Манипуляция учётными записями
- [Перевод] Обнаружение уязвимостей ИИ агентов. Часть II: Исполнение кода
- 72% российских компаний не готовы платить рекламным агентствам больше
- Секретные ингредиенты безопасной разработки: исследуем способы точного и быстрого поиска секретов