Re:A static binary rewriter that does not use heuristics
by detaro on Saturday May 12, 2018 @05:06PM
(#17056003)
Take a binary and make changes to it (without breaking anything unintentionally). E.g. add hooks for performance measurements, add additional security checks, make it use/not use specific CPU instructions.
Re:A static binary rewriter that does not use heuristics
by jitl on Saturday May 12, 2018 @02:34PM
(#17055362)
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?
> 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.
Re:A static binary rewriter that does not use heuristics
by resoluteteeth on Saturday May 12, 2018 @03:41PM
(#17055653)
It does not appear that "static binary rewriter" in this context means that it turns dynamically linked binaries into statically linked binaries, so probably not.
Re:A static binary rewriter that does not use heuristics
by detaro on Saturday May 12, 2018 @05:11PM
(#17056030)
Same 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)
Re:A static binary rewriter that does not use heuristics
by waterhouse on Saturday May 12, 2018 @05:07PM
(#17056008)
I 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.
Re:A static binary rewriter that does not use heuristics
by moyix on Saturday May 12, 2018 @06:39PM
(#17056399)
This 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.
Therefore it seems the rewriter can modify already existing binaries corresponding to some rules in Python files by inserting additional instructions.
> 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.