PIE-бинарники работают в связке с ASLR (Address Space Layout Randomization), затрудняя эксплуатацию уязвимостей, основанных на знании точного адреса функций в памяти.
linux@10:~/Загрузки> rpm2cpio Keyboard-Sounds-Pro-Installer-Linux-x86_64.rpm | cpio -dium
29276 blocks
linux@10:~/Загрузки> readelf -h usr/bin/kbs-pro/kbs-pro
Заголовок ELF:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Класс: ELF64
Данные: дополнение до 2, от младшего к старшему
Version: 1 (current)
OS/ABI: UNIX - System V
Версия ABI: 0
Тип: EXEC (Исполняемый файл)
Машина: Advanced Micro Devices X86-64
Версия: 0x1
Адрес точки входа: 0x408ed0
Начало заголовков программы: 64 (байт в файле)
Начало заголовков раздела: 13242952 (байт в файле)
Флаги: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 14
Size of section headers: 64 (bytes)
Number of section headers: 36
Section header string table index: 35
linux@10:~/Загрузки> file usr/bin/kbs-pro/kbs-pro
usr/bin/kbs-pro/kbs-pro: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=efe961836faa521e947dcce4bc23d8c1aa53e71b, for GNU/Linux 3.2.0, stripped
Для сравнения приведу исполняемый файл собственной сборки.
linux@10:~/Загрузки> readelf -h /usr/libexec/kbs-pro/kbs-pro
Заголовок ELF:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Класс: ELF64
Данные: дополнение до 2, от младшего к старшему
Version: 1 (current)
OS/ABI: UNIX - System V
Версия ABI: 0
Тип: DYN (Position-Independent Executable file)
Машина: Advanced Micro Devices X86-64
Версия: 0x1
Адрес точки входа: 0x14df10
Начало заголовков программы: 64 (байт в файле)
Начало заголовков раздела: 14828656 (байт в файле)
Флаги: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 15
Size of section headers: 64 (bytes)
Number of section headers: 38
Section header string table index: 37
linux@10:~/Загрузки> file /usr/bin/kbs-pro
/usr/bin/kbs-pro: symbolic link to ../libexec/kbs-pro/kbs-pro
linux@10:~/Загрузки> file /usr/bin/../libexec/kbs-pro/kbs-pro
/usr/bin/../libexec/kbs-pro/kbs-pro: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=60165d41d5259daad0d900b663a3603d12271b2f, for GNU/Linux 4.3.0, stripped
Исправить не сложно, добавьте в сборочный скрипт:
export GOFLAGS="-buildmode=pie"
PIE-бинарники работают в связке с ASLR (Address Space Layout Randomization), затрудняя эксплуатацию уязвимостей, основанных на знании точного адреса функций в памяти.
Для сравнения приведу исполняемый файл собственной сборки.
Исправить не сложно, добавьте в сборочный скрипт:
export GOFLAGS="-buildmode=pie"