1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:07:34 +00:00

Utilities: Introduce the ldd utility

This utility lets a user to figure out what are the dependency libraries
for an ELF dynamic object, whether it's a dynamically loaded executable
or dynamically loaded library.
This commit is contained in:
Liav A 2022-12-18 16:52:22 +02:00 committed by Andrew Kaster
parent efec344803
commit 658f9eec6a
2 changed files with 192 additions and 0 deletions

View file

@ -0,0 +1,41 @@
## Name
ldd - list dynamic dependencies
## Synopsis
```**sh
$ ldd [-r] [-f] <path>
```
## Description
`ldd` prints all dependency libraries of an ELF object.
## Options
* `-f`, `--force-without-valid-interpreter`: Force library resolving on ELF
object without a valid interpreter
* `-r`, `--max-recursion`: Max library resolving recursion
## Arguments
* `path`: Path to ELF object
## Security
In contrast to other OS implementations, the `ldd` binary is completely safe for
usage on untrusted binaries - we only use the `LibELF` code for doing library
resolving, and the actual binary interpreter (when specified) is never called to
decode the dependency information.
## Examples
```sh
# List all dependency libraries for libc.so
$ ldd -f /usr/lib/libc.so
# List all dependency libraries for /bin/id
$ ldd /bin/id
# List all dependency libraries for /bin/WindowServer
$ ldd /bin/WindowServer
```