dynamically_linked_binaries

In linux, packages compile into binary chunks (.so files) and are then dynamically linked. These are dynamically linked binaries.

ldd

ldd = List Dynamic Dependencies

Pass a binary (executable) and it will list out all the dynamically linked binaries that it links to, and their paths.

LD_LIBRARY_PATH

LD_LIBRARY_PATH is an environmental variable that you can set to provide additional paths for the dynamic linker/loader to look at to find linked binaries.

strace

strace traces all system calls made when a binary runs (things like file read/write, etc.).

This is useful for checking if a program is accessing certain system resources. It's useful for seeing where the program is looking for certain files.

readelf

readelf reads binary files (executables) in linux ELF64 format and finds information in them.

ELF64 is the binary format linux uses.

readelf -d xxx.so | grep "rpath" will get the rpath paths that a binary points to.

rpath

rpath is paths embedded in a linux binary that point to other dynamically linked binaries that the binary needs to link to.

hexdump

hexdump prints a file's data in hexadecimal, and also attempts to convert any ascii symbols to human readable characters.

Useful for reading ascii metadata in otherwise non-human-readable files, such as binaries, photos, etc.

Last updated