Подтвердить что ты не робот

Простой способ конвертировать c-код в сборку x86?

Есть ли простой способ (например, бесплатная программа), который может скрывать код c/С++ для сборки x86?

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

Кто-нибудь знает какую-нибудь программу, которая может это сделать?

EDIT: Я знаю, что компилятор GCC делает это, но это синтаксис AT & T, и я ищу синтаксис Intel (не уверен, что он называется синтаксисом Intel или нет). Синтаксис AT & T для меня немного похож на тарабарщину, а некоторые команды используют операнды в обратном порядке, а не как я привык, и это может стать очень запутанным.

4b9b3361

Ответ 1

Gcc может сделать это с помощью ключа -S, но он будет отвратительно уродливым в синтаксисе & t.

Ответ 2

GCC может выводить сборку синтаксиса Intel, используя следующую командную строку:

gcc -S input.c -o output.asm -masm=intel

Ответ 3

gcc генерирует сборку, если вы передадите ей опцию -S в командной строке.

Microsoft Visual С++ сделает то же самое с опцией /FAs.

Ответ 4

Компонент lcc - это мультиплатформенный кросс-компилятор. Вы можете получить его для создания кода сборки синтаксиса Intel на

lcc -S -Wf-target=x86/win32 foo.c

Я нахожу код сборки из lcc значительно проще для чтения, чем то, что gcc выплевывает в наши дни.

Ответ 5

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

Для GCC добавьте флаг -S.

gcc -S x.c
cat x.s

Изменить: Если ваша программа довольно короткая, вы можете использовать онлайн-сервис https://gcc.godbolt.org/.

Ответ 6

Если вы используете gcc как компилятор, вы можете скомпилировать с помощью опции -S для создания кода сборки. см. http://www.delorie.com/djgpp/v2faq/faq8_20.html

Ответ 7

Как отмечают многие, большинство компиляторов это сделает. Если вам не нравится синтаксис, немного работы с awk или sed должны быть в состоянии перевести. Или я был бы удивлен, если бы не была программа, которая сделала бы этот бит для вас уже написанным где-то.

Ответ 8

В VС++ для отображения кода сборки можно использовать следующую команду.

cl/FAs a.c

Ответ 9

уведомления каждая архитектура имеет свои уникальные имена и даже строит по-разному теперь, когда вы знаете, что используемые стеки используют asm volatile было бы идеальным решением