Skip to content

Python tools to resolve dynamic dependencies of ELF objects

Notifications You must be signed in to change notification settings

spoutn1k/python-sotools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

python-sotools

Collection of tools to debug and diagnose ELF objects dynamic linking.

Dynamic linker

The module contains methods to mimic the default dynamic linker on Linux. The resolve method implements all the rules involving the search and selection of a shared object given a shared object name (soname) string.

Dynamic linker cache

The dynamic linker cache (usually present at /etc/ld.so.cache) is a database generated at install time to cache the locations of select shared objects on the system. python-sotools supports reading and parsing this file, along with customized search for matches.

Library set

To simplify the use of the linker, the LibrarySet object is a specialization of a python set that allows to quickly resolve a dependency tree. It contains Library objects and is complete when all dependencies are contained in the set, and allows to verify all the members' required definitions are also present in another set member.

Scripts

The following scripts are installed automatically when installing python-sotools:

ldd.py

Simple re-implementation of ldd with the contents of python-sotools. This version does not use the actual linker and can be trusted not to run any code when executed with unknown executables, unlike the original.

sowhich

Which library is resolved ? This command returns the path for the library name given as an argument. That's it.

About

Python tools to resolve dynamic dependencies of ELF objects

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published