5 ms·
A static binary rewriter that does not use heuristics
- jitl 8y agoCould 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 8y 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 8y agoSo, what does the word “static” mean in this context, that the binary’s behavior does not change?
- waterhouse 8y 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 8y 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 8y 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 8y ago[deleted]
- mdaniel 8y 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 8y 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.
- dzdt 8y agoI read the readme. I still don't know what is "rewriting" a binary or why one would want to do it. Can someone explain?
- _nalply 8y agoHave a look at the example icount.py: It rewrites binaries to count the number of instructions executed. Therefore it seems the rewriter can modify already existing binaries corresponding to some rules in Python files by inserting additional instructions.
- detaro 8y agoTake 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.
- shadowfacts 8y agoThis is the paper referenced in the README: http://web.cse.ohio-state.edu/~lin.3021/file/NDSS18a.pdf http://web.cse.ohio-state.edu/~lin.3021/file/NDSS18a.pdf
- all_blue_chucks 8y agoIs this for antivirus signature evasion? If so, wouldn't it need to work on itself?