Usually such things are called lifters. Wonder how this tool compares to other existing LLVM IR lifters, such as remill[0] and rellume[1].<p>0: <a href="https://github.com/lifting-bits/remill">https://github.com/lifting-bits/remill</a><p>1: <a href="https://github.com/aengelke/rellume">https://github.com/aengelke/rellume</a>
License is weird and unclear to me. <a href="https://github.com/revng/revng/blob/develop/LICENSE.md">https://github.com/revng/revng/blob/develop/LICENSE.md</a>:<p><i>“Licensing information<p>Copyright (c) 2015-2017 Alessandro Di Federico <ale@clearmind.me><p>Copyright (c) 2017-2020 rev.ng Labs Srl <info@rev.ng><p>The project as a whole is released under the terms of the GNU General Public License, version 2. A copy of this license can be found in LICENSE.gpl.<p>Each individual file, unless otherwise noted, is released under the terms of the MIT License. A copy of this license can be found in LICENSE.mit.”</i><p>Does that paragraph about GPLv2 constitute a version of “unless otherwise noted”?<p>If so, why mention the MIT license at all?<p>If not, doesn’t that mean it effectively is dual licensed? If everything is GPLv2, and I take a single file, that’s still GPLv2, and if if have set of MIT licensed files and group them, the result still is MIT licensed.<p>(Browsing the code, all source files seem to have a MIT header, so, presumably, they mean this to beMIT licensed)<p>Also, it’s not “GPLv2 or later”, but I think you can take the MIT licensed files and rerelease them as GPLv3, if you’d want to (or is the attribution requirement a showstopper there?)
Wonder if you could use this with binfmt and a cache to create a kind of super-Rosetta for Linux. Any Linux binary not for the host architecture will be translated, and translated binaries are cached somewhere by a hash of the original binary so the translation only has to happen once. All transparent to the user.
Rizin[1] is also able to uplift native code to the new RzIL, which is based on the BAP Core Theory[2] and is essentially an extension of SMT theories of bitvectors, bitvector-indexed arrays of bitvectors and effects[3].<p>[1] <a href="https://rizin.re/" rel="nofollow">https://rizin.re/</a><p>[2] <a href="https://binaryanalysisplatform.github.io/bap/api/master/bap-core-theory/Bap_core_theory/" rel="nofollow">https://binaryanalysisplatform.github.io/bap/api/master/bap-...</a><p>[3] <a href="https://github.com/rizinorg/rizin/blob/dev/doc/rzil.md">https://github.com/rizinorg/rizin/blob/dev/doc/rzil.md</a>
Alessandro presented revng at the 2016 llvm Bay area dev conf.<p>video <a href="https://youtu.be/5CbuU4KwBCE?si=eUN_UGr7cjat3P8U" rel="nofollow">https://youtu.be/5CbuU4KwBCE?si=eUN_UGr7cjat3P8U</a><p>slides <a href="https://www.llvm.org/devmtg/2016-11/Slides/DiFederico-rev.ng.pdf" rel="nofollow">https://www.llvm.org/devmtg/2016-11/Slides/DiFederico-rev.ng...</a>