# Terminus Terminus is an application that locates ELF/PE files that import or export a specific function. This can be used to quickly identify which library you may want to look at next when reversing a new software system by pinpointing the library that exports a specific version of a function that you are looking for. ## Usage ```bash USAGE: terminus [FLAGS] [OPTIONS] FLAGS: -h, --help Prints help information -i, --imported Match imported instead of exported functions -V, --version Prints version information OPTIONS: -d, --dir Directory to search in [default: /lib] -s, --search ... List of function names to search for [default: ] ``` ## Dependencies Radare2 will need to be installed as this application utilizes r2pipes. Instructions to install Radare2 can be found [here](https://github.com/radareorg/radare2/blob/master/INSTALL.md) ## Installation If you have Rust and Cargo installed, Terminus can be quickly compiled and installed by running the following command: ```bash cargo install terminus ``` This will install Terminus to ~/.cargo/bin/terminus, which might need to be added to your shell's PATH variable. ## Example output ``` $ terminus -s printf -d /bin [!] /bin/lucious matched printf nth paddr vaddr bind type size lib name 252 0x000049d5 0x000049d5 GLOBAL FUNC 245 cterm_printf_ts [!] /bin/make matched printf nth paddr vaddr bind type size lib name 425 0x00011a40 0x00011a40 GLOBAL FUNC 321 file_timestamp_sprintf [+] Scanned file: /bin/newusers ``` ### Getting rid of R2 warnings ```bash echo 'e bin.cache=true' > ~/.radare2rc ```