Version 0.7.0.0
The big feature of this release is the adaptation and implementation of the shingled disassembler and procedure detection algorithms described in the papers "Shingled Graph Disassembly: Finding the Undecidable Path" by Richard Wartell, Yan Zhou, Kevin W.Hamlen, and Murat Kantarcioglu (https://www.utdallas.edu/~hamlen/wartell13techrep.pdf) and "Compiler-Agnostic Function Detection in Binaries", by Dennis Andriesse, Asia Slowinska, Herbert Bos (https://syssec.mistakenot.net/papers/eurosp-2017.pdf). A clone of the source code from the latter is located here: https://github.com/uxmal/nucleus.
These optional analyses vastly improve Reko's discovery of executable code, at the cost of increased memory and time consumption. Because of the cost, they must be explicitly requested. In the GUI client, this is done by right-clicking on a loaded program node, selecting the Properties
menu item, switching to the Scanning
tab and selecting "Shingled scanning". From the command line, the following incantation will do the job:
decompile --heuristic shingle binary.exe
Some other goodies are also part of this release:
- Added support for the Super-H, TLCS-90, and TLCS-900 processor architectures.
- Added support for the SEGA DreamCast, and NeoGeo platforms
- Added a front end that can load LLVM
.ll
files and transpile them into Reko IR. Special thanks for @mewmew for his assistance - Added an Intel HEX file front end.
- The usual large number of bug fixes
Thanks to @ptomin, @Kalmalyzer, and @smx-smx for their contributions.