* Другие примеры использования будут добавлены в ближайшее время!
Binutils
Http://ftp.gnu.org/gnu/binutils/binutils-2.31.1.tar.xz
Пакет Binutils содержит компоновщик, ассемблер и другие инструменты для работы с объектными файлами.
Установленные двоичные файлы
addr2line
Преобразует адреса программ в имена файлов и номера строк; учитывая адрес и имя исполняемого файла, он использует отладочную информацию в исполняемом файле, чтобы определить, какой исходный файл и номер строки связаны с адресом
root@aflone:~# cat hello.c #include <stdio.h> int main() { printf("hello\n"); return 0; } root@aflone:~# gcc -g hello.c root@aflone:~# objdump -d a.out | grep -a4 "<main>:" 40051e: ff d0 callq *%rax 400520: 5d pop %rbp 400521: e9 7a ff ff ff jmpq 4004a0 <register_tm_clones> 0000000000400526 <main>: 400526: 55 push %rbp 400527: 48 89 e5 mov %rsp,%rbp 40052a: bf c4 05 40 00 mov $0x4005c4,%edi 40052f: e8 cc fe ff ff callq 400400 <puts@plt> root@aflone:~# addr2line a.out 400526 ??:0 /root/hello.c:3
ar
Создает, изменяет и извлекает из архивов
as
Ассемблер, который собирает вывод gcc в объектные файлы.
c ++ filter
Используется компоновщиком для устранения искажений символов C ++ и Java и предотвращения конфликтов перегруженных функций.
elfedit
Обновляет заголовок ELF файлов ELF.
gprof
Отображает данные профиля графика звонков
ld
Компоновщик, который объединяет несколько объектных и архивных файлов в один файл, перемещая их данные и связывая ссылки на символы.
ld.gold
Урезанная версия ld, которая поддерживает только формат объектного файла elf
ld.bfd
Жесткая ссылка на ld
nm
Перечисляет символы, встречающиеся в заданном объектном файле.
objcopy
Переводит один тип объектного файла в другой
objdump
Отображает информацию о заданном объектном файле с параметрами, контролирующими конкретную информацию для отображения; Показанная информация полезна программистам, которые работают над инструментами компиляции
ранлиб
Создает индекс содержимого архива и сохраняет его в архиве; индекс перечисляет все символы, определенные членами архива, которые являются перемещаемыми объектными файлами
реадельф
Отображает информацию о двоичных файлах типа ELF
размер
Перечисляет размеры разделов и общий размер для заданных объектных файлов.
строки
Выводит для каждого заданного файла последовательности печатаемых символов не менее указанной длины (по умолчанию четыре); для объектных файлов он по умолчанию печатает только строки из разделов инициализации и загрузки, а для других типов файлов он сканирует весь файл
полоска
Удаляет символы из объектных файлов
Установленные библиотеки
libbfd
Библиотека дескрипторов двоичных файлов
libopcodes
Библиотека для работы с кодами операций - «читаемыми текстовыми» версиями инструкций для процессора; он используется для создания таких утилит, как objdump
Справочники
/usr/lib/ldscripts
Уязвимости
10 самых важных
- CVE-2005–4808
Переполнение буфера в reset_vars в config / tc-crx.c в ассемблере GNU as (gas) в Free Software Foundation GNU Binutils до 20050714 позволяет злоумышленникам с помощью пользователя иметь неизвестное влияние через созданный файл .s. - CVE-2005–4807
Переполнение буфера на основе стека в функции as_bad в messages.c в GNU ассемблере as (gas) в Free Software Foundation GNU Binutils до 20050721 позволяет злоумышленникам выполнять произвольные код через файл .c с созданным встроенным кодом сборки. - CVE-2006–2362
Переполнение буфера в getym в tekhex.c в libbfd в Free Software Foundation. GNU Binutils до 20060423, используемый строками GNU, позволяет зависимым от контекста злоумышленникам вызывать отказ службы (сбой приложения) и, возможно, выполнить произвольный код через файл с созданной записью Tektronix Hex Format (TekHex), в которой символ длины не является допустимым шестнадцатеричным символом. - CVE-2014–8485
Функция setup_group в bfd / elf.c в libbfd в GNU binutils 2.24 и более ранних версиях позволяет удаленным злоумышленникам вызвать отказ в обслуживании (сбой) и, возможно, выполнить произвольный код. через созданные заголовки группы разделов в файле ELF. - CVE-2014–8501
Функция _bfd_XXi_swap_aouthdr_in в bfd / peXXigen.c в GNU binutils 2.24 и более ранних версиях позволяет удаленным злоумышленникам вызвать отказ в обслуживании (запись за пределами диапазона) и, возможно, иметь другое неопределенное влияние через созданное поле NumberOfRvaAndSizes в заголовке AOUT в исполняемом файле PE. - CVE-2014–8502
Переполнение буфера на основе кучи в функции pe_print_edata в bfd / peXXigen.c в GNU binutils 2.24 и более ранних версиях позволяет удаленным злоумышленникам вызвать отказ в обслуживании (сбой) и возможно, окажут другое неуказанное влияние через усеченную таблицу экспорта в PE-файле. - CVE-2014–8503
Переполнение буфера на основе стека в функции ihex_scan в bfd / ihex.c в GNU binutils 2.24 и более ранних версиях позволяет удаленным злоумышленникам вызвать отказ в обслуживании (сбой) и возможно, окажут другое неопределенное влияние через созданный файл ihex. - CVE-2014–8504
Переполнение буфера на основе стека в функции srec_scan в bfd / srec.c в GNU binutils 2.24 и более ранних версиях позволяет удаленным злоумышленникам вызвать отказ в обслуживании (сбой) и возможно, окажут другое неопределенное влияние через созданный файл. - CVE-2014–9939
ihex.c в GNU Binutils до 2.26 содержит переполнение буфера стека при печати неверных байтов в объектах Intel Hex. - CVE-2017–7614
elflink.c в библиотеке дескриптора двоичного файла (BFD) (также известной как libbfd), распространяемой в GNU Binutils 2.28, имеет «доступ к члену в пределах нулевого указателя» undefined проблема с поведением, которая может позволить удаленным злоумышленникам вызвать отказ в обслуживании (сбой приложения) или, возможно, оказать неуказанное другое воздействие с помощью программы «int main () {return 0;}».