Sunday, January 22, 2017

Dynamic Linking and Loading


Intro 

Current programs rely on dynamic loading (e.g., through ld.so dynamic loader in Linux) to support shared libraries, position independent code, and defense mechanisms like address space layout randomization (ASLR).

Modern operating systems adopt dynamic linkding and loading to enable modularity.


Advantages 

1. The library code can be shared among processes.
- so that a system needs only one physical copy in memory per binary

2. once a bug is found in a library implementation, fixing the bug and distributing the updated library suffices if it is dynamically linked;
- otherwise, rebuilding every single binary that statically linked the vulnerable library is required







Reference
[1] An Evil Copy: How the Loader Betrays You

No comments:

Post a Comment