[Перевод] Пишем на C самоизменяющуюся программу x86_64
«Зачем вообще писать программу, меняющую код в процессе выполнения? Это же ужасная идея!»
Да, всё так и есть. Но это и хороший опыт. Такое делают только тогда, когда хотят что-то исследовать, или из любопытства.
Самоизменяемые/самомодифицируемые программы не обладают особой полезностью. Они усложняют отладку, программа становится зависимой от оборудования, а изучение кода превращается в очень утомительный и запутанный процесс, если только вы не опытный разработчик на ассемблере. Единственный разумный сценарий применения самоизменяемых программа в реальном мире — это механизм маскировки зловредного ПО от антивирусов. Моя цель исключительно научна, поэтому ничем подобным я заниматься не буду.
Предупреждение: в этом посте активно используется язык ассемблера x86_64, в котором я ни в коем случае не являюсь специалистом. Для написания статьи мне пришлось изучать приличный объём материалов, и, возможно (почти наверняка), в ней есть ошибки. Читать дальше →
Источник: Хабрахабр
Похожие новости
- Почему безопасность на этапе релиза обходится в десять раз дороже и как это исправить
- Как пчёлы, муравьи и рыбы привели нас к мультиагентному ИИ — и почему его так трудно защитить
- ИБ глазами архитектора: между «карточным домиком» и «бетонным саркофагом»
- ИИ-браузер: сотрудник, который ходит по сайтам, кликает баннеры и верит скидкам 90%
- Как одна кривая регулярка может «положить» ваш сервер: разбираем уязвимость ReDoS
- Я открыл боевую базу своего clipboard-sync, чтобы показать, что он знает о вашем пароле. Ответ: ничего
- Интернет выключили целиком: офлайн-чат на Bluetooth и Wi-Fi Direct, и почему мы не обещаем mesh на весь город
- Muxalma — обмен пакетами данных через общее хранилище
- Western Digital создала жесткий диск с защитой от квантовых атак: разбираем, как он работает
- Как платформа управления AI-агентами будет справляться с нагрузкой: архитектура без магии