Главная assembler

assembler

Xakep #262

Триальный конь. Как сломать trial, защищенный Enigma Protector

Популярный среди разработчиков софта протектор Enigma предлагает несколько вариантов защиты приложений. Один из них — установить пробный режим с ограничением на количество запусков, дней использования или рабочего времени. Кажется, преодолеть такую защиту непросто. Однако для настоящего исследователя нет преград!

Xakep #261

Больше не энигма. Ломаем защиту приложений Enigma x64 актуальных версий

Многие программы используют различные механизмы антиотладки, из-за которых подступиться к ним становится непросто. Сегодня мы поговорим о том, как вскрыть популярную у разработчиков защиту Enigma версии 5 и выше, использующую продвинутые инструменты противодействия анализу и взлому.

Xakep #261

Фундаментальные основы хакерства. Идентификация библиотечных функций

Библиотечный код может составлять львиную долю программы. Ясное дело, незачем тратить на него наше драгоценное время. Однако как быть, если дизассемблер неправильно распознал имена функций? Изучать многотонный листинг самостоятельно? У хакеров есть проверенные методы решения подобных проблем — о них мы сегодня и поговорим.

Xakep #259

Фундаментальные основы хакерства. Распределение динамической памяти и указатели

Как работает выделение и освобождение памяти? Как распознать операторы работы с памятью, используя дизассемблер? Чтобы во всем этом разобраться, нам предстоит разобрать механизмы распределения памяти двух самых популярных компиляторов и выявить различия в их работе. Внимание: в статье тебя ждет множество дизассемблерных листингов и кода на C++.

Xakep #259

Качественная склейка. Пишем джоинер исполняемых файлов для Win64

Представим, что нам нужно запустить некий зловредный код на машине жертвы. Самым простым вариантом будет вынудить пользователя сделать это самостоятельно, но вдруг он не любит запускать сомнительное ПО? Тут-то и пригодится джоинер — тулза, которая умеет скрытно встраивать зловредный код в безобидные на первый взгляд файлы.

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

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

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

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

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

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

Xakep #258

Фундаментальные основы хакерства. Как идентифицировать структуры и объекты в чужой программе

Когда разработчик пишет программу, он имеет возможность использовать такие достижения цивилизации, как структуры и классы. А вот реверсеру это лишь осложняет жизнь: ему ведь необходимо понимать, как компилятор обрабатывает высокоуровневые сущности и как с ними потом работает процессор. О способах найти в бинарном коде объекты и структуры мы и поговорим.

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

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

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

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

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

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

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

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

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

Xakep #256

Фундаментальные основы хакерства. Учимся идентифицировать конструкторы и деструкторы

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

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

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

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

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

Погружение в ассемблер. Делаем первые шаги в освоении асма

Ты решил освоить ассемблер, но не знаешь, с чего начать и какие инструменты для этого нужны? Сейчас расскажу и покажу — на примере программы «Hello, world!». А попутно объясню, что процессор твоего компьютера делает после того, как ты запускаешь программу.

Xakep #255

Фундаментальные основы хакерства. Какие бывают виртуальные функции и как их искать

Если функция объявляется в базовом, а реализуется в производном классе, она называется чисто виртуальной функцией, а класс, содержащий хотя бы одну такую функцию, — абстрактным классом. Язык C++ запрещает создание экземпляров абстрактного класса, да и как они могут создаваться, если по крайней мере одна из функций класса не определена?

Xakep #253

МикроБ. Пишем бейсик на ассемблере и умещаем в 512 байт

Хочешь попрактиковаться в кодинге на ассемблере? Давай создадим интерпретатор бейсика и запустим его прямо из загрузочного сектора твоего компьютера, уместив его в 512 байт. Скорее всего, это будет самая сложная программа в твоей жизни, и когда ты создашь ее своими руками, сможешь без зазрения совести называть себя хакером!

Xakep #253

Фундаментальные основы хакерства. Идентификация стартового кода и виртуальных функций приложений под Win64

С какой функции начинается выполнение Windows-программы? Нет, не WinMain! На самом деле первым управление получает стартовый код, скрыто вставляемый компилятором. Выполнив инициализационные процедуры, он вызывает WinMain, а после ее завершения вновь получает управление. И это кое-что значит для хакера.

Xakep #252

