RU

Написал свой ассемблер, чтобы понять, откуда берётся ff010113. Почти половину моей программы он выдумывает

Написал свой ассемблер, чтобы понять, откуда в дизассемблере берётся ff010113. Заодно посчитал, сколько строк моей программы процессор вообще не уме…

RISC-Vассемблеркодирование инструкцийпсевдоинструкцииRV32Iкомпоновщикрелокацияbare metalQEMU
Habr
RU

[Перевод] skitter-creek-bath-salts — обход аппаратной изоляции памяти в современных CPU

Или как получить полный доступ к изнанке CPU через скремблирование DRAM — PSP, C6, микрокоду, среде SMM и всему остальному, что не попало на страниц…

ruvds_переводассемблеринформационная безопасностьобход защит cpuпроцессорынизкоуровневое программированиеработа с памятью
Habr
RU

64 байта и одна константа: разбор переключения контекста в ядре на Rust

В прошлый раз я писал про потерянное пробуждение и получил в комментариях справедливое замечание, что примитив там классический. Так и есть. Сегодня…

rustассемблерпереключение контекстаядрооперационные системысистемное программированиеx86-64no_stdfpuxsave
Habr
RU

Моя рекурсия зависла навсегда, и это был правильный результат

Написал рекурсию тем же приёмом, что во второй статье, и программа повисла навсегда: возвращаться ей было некуда. Чиню, завожу стек и по дороге выяс…

RISC-VQEMUbare metalассемблерстекрекурсиясоглашение о вызовахпереполнение стекаpsABI
Habr
RU

Двенадцать символов, двадцать один байт: как я научил голый RISC-V говорить «Привет, мир!»

Без библиотек, без обвязок, без операционной системы под ногами. Реальный код на реальном железе — ну, почти реальном. Пустая эмулируемая машина RIS…

RISC-VQEMUbare metalUARTассемблерUTF-8
Habr
RU

Копируем ключ без ключа: умный дубликатор 1-Wire на ассемблере AVR с ручным вводом и контролем CRC

Здравствуйте, уважаемые хабровчане! И снова новое устройство. И снова древний чип и ассемблер — на радость комментаторам. 😊 Сразу хочу расставить вс…

atmega8ассемблерavr1-wireds1990wh1602копировщик ключейdiyэлектроникасхемотехника
Habr
RU

[Перевод] Ghidra для реверса прошивок: практический гайд по восстановлению логики бинарника

В прошивках редко есть удобные символы и понятная точка входа, зато почти всегда остаются следы: строки, таблицы адресов, магические значения, обраб…

реверс-инжинирингGhidraпрошивкианализ бинарниковFreeRTOSRTOSдекомпиляцияассемблерBSim
Habr
RU

[Перевод] Что именно делал компилятор: как ассемблер помогает разобраться в производительности кода на C++

Расскажу вам одну историю о том, как смог прокачаться в качестве C++-программиста. Мне в этом помогло не чтение стандарта. Я тогда ещё не понимал до…

программированиекомпиляторыассемблервысокая производительностьоптимизацияc++
Habr