Skip to content

Latest commit

 

History

History
89 lines (82 loc) · 11.7 KB

CHANGELOG.md

File metadata and controls

89 lines (82 loc) · 11.7 KB

Changelog

dev

v3.2 (2018-08-16)

  • New Feature: Converted shell scripts to Python scripts so that Windows users no longer have to install MSYS2 in order to run RetDec (#338, #147).
  • New Feature: Added generation of export-table hashes into retdec-fileinfo (#121, #321).
  • New Feature: Automatically generate and publicly host an up-to-date Doxygen documentation (#20).
  • Enhancement: Suppress superfluous randlib warnings about static libraries having no symbols on macOS (#271, #349).
  • Fix: Fixed assertions in statically linked code recognition (#333).
  • Fix: Fixed aborts due to assertions during decoding of some MIPS binaries (#335).
  • Fix: Fixed a memory leak when parsing Mach-O files (#331).

v3.1 (2018-06-07)

  • New Feature: retdec-fileinfo is now able to detect when a PE file is corrupted and cannot be loaded (#281).
  • New Feature: Added a new tool: retdec-getsig. It can be used for creating signatures of packers, compilers, and other tools.
  • New Feature: The number of bytes read from the input file's entry point by retdec-fileinfo is now configurable with the --ep-bytes option.
  • Enhancement: Complete rewrite of binary to LLVM IR decoding phase (#116).
  • Enhancement: Added reference checks to statically linked code detection (#113).
  • Enhancement: Speeded up RetDec rebuild and installation by disabling forced reconfiguration of LLVM (#294).
  • Enhancement: Added new OS/ABI and tool detections for ELF files (#244).
  • Enhancement: Improved support for analysis of ELF core files by retdec-fileinfo (#142).
  • Enhancement: Added support for limiting overall memory when running decompilations and tools (#270, #290). By default, decompilations are now run with limited memory (half of system RAM) to prevent "black screens" (mostly on Windows). Use --no-memory-limit to override.
  • Enhancement: On macOS, you no longer need to have GNU coreutils in PATH to build and install RetDec. GNU coreutils are still needed to run RetDec, though.
  • Enhancement: Import-table hashes generated by retdec-fileinfo are now compatible with import-table hashes from YARA/pefile (#246).
  • Enhancement: Tool retdec-macho-extractor can now extract objects from non-archive Mach-O universal binaries (#125).
  • Enhancement: References to ticket numbers from our internal issue tracking system were replaced by short descriptions in the retdec-regression-tests repository (retdec-regression-tests #1).
  • Enhancement: Added a missing license for the retdec-support repository (retdec-support #1).
  • Enhancement: Better detection of tools: new signatures and heuristics. YARA signatures are compiled now.
  • Enhancement: Added Travis and AppVeyor continuous integration builds (#2).
  • Enhancement: Build with -std=c++14 instead of -std=gnu++14 with GCC on Linux (#76).
  • Enhancement: Speeded up build by skipping compilation of unnecessary dependencies (e.g. unused LLVM libraries, tools, and examples).
  • Enhancement: OpenSSL is now automatically built only if it is not found in your system.
  • Enhancement: Added support for a system-wide installation (#94).
  • Enhancement: Prefixed all the installed binaries and scripts with retdec- (#70). Also, some tools were renamed to make their names more uniform.
  • Enhancement: Got rid of all git submodules (#92, #93). Moved sources of all RetDec-related repositories to this main repository. Third-party dependencies are downloaded and built via CMake's external projects. This allows us to have e.g. only a single copy of LLVM (#14) and not require a recursive clone (#48, #68, #72).
  • Enhancement: Set a proper rpath during installation on Linux and macOS (#77, #100). This allows us to move the installation directory after the installation into another location.
  • Enhancement: Added community support for building and running RetDec inside Docker (#60).
  • Enhancement: Decrease the default timeout when downloading the support package during installation (#6).
  • Enhancement: Any shell can be used to install the decompiler, not just Bash.
  • Enhancement: Added unofficial support for macOS build (#7).
  • Enhancement: Allow 32b versions of bin2llvmir and llvmir2hll on Windows access more memory (#7).
  • Enhancement: Added a method in loader::Image to obtain segment content as a raw data pointer.
  • Enhancement: retdec-fileinfo now prints raw bytes of Rich Header in the JSON format (#288).
  • Enhancement: Delayed imports in PE files are now distinguished from non-delayed imports in the output from retdec-fileinfo by a boolean flag (#287).
  • Fix: Add a missing .c extension to files generated by retdec-archive-decompiler.sh (#261.
  • Fix: Fixed build of yaracpp on 32b Unix-like operating systems (#299).
  • Fix: Fixed parsing of PE files having corrupted import tables (#101).
  • Fix: Fixed parsing of delayed imports by ordinals in PE files (#282).
  • Fix: Fixed ordering of detected tools (e.g. compilers and packers) on systems whose std::sort() is not stable (#262).
  • Fix: When running RetDec on macOS, gtimeout is now used instead of timeout (#260). This fixes the following runtime error when running retdec-archive-decompiler.sh: The timeout command is required but it is not available.
  • Fix: When running RetDec on macOS, greadlink is now used instead of readlink. This fixes runtime errors of the form readlink: illegal option -- e.
  • Fix: retdec-decompiler.sh on macOS no longer requires the GNU version of sed (#257).
  • Fix: #!/usr/bin/env bash is now used instead of #!/bin/bash to run our scripts (#258).
  • Fix: Fixed retdec-fileinfo crashes when verifying digital signature of PE files (#87).
  • Fix: Fixed infinite loop in COFF word length detection for rare cases (#242).
  • Fix: Fixed several ELF bugs causing crashes (#239, #240, #241, #248).
  • Fix: Fixed unit-tests discovery in retdec-tests-runner.sh on macOS (#238).
  • Fix: Non-printable characters in ELF .dynamic section output are now replaced with hexadecimal codes (#82).
  • Fix: Fix for several segmentation faults in ELF parsing module (#89).
  • Fix: Added a workaround for a GCC 5 compilation bug (#231).
  • Fix: Fix LLVM (and therefore RetDec) build on systems with architecture other than x86 (llvm #3).
  • Fix: Valid Mach-O x64 relocations are no longer ignored.
  • Fix: Only a single copy of LLVM (and all other components) is kept (#14).
  • Fix: RetDec works even if it is installed to a directory which have whitespaces in its path.
  • Fix: Reduced the length of build paths to external projects (#61).
  • Fix: Build of googletest with VS 2017 (#55).
  • Fix: Build of retdec-config when two different compilers are employed (#52).
  • Fix: Build of the llvm submodule with VS 2017 when DIA SDK is installed (#61).
  • Fix: Ordering of compiler detections (#39).
  • Fix: Remove duplicate lib prefix when installing libdwarf libraries (#31).
  • Fix: When installing the decompiler, do not remove the entire share directory (#12).
  • Fix: Improve OS type detection when installing the decompiler.
  • Fix: Remove useless OS type detection when running decompilations (#10).
  • Fix: Filesystem path in utils now returns correct information when it is appended with another path.
  • Fix: Plain output of fileinfo now escapes non-printable characters in subject/issuer name/organization of PE certificates (#253).
  • Fix: Invalid dates are no longer shown in the output of fileinfo (#251).
  • Fix: Fixed crash of fileinfo when accessing slightly corrupted security directory (#255, #250).
  • Fix: Delayed imports are now ignored when calculating import-table hashes for PE files (#287).
  • Fix: Import-table hashes for Mach-O binaries are now always generated even if commands for library loading are not ordered (#285).
  • Fix: OpenSSL can now be built on ARM architectures (Linux and Windows) and other non-recognized architectures (Linux only) (#299).
  • Fix: Decompilation in raw mode (--mode raw) no longer removes the original input file when cleanup option is used (--cleanup) (#309).
  • Fix: Retdec can now be cross-compiled (yaracpp #2).

v3.0 (2017-12-13)

Initial public release.