# Shared Object Injection
When a program is executed, it will try to load the shared objects it requires.
By using a program called strace, we can track these system calls and determine whether any of the shared objects were not found.
If we can write to the location the program tries to open, we can create a shared object and spawn a root shell when its loaded.
This example will show if the application ```suid-so``` is looking for any files that do not exist:
```bash
$ strace /usr/local/bin/suid-so 2>&1 | grep -iE "open|access|no such file"
```