Публикации по теме 'assembly-language'


Компиляция AVM-байт-кода-переменных
Эта статья написана Ли Цзяньин (Лайт Ли) на китайском языке и переведена на английский Робби. Справочный исходный код: https://github.com/lightszero/neovmbook/tree/master/samples/compiler_il01 Теперь мы обсудим, как скомпилировать другую AVM с другого языка ассемблера. На самом деле разницы нет. Возьмем, к примеру, IL. Это также виртуальная машина стека. Есть много общего между инструкциями IL и AVM. В отличие от AVM, IL по-прежнему сохраняет модульную структуру..

Базовый обратный инжиниринг с использованием GDB
Этот блог теперь перемещен по адресу: https://theaveragenz.com/basic-reverse-engineering-using-gdb/ Обратный инжиниринг и анализ вредоносных программ в настоящее время становятся областями растущих исследований. Вот начальный шаг для всех, кто интересуется обратным инжинирингом. В этом руководстве я буду использовать отладчик GNU (GDB). Существуют и другие инструменты (которые могут упростить задачу), такие как IDA, Radare2 и т. д., которые тоже можно использовать! В этом..

Привет, мир… Не все так просто в сборке
Вступление В этом сообщении блога я рассмотрю программу Hello World на ассемблере (архитектура Nios II в стиле RISC). Хотя я не буду вдаваться в подробности того, что означает архитектура Nios II, важно упомянуть, что для запуска программы Hello World требуется компьютерная плата или симулятор, поддерживающий архитектуру Nios II. Я рекомендую использовать симулятор, найденный здесь . Hello World на других языках Hello World часто является первой программой, которую пишут новые..

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

C=64 Часть 3: Печать номера байта
У меня уже есть макрос для печати массива байтов (?text), поэтому далее я решил напечатать номер байта. Когда вы печатаете байт (я еще не знаю, как работать с числами, для которых требуется более 8 бит), вы обнаруживаете, что он состоит из одной, двух или трех цифр, например. 223 — это «2», «2» и «3», поэтому сначала вам нужно преобразовать номер байта в какой-либо печатный формат. Я подготовил макрос BYTE2STR для этой задачи. Я преобразую число, постепенно вычитая сотни, чтобы..

Обратный инжиниринг программного обеспечения
Что такое реверс-инжиниринг программного обеспечения? Это процесс взятия существующего двоичного исполняемого файла, исходный код которого недоступен, и попытки использовать дизассемблер или отладчик для восстановления деталей, касающихся его дизайна и реализации. Для этого нужно хорошо понимать язык ассемблера для этой конкретной платформы. Итак, давайте посмотрим, как типичная программа, написанная на C ++, преобразуется в машинный код: Обратный инжиниринг или декомпилятор..

СЛАЭ: Задание 4
Этот пост представляет собой анализ пользовательского кодировщика шелл-кода для Linux x86. Это необходимо для выполнения требования, указанного в вопросе 4. Создайте пользовательскую схему кодирования, такую ​​как «кодировщик вставки» и PoC, с использованием execve-stack в качестве кода оболочки для кодирования с помощью вашей схемы и выполнения. Шаги, которые мы будем использовать Используйте шелл-код execve-stack и получите шелл-код с помощью objdump 2. Используйте скрипт python..