aboutsummaryrefslogtreecommitdiff
path: root/articles/2016-02-21_notes_on_function_interposition_in_cpp.md
diff options
context:
space:
mode:
authorAdrian Kummerlaender2018-09-24 10:01:42 +0200
committerAdrian Kummerlaender2018-09-24 10:01:42 +0200
commit7d937830c21636eddc67bd2b2479cb7a436a7657 (patch)
tree01b4f414950444d4d16c913f6428bd2e079147a5 /articles/2016-02-21_notes_on_function_interposition_in_cpp.md
parentfb97def289b1a59531ac12fd4f6131717b4a9499 (diff)
downloadblog_content-7d937830c21636eddc67bd2b2479cb7a436a7657.tar
blog_content-7d937830c21636eddc67bd2b2479cb7a436a7657.tar.gz
blog_content-7d937830c21636eddc67bd2b2479cb7a436a7657.tar.bz2
blog_content-7d937830c21636eddc67bd2b2479cb7a436a7657.tar.lz
blog_content-7d937830c21636eddc67bd2b2479cb7a436a7657.tar.xz
blog_content-7d937830c21636eddc67bd2b2479cb7a436a7657.tar.zst
blog_content-7d937830c21636eddc67bd2b2479cb7a436a7657.zip
Update code.kummerlaender.eu links
Diffstat (limited to 'articles/2016-02-21_notes_on_function_interposition_in_cpp.md')
-rw-r--r--articles/2016-02-21_notes_on_function_interposition_in_cpp.md6
1 files changed, 3 insertions, 3 deletions
diff --git a/articles/2016-02-21_notes_on_function_interposition_in_cpp.md b/articles/2016-02-21_notes_on_function_interposition_in_cpp.md
index 7e8e040..9fb22df 100644
--- a/articles/2016-02-21_notes_on_function_interposition_in_cpp.md
+++ b/articles/2016-02-21_notes_on_function_interposition_in_cpp.md
@@ -14,7 +14,7 @@ This feature is what is commonly referred to as function interposition and is wh
Function interposition is useful in various practical scenarios such as providing custom memory allocators as drop in replacements for the appropriate standard library functions as well as monitoring the function calls of a application as an additional debugging avenue. Furthermore `LD_PRELOAD`'s nature of replacing library functions with custom logic in a not necessarily obvious manner makes it a security risk which is why it is disabled for e.g. `setuid` applications. But even with this restriction it may be used as a foundation for userland rootkits - for instance one could hijack the library functions used to interface with the file system and change what certain applications see. Such shenanigans could then in turn be used to manipulate the source code of an application during compilation while continuing to display the unchanged source code to the user via her chosen text editor and file hashing tool. More information on this kind of attack can be obtained e.g. in the _31c3_ talk on [reproducible builds] which is where I was first confronted with this risk.
-However the use case that led me to dive into this topic was to develop a tool to be dropped in front of any `LD_PRELOAD` supported program that would then monitor all relevant file system interactions and generate a nice summary of what was changed to be used for documentation purposes. The result of this undertaking is available on [Github] and [cgit].
+However the use case that led me to dive into this topic was to develop a tool to be dropped in front of any `LD_PRELOAD` supported program that would then monitor all relevant file system interactions and generate a nice summary of what was changed to be used for documentation purposes. The result of this undertaking is available on [Github] and [Gitea].
[reproducible builds]: https://media.ccc.de/v/31c3_-_6240_-_en_-_saal_g_-_201412271400_-_reproducible_builds_-_mike_perry_-_seth_schoen_-_hans_steiner
@@ -147,8 +147,8 @@ Although this approach depends on interfacing with C code it can be reasonably a
One should however expect to dive deeper into C library internals and debug lower level issues while actually wanting to implement higher level functionality. Furthermore we probably will not get away with just implementing an interposition of the function we are interested in but also other functions that depend on it in some fashion in some wrapped applications. Definitely exepect quite a few coredumps and deadlocks during development.
-For a real world example of how function interposition using `LD_PRELOAD` and C++ may be used to build a small but hopefully useful application feel free to check out [_change_] on [Github] or [cgit].
+For a real world example of how function interposition using `LD_PRELOAD` and C++ may be used to build a small but hopefully useful application feel free to check out [_change_] on [Github] or [Gitea].
[_change_]: https://tree.kummerlaender.eu/projects/change/
[Github]: https://github.com/KnairdA/change/
-[cgit]: https://code.kummerlaender.eu/change/
+[Gitea]: https://code.kummerlaender.eu/adrian/change/