Skip to content

List of resources related to LD_PRELOAD, a mechanism for changing application behavior at run-time

Notifications You must be signed in to change notification settings

gaul/awesome-ld-preload

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 

Repository files navigation

Awesome LD_PRELOAD

This is a list of resources related to LD_PRELOAD, a mechanism for changing application behavior at run-time. Libraries can override specified functions with another, for example, making time(3) always return 0. This is often useful for testing or modifying application behavior without source code changes.

To use, set the environment variable LD_PRELOAD=/full/path/to/your_shared_lib.so before launching your application.

LD_PRELOAD works on Linux systems and some BSDs. macOS implements similar functionality via DYLD_INSERT_LIBRARIES.

Libraries

  • angrymlocker - library for keeping corresponding process in memory
  • arg-inject - add support for config files
  • cleancache - drop files content from page cache after closing, useful for backups
  • flockit - add file locking to programs that don't do it
  • fluxcapacitor - a tool for making your program run without blocking on timeouts, on functions like poll and select
  • force-urandom - force programs to use fast and secure /dev/urandom instead of pointlessly slow /dev/random
  • fsatrace - filesystem access tracer
  • gamemode - enables optimizations for gaming that are automatically unset on process exit
  • ktlswrapper - enables TLS support for existing applications without code change
  • ld-preload-open - map files or directories to another location
  • libeatmydata - disable all forms of writing data safely to disk. fsync() becomes a no-op, O_SYNC is removed, etc.
  • libfaketime - modifies the system time for a single application
  • libhugetlbfs - remap segments onto huge pages for a performance boost
  • libinput-force-middle-click-emulation - force libinput to emulate a middle click when pressing left and right buttons simultaneously
  • libkeepalive - enable TCP keepalive socket options
  • libleakmydata - disable SSL certificate verification
  • libnoxattr - disable all forms of extended attribute access
  • lkl - use modern Linux kernel on old Centos5/6 (2.6 kernel) machines.
  • openssl-hook - log data to/from SSL_write/SSL_read to disk
  • otherport - redirect connections to other ports
  • preeny - redirect stdin and stdout to sockets; neuter sleep, report constant time, amongst others
  • srv-shim - drop-in DNS SRV record support for applications relying on getaddrinfo/connect/sendto
  • stderred - colorize all stderr output that goes to terminal thus making it distinguishable from stdout
  • timeskew - override time reporting in Linux processes (accelerate/slowdown games, test code involving timers/delays)
  • trickle - a userland bandwidth shaper
  • unrandom - make srand() always use the seed 0

Meta

Links

License

Copyright (C) 2020 Google LLC

Licensed under the Creative Commons Attribution License, Version 4.0

About

List of resources related to LD_PRELOAD, a mechanism for changing application behavior at run-time

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published