PWNTOOLS - часть 4
=== Получение адресов из бинарника ===
Да, можно самостоятельно открыть бинарный файл (libc) в дизассемблере, посмотреть адрес интересующей функи, а потом при необходимости считать каждый раз выражение вида BASE+LOCAL_ADDRESS. Но зачем, если есть pwntools?
Следующий фрагмент кода позволяет автоматом получать адреса с libc:
libc = ELF('./libc.so')
libc.address = LIBC_BASE # устанавливаем слитую базу LIBC
SYSTEM = libc.sym['system'] # адрес SYSTEM с учетом базы
BIN_SH = next(libc.search(b'/bin/sh')) # адрес /bin/sh с учетом базы
#pwn #pwntools