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


Представляем Leya: мета-статистический язык, подобный Lisp
Я создаю язык своей мечты. Последние пару недель я наслаждался мощью GNU Common Lisp. В Common Lisp весь код представляет собой список, который является типом данных в списке. По сути, программы на Лиспе - это просто набор аргументов внутри списков. Это, прежде всего, делает Лисп чрезвычайно жизнеспособным языком для метапрограммирования. Дополнительным дополнением к этому эффекту являются макросы Лиспа. Макросы Lisp упрощают вызов подпроцессов из языка и использование кода в..

Позвони и повтори
На основе этого ответа Stack Overflow и этого ответа Stack Exchange Так же, как cmp и jl , инструкции call и ret выполняют множество задач, используя одну инструкцию, поэтому немного сложно понять, что они делают (если вы еще не знаете об этом). Если вы посмотрите на соглашение о вызовах cdecl для Intel x86 , там говорится, что новая функция сначала поместит содержимое ebp в стек, а затем вытолкнет его обратно в ebp, когда это будет сделано для его восстановления, например..

Вызывающий абонент сохранен по сравнению с Вызываемый абонент сохранен
На основе этого ответа Stack Exchange. Хотя большую часть времени мы храним наши данные в памяти (фрейме стека), также естественно использовать регистры для быстрого доступа. Согласно CS:APPv3, в ЦП обычно имеется шестнадцать межрегистровых регистров: восемь из них используются для более конкретных целей, а остальные восемь могут использоваться для хранения. Из этих восьми регистров два помечены как caller save d, а шесть помечены как callee save . Но почему, интересно. Какая между..

Записи с использованием современных двоичных файлов
Это первая статья Инструменты и базовый обратный инжиниринг , подготовленная RPISEC , которая является подразделом курса Современная эксплуатация двоичных файлов . Ссылка лекций: - http://security.cs.rpi.edu/courses/binexp-spring2015/ Все лекционные материалы и другие необходимые файлы доступны по указанной выше ссылке для ознакомления. _________________________________________________ Следующая запись ➡️ crackme0x00a Сбор информации с помощью команды file $file..

Основы языка ассемблера: часть 1
Основы языка ассемблера 1- Система счисления Концепция виртуальной машины в языках ассемблера: Компьютерное оборудование и программное обеспечение связаны друг с другом посредством концепции, называемой Virtual Machine . Чтобы понять эту концепцию, рассмотрим программу, написанную на языке высокого уровня, таком как C++ или java. Теперь мы уже знаем, что компьютер выполняет инструкции в машинном коде, поэтому для преобразования этого кода высокого уровня в машинный код мы можем..

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

Обратный инжиниринг 0x0: Введение. Регистры процессора
Это первый урок о реверс-инжиниринге (RE). Зачем нам это нужно? Обычно для использования двоичных файлов (взлом приложений) или анализа вредоносных программ (чтобы узнать, как работают вредоносные программы). Кроме того, он используется для исправления ошибок, но очень мало программистов, которые используют отладку (исправление ошибок с помощью бинарного анализа). В общем, используя RE, чтобы понять, как работает бинарная программа, получите ее нормальный код (C ++, Python, Java). Итак,..