3 ms·
Could this tool be used to produce eg a statically-linked version of `curl` that would work the same on any Linux, without needing to build curl from sources?
by jitl 9y ago
Could this tool be used to produce eg a statically-linked version of `curl` that would work the same on any Linux, without needing to build curl from sources?
- resoluteteeth 9y agoIt does not appear that "static binary rewriter" in this context means that it turns dynamically linked binaries into statically linked binaries, so probably not.
- jitl 9y agoSo, what does the word “static” mean in this context, that the binary’s behavior does not change?
- waterhouse 9y agoI imagine it means that it takes the binary file, generates a new binary file, and is done, as opposed to rewriting things at runtime or needing profiling information from a prior run of the binary.
- moyix 9y agoThis is correct. Specifically, there's a category of tool called "dynamic binary translators" (including Pin, DynamoRIO, Valgrind, and QEMU) that translate binary code one block at a time, just before it's executed.
- detaro 9y agoSame meaning as in a "static analyzer" for code quality: it works without executing the target program. (whereas a dynamic rewriter could run the application under debugger control, observe its behavior, extract additional meaning from that and make changes on-the-fly)
- deleted 9y ago[deleted]
- mdaniel 9y agoJust in case you haven't considered it, and it's applicable for your situation, one can use docker for that purpose: docker run --rm -v $PWD:/something some-image-with-curl curl -o /something/destination http://example.com/something
- chx 9y agoI think you should look at https://github.com/intoli/exodus https://github.com/intoli/exodus > Painless relocation of Linux binaries–and all of their dependencies–without containers. > Exodus handles bundling all of the binary's dependencies, compiling a statically linked wrapper for the executable that invokes the relocated linker directly.