Как сломать инструкцию по сборке по заданному адресу в gdb?

0x0000000000400448 <main+0>: push %rbp 0x0000000000400449 <main+1>: mov %rsp,%rbp 0x000000000040044c <main+4>: mov x6,%eax 0x0000000000400451 <main+9>: leaveq 0x0000000000400452 <main+10>: retq ...

Что такое регистр %eiz?

в следующем ассемблерном коде, который я сбросил с помощью objdump: lea 0x0(%esi,%eiz,1),%esi что такое реестр %eiz? Что означает предыдущий код? ...

Что такое IACA и как его использовать?

Я нашел этот интересный и мощный инструмент под названием IACA (анализатор кода архитектуры Intel), но мне трудно это понять. Что я могу сделать с ним, каковы его ограничения и как я могу: использовать его для анализа кода на C или c++? использоват ...

Разница между rdtscp, rdtsc: memory и cpuid / rdtsc?

предположим, что мы пытаемся использовать tsc для мониторинга производительности, и мы хотим предотвратить переупорядочение инструкций. вот наши варианты: 1:rdtscp - это сериализация вызовов. Это предотвращает переупорядочивание вокруг вызова rdtsc ...

x86 64 регистры rax/eax/ax / al перезапись полного содержимого регистра [дубликат]

этот вопрос уже есть ответ здесь: почему инструкции x86-64 на 32-разрядных регистрах обнуляют верхнюю часть полного 64-разрядного регистра? 2 ответы как это ...

Как работает сани NOP?

Я не могу найти хороший источник, который отвечает на этот вопрос. Я знаю, что NOP sled-это техника, используемая для обхода рандомизации стека в атаке переполнения буфера, но я не могу понять, как это работает. какой простой пример иллюстрирует это ...

Как мне скомпилировать ASM в сгенерированный с помощью GCC?

Я играю с некоторым кодом asm, и что-то беспокоит меня. Я скомпилировать этот: #include <stdio.h> int main(int argc, char** argv){ printf("Hello World\n"); return 0; } С gcc file.c -S -o file.S это создает хороший маленький кусочек код ...

Почему GCC вызывает sqrt () libc без использования его результата?

используя GCC 6.3, следующий код C++: #include <cmath> #include <iostream> void norm(double r, double i) { double n = std::sqrt(r * r + i * i); std::cout << "norm = " << n; } создает следующую сборку x86-64: norm( ...

Как проверить, поддерживает ли процессор набор инструкций SSE3?

является ли следующий код допустимым, чтобы проверить, поддерживает ли процессор набор инструкций SSE3? С помощью ...

Как мне начать писать драйверы устройств? [закрытый]

Я хотел бы узнать, как писать драйверы устройств, потому что я думаю, что это было бы весело. Я использую Mac OS X Macbook, но у меня также есть машина Ubuntu (работает на Mac Min). Я довольно хорошо знаком с C и в настоящее время читаю книги. Я наше ...

Почему leave делает "mov esp, ebp" в сборке x86?

говорят, что leave инструкция такая же, как: mov esp,ebp pop ebp но что такое mov esp,ebp здесь? Это не кажется мне действительным... ...

Почему нет регистра, который содержит более высокие байты EAX?

%AX = (%AH + %AL) Так почему бы и нет %EAX = (%SOME_REGISTER + %AX) для некоторых зарегистрироваться %SOME_REGISTER? ...

Что означает "int 0x80" в ассемблерном коде?

может кто-нибудь объяснить, что делает следующий ассемблерный код? int 0x80 ...

Почему функция" noreturn " возвращается?

прочитал этой вопрос о noreturn атрибут, который используется для функций, которые не возвращаются вызывающему объекту. тогда я сделал программу в C. #include <stdio.h> #include <stdnoreturn.h> noreturn void func() { printf("no ...

Разница в производительности между Windows и Linux с помощью компилятора intel: просмотр сборки

я запускаю программу как на Windows, так и на Linux (x86-64). Он был скомпилирован с тем же компилятором (Intel Parallel Studio XE 2017) с теми же параметрами, и версия Windows в 3 раза быстрее, чем Linux. Виновником является звонок в std:: erf котор ...

Ограничения синтаксиса сборки Intel по сравнению с AT & T [закрыто]

для меня, синтаксис Intel намного легче читать. Если я пойду по лесу сборки, концентрируясь только на синтаксисе Intel, я что-нибудь пропущу? Есть ли какая-либо причина, по которой я хотел бы переключиться на AT&T (за пределами возможности читать ...

В чем разница между словом и байтом?

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

C++: загадочно огромное ускорение от хранения одного операнда в регистре

Я пытался получить представление о влиянии наличия массива в кэше L1 на память, синхронизируя процедуру, которая масштабирует и суммирует элементы массива, используя следующий код (я знаю, что я должен просто масштабировать результат на " a "в конце; ...

Это" не должно произойти " сбой ошибки процессора AMD Fusion?

моя компания начала иметь ряд клиентов позвонить, потому что наша программа сбой с нарушением прав доступа на их системах. сбой происходит в SQLite 3.6.23.1, который мы отправляем как часть нашего приложения. (Мы отправляем пользовательскую сборку, ...

Для чего предназначен регистр"FS"/" GS"?

поэтому я знаю, что следующие регистры и их использование должны быть: CS = сегмент кода (используется для IP) DS = сегмент данных (используется для MOV) ES = сегмент назначения (используется для МОВС и др.) SS = сегмент стека (используется для S ...