asm

Xakep #259
КодингДля начинающих

Погружение в ассемблер. Зачем учить ассемблер в 2020 году

Ты решил освоить ассемблер, но перед этим хочешь понять, что тебе это даст как программисту? Стоит ли входить в мир программирования через ассемблер, или лучше начать с какого-нибудь языка высокого уровня? И вообще, нужно ли знать ассемблер, чтобы стать полноценным программистом? Давай разберемся.

Xakep #259
КодингДля начинающих

Погружение в ассемблер. Сокращаем размер программы

Из этой статьи ты узнаешь несколько трюков, которые помогут тебе сокращать размер ассемблерных программ. Попутно окунешься в настроение «Клуба моделирования железной дороги» Массачусетского технологического института, где такие трюки в свое время ценились особенно высоко.

Xakep #258
КодингДля начинающих

Погружение в ассемблер. Работаем с большими числами и делаем сложные математические вычисления

Как ты знаешь, регистры процессора 8088 — 16-битные. Однако при необходимости ты можешь работать через эти регистры не только с 16-битными числами, но и с числами большей разрядности: и с 32-битными, и даже более крупными. В этой статье я сначала расскажу как, а затем мы нарисуем знаменитый фрактал — множество Мандельброта.

Xakep #258
КодингДля начинающих

Погружение в ассемблер. Учимся работать с памятью

В этой статье я познакомлю тебя с сегментной адресацией и сегментными регистрами, расскажу, как распределяется первый мегабайт оперативной памяти, и покажу получение прямого доступа к видеопамяти в текстовом режиме. Но главное — мы поностальгируем по фильму «Хакер» и напишем психоделическую программу, которой позавидовали бы его герои!

Xakep #257
КодингДля начинающих

Погружение в ассемблер. Как работают переменные, режимы адресации, инструкции условного перехода

На ассемблере ты можешь хранить переменные двумя способами: в регистрах и в памяти. С регистрами все понятно, а вот с памятью могут возникнуть проблемы. Также ты узнаешь два способа размещения переменных, которыми пользоваться нельзя, и три — которыми можно, какие бывают режимы адресации и как это знание поможет тебе кодить на ассемблере более эффективно.

Xakep #256
КодингДля начинающих

Погружение в ассемблер. Осваиваем арифметические инструкции

Прочитав эту статью, ты научишься пользоваться арифметическими и логическими инструкциями, а также инструкциями сдвига. Попутно узнаешь, как создавать подпрограммы. А в конце напишешь простенькую игрушку «Угадай число».

Самый маленький шелл-код. Создаем 44-байтовый Linux x86 bind shellcode

Ты наверняка знаешь, что практически каждый эксплоит содержит в своем составе так называемый shell-код, выполняющийся при работе эксплоита. Может показаться, что писать shell-код — удел избранных, однако все не так страшно. В этой статье я расскажу, как написать простой bind shellcode, после чего мы его доработаем и сделаем одним из самых компактных в своем классе.

ESIL + radeco IL. Используем radare2 для эмуляции и декомпиляции

Много кто помнит черно-белый интерфейс SoftICE с просмотром дизассемблерного листинга и содержимого регистров. Еще больше человек знают об IDA Pro (декомпилятор не рассматриваем) и бессменном objdump (в случае линуксоидов). Однако времена ручного разбора ассемблера прошли. Сейчас большую популярность приобрели инструменты преобразования нативного кода в некое абстрактное представление для упрощения анализа. Подобные инструменты используются повсеместно — от набора компиляторов на основе LLVM до декомпилятора HexRays. В данной статье я попытаюсь объяснить основы этого метода на примере ESIL от проекта radare2.

Еженедельный дайджест

«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
7690 р.
на год
720 р.
на месяц
90 р.
за 1 статью

«Хакер» в соцсетях

Telegram ВКонтакте Twitter Facebook

Материалы для подписчиков