Diaphora 2.0.3
This is mainly a bug fixes release. The following is the whole list of things that were fixed, modified or updated:
HEUR: Added heuristic "Same address and mnemonics"
BUG: Fixed many mistakes in the heuristics files
BUG: Added required import when diaphora_ida.py is imported by another Python script
BUG: Change "python" to "python3" in the header of diaphora.py
BUG: Multiple code clean-ups
MISC: Updated copyright notices
BUG: Fix for the bug "Importability for global variables in certain cases is significantly diminished".
BUG: When importing at instruction level, some elements were being missed because only one way was considered (wrongfully).
MISC: Warn users if they are using Python2 instead of Python3 in Diaphora master version
BUG: Always show demangled function names in the choosers.
BUG: Ignore small functions in find_matches_in_hole()
.
BUG: Do not consider good matches anything with a ratio smaller than 0.5 in find_from_matches()
.
BUG: GUI: Pseudo-code diffs where being done the other way around.
BUG: Do not show multiple times the message "special segments cannot be decompiled".
BUG: The function get_function_from_dictionary()
was broken, crashing all project specific scripts.
HEUR: Make a default heuristic the previously experimental 'Call address sequence' one when using best matches.
HEUR: The heuristic "Same rare constant" is now considered a slow one.
HEUR: The heuristic "Equal small pseudo-code" is now considered unreliable.
BUG: IDA home seems not to export "ctree_visitor_t", thus, Diaphora fails with this version.
BUG: When parsing the "preds" for a basic block during export time, the "succs" where being used. This bug has ~5 years.
BUG: When launching Diaphora from the command line, self.hooks was not initialized.
BUG: If a constant started with an invalid utf-8 character the Python error UnicodeDecodeError would be triggered.
BUG: Sometimes, IDA might fail getting the definition of a local type with the usual "UnicodeDecodeError" error.
BUG: Functions with the same name, with the same MD-Index with a value > 10.0 were incorrectly always considered to be absolutely equal even when there were small changes (ie: only one line)
EXPORT: Added field 'userdata' to the exported data.
BUG: Run the diff even if project_script is None
DIFF: Added scripting support for the diffing process.
HEUR: Select all the fields that are commonly used by most SQL based heuristics.
HOOKS: Added a 2nd example to script the diffing process.
BUG: set_func_cmt doesn't accept an ea_t object any more
BUG: set_func_cmt doesn't accept an address (ea_t), it need now a function object.
GUI: Remove HTML characters from messages, they aren't supported any more.
GUI: Set a fixed column width for line wrapping in the pseudo-code diffing view.
GUI: Add menu separators.
GUI: Only show choosers and register the menus if there is anything to show.
CORE: Do not fail when diffing if database versions are different, just show a warning.