Floppy Bird. Пишем на ассемблере клон игры Flappy Bird, который уместится в бутсектор

Хочешь попрактиковаться в кодинге на ассемблере? Давай вместе шаг за шагом создадим игру и запустим ее прямо из загрузочного сектора твоего компьютера. Если ты думаешь, что 512 байт маловато для полноценной игры, не спеши с выводами. К концу статьи ты сможешь сделать ее своими руками!

Xakep #246
ВзломДля начинающих

В королевстве PWN. Препарируем классику переполнения буфера в современных условиях

Сколько раз и в каких только контекстах не писали об уязвимости переполнения буфера! Однако в этой статье я постараюсь предоставить универсальное практическое «вступление» для энтузиастов: от существующих на данный момент механизмов безопасности компилятора GCC до точечных особенностей разработки бинарных эксплоитов для срыва стека.

Xakep #240

Вредоносный код в овечьей шкуре. Как работает атака на анклав SGX

За годы хаотичной эволюции набор команд ассемблера x86-64 стал порождать самые причудливые сочетания. Сегодня мы рассмотрим творческий подход к использованию TSX-инструкций изнутри анклавов — защищенных участков памяти. Результатом будет рабочий эксплоит, который позволит выполнять любой код с привилегиями хост-приложения.

Xakep #238
ВзломДля начинающих

Фундаментальные основы хакерства. Продолжаем осваивать отладчик

В предыдущих статьях мы познакомились с двумя основными типами хакерского инструментария: дизассемблером и отладчиком. Первый служит для статического изучения программного обеспечения, тогда как второй — для динамического. В третьей статье цикла мы продолжим изучать глубинное бурение чужого кода.

Xakep #237

Энкодеры msfvenom. Разбираемся с кодированием боевой нагрузки при бинарной эксплуатации

Генерация полезной нагрузки — неотъемлемая часть эксплуатации. При использовании модулей Metasploit пейлоад генерируется автоматически, достаточно выбрать тип и задать некоторые переменные. В этой статье мы попробуем разобраться с ролью энкодеров в бинарной эксплуатации и рассмотрим несколько реальных примеров энкодинга на боевых эксплоитах.

Xakep #236
ВзломДля начинающих

Фундаментальные основы хакерства. Знакомство с отладчиком

Помимо дизассемблирования, существует и другой способ исследования программ — отладка. Изначально под отладкой понималось пошаговое исполнение кода, также называемое трассировкой. Сегодня же программы распухли настолько, что трассировать их бессмысленно — с изучением алгоритма программы эффективнее справляется интерактивный дизассемблер (например, IDA).

Xakep #235
ВзломДля начинающих

Фундаментальные основы хакерства. Проверка аутентичности и базовый взлом защиты

Пятнадцать лет назад эпический труд Криса Касперски «Фундаментальные основы хакерства» был настольной книгой каждого начинающего исследователя в области компьютерной безопасности. Редакторы «Хакера» попытались обновить этот объемный труд и перенести его из времен Windows 2000 и Visual Studio 6.0 во времена Windows 10 и Visual Studio 2017.

Xakep #231

Давай напишем ядро! Создаем простейшее рабочее ядро операционной системы

Разработка ядра по праву считается задачей не из легких, но написать простейшее ядро может каждый. Чтобы прикоснуться к магии кернел-хакинга, нужно лишь соблюсти некоторые условности и совладать с ассемблером. В этой статье мы на пальцах разберем, как это сделать.

Погружение в assembler. Полный курс по программированию на асме от ][

Эту идею мы вынашивали долго. Наверное, несколько лет. С одной стороны, ассемблер — это круто. С другой стороны — актуальных руководств по асму, в том числе издания этого века, достаточно. Но все сомнения разрешил успех цикла статей по реверсу малвари: оказалось, что и сейчас, в XXI веке, тру-крякеры все еще не сдали своих позиций!

Xakep #223

Полет «Колибри». На что способна ОС, целиком написанная на ассемблере

Сегодня в нашей кунсткамере любопытный образчик — операционная система, написанная на чистом ассемблере. Вместе с драйверами, графической оболочкой, десятками предустановленных программ и игр она занимает меньше полутора мегабайт. Знакомься — исключительно быстрая и преимущественно российская ОС «Колибри».

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

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

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

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

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