как посмотреть сборку стандартных функций библиотеки c в эльфе? например, у меня есть двоичный файл, у меня есть исходный код этого двоичного файла, и я знаю, что printf вызывается в основной функции. Я хочу увидеть сборку функции printf в этом эльфе. обратите внимание, что я хочу видеть сборку в самом эльфе. я много ищу но ничего не нахожу
как посмотреть сборку функций libc в эльфе
Ответы (1)
Вы можете скомпилировать с
~$ gcc -static prog.c
в то время как prog.c
использует функции, которые вы собрали. Это позволит статически связать библиотеки, используемые с двоичным файлом.
Тогда вы можете просто:
~$ objdump --disassemble a.out
РЕДАКТИРОВАТЬ
Можно даже пойти по более простому пути: просто objdump
библиотека libc:
~$ objdump --disassemble /usr/lib/libc.so.6 // or whatever the path of libc is
person
YoavKlein
schedule
29.12.2020
благодарю вас. если я не делаю статическую ссылку на библиотеки, не могу ли я? Я хочу знать, есть ли код этих функций (printf и scanf и ...) в двоичном формате или нет?
- person taranom; 30.12.2020
Я не совсем понял. Если вы хотите собрать его, вы можете
objdump
сам libc.so.6
, как я добавил в EDIT. Если вам нужен исходный код, вы можете просто поискать его в Интернете, это открытый исходный код.
- person YoavKlein; 30.12.2020