Skip to content
/ goblin Public

a linux userspace ELF loader and dynamic linker

Notifications You must be signed in to change notification settings

Roeegg2/goblin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Goblin

GOBLIN - the Generally Ok Binary Linker and INterpreter

Goblin is a work-in-progress ELF binary linker and interpreter, written out of curiosity to see how far one could get about loading and dynamically linking ELF binaries in userspace. My aim with this project is to replace ld-linux (and a bit of the Linux loader) as much as possible in userspace.

Currently only supports x86_64 binaries.

Features:

  • full shared object path resolution (RPATH, RUNPATH, LD_LIBRARY_PATH, etc.) (except for /etc/ld.so.cache)
  • eager binding
  • lazy binding
  • ELF hash
  • GNU hash
  • statically linked executables
  • dynamically linked executables
  • statically linked glibc executables
  • dynamically linked glibc executables
  • static TLS support
  • dynamic TLS support
  • dlopen() support