remill
revng
Our great sponsors
remill | revng | |
---|---|---|
3 | 7 | |
1,177 | 1,195 | |
2.6% | 16.3% | |
6.4 | 9.6 | |
16 days ago | 5 days ago | |
C++ | C++ | |
Apache License 2.0 | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
remill
-
Revng translates (i386, x86-64, MIPS, ARM, AArch64, s390x) binaries to LLVM IR
Usually such things are called lifters. Wonder how this tool compares to other existing LLVM IR lifters, such as remill[0] and rellume[1].
0: https://github.com/lifting-bits/remill
- Decompiler Explorer
- fcd – LLVM-based native program optimizing decompiler
revng
-
The rev.ng decompiler goes open source
We should probably add a warning about `source ./environment`.
Now, let's get to each of your comments :D
> though thankfully not LD_LIBRARY_PATH
We spent a lot of time to have a completely self-contained set of binaries where each ELF refers to its dependencies through relative paths. LD_LIBRARY_PATH is evil.
> Mostly prefixed "HARD_"
Those are just used by our compiler wrappers, I don't think those environment variables collide with anything in practice.
> It sets `AWS_EC2_METADATA_DISABLED="true"`
Original discussion: https://github.com/revng/revng/pull/309#discussion_r12805759...
I guess we could patch the AWS SDK to avoid this.
- Revng translates (i386, x86-64, MIPS, ARM, AArch64, s390x) binaries to LLVM IR
-
Ask HN: Which books do you consider real gems in your field of work/study?
Nielson & Nielson literally saved my PhD and enabled the creation of the company. I'm so grateful.
Do you have any contact? It'd be cool to invite one of the authors to our weekly internal meetings.
> the authors have written a prequel
Oh crap, that's great!
Honestly, we use Chapter 2 a lot, it already provides so much value. And in fact, you could write a whole book only about that.
Here's our C++ implementation of MFP:
https://github.com/revng/revng/blob/develop/include/revng/MFP/MFP.h#L66
-
TMNT Shredder's Revenge has been ported to ARM-based Retro Handhelds!
I'm not certain, but my best guess right now is that the non-open-source games are going through a static binary translator (like this one). Going from a strong-memory-model ISA like x86_64 to a weak-memory-model ISA like ARM, can present performance challenges when memory fencing is added.
-
C++ Jobs - Q3 2022
C++ 20 coroutines: we employ them to achieve "stackless C++";
-
C++ Jobs - Q3 2021
C++20 Coroutines: we employ them to safely and idiomatically transistions from UI thread and long-running computation threads and "stackless C++""
What are some alternatives?
llvm-tutor - A collection of out-of-tree LLVM passes for teaching and learning
rellume - Lift machine code to performant LLVM IR
fcd - An optimizing decompiler
cmm- - Markdown parcer
anvill - anvill forges beautiful LLVM bitcode out of raw machine code
revng-qa - Source for rev.ng test cases
rellic - Rellic produces goto-free C output from LLVM bitcode
rizin - UNIX-like reverse engineering framework and command-line toolset.
asmjit - Low-latency machine code generation
revng-c
mcsema - Framework for lifting x86, amd64, aarch64, sparc32, and sparc64 program binaries to LLVM bitcode
bookstuff