Публикации по теме '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..