* Другие примеры использования будут добавлены в ближайшее время!

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;}».