Source code for bindiff.types
from enum import IntEnum
[docs]
class BindiffNotFound(Exception):
"""
Exception raised if Bindiff binary cannot be found
when trying to diff two binaries.
"""
pass
[docs]
class BasicBlockAlgorithm(IntEnum):
"""
Basic block matching algorithm enum. (id's does not seem to change in
bindiff so hardcoded here)
"""
edges_prime_product = 1
hash_matching_four_inst_min = 2
prime_matching_four_inst_min = 3
call_reference_matching = 4
string_references_matching = 5
edges_md_index_top_down = 6
md_index_matching_top_down = 7
edges_md_index_bottom_up = 8
md_index_matching_bottom_up = 9
relaxed_md_index_matching = 10
prime_matching_no_inst_min = 11
edges_lengauer_tarjan_dominated = 12
loop_entry_matching = 13
self_loop_matching = 14
entry_point_matching = 15
exit_point_matching = 16
instruction_count_matching = 17
jump_sequence_matching = 18
propagation_size_one = 19
manual = 20
[docs]
class FunctionAlgorithm(IntEnum):
"""
Function matching algorithm enum. (id's does not seem to change in
bindiff so hardcoded here)
"""
name_hash_matching = 1
hash_matching = 2
edges_flowgraph_md_index = 3
edges_callgraph_md_index = 4
md_index_matching_flowgraph_top_down = 5
md_index_matching_flowgraph_bottom_up = 6
prime_signature_matching = 7
md_index_matching_callGraph_top_down = 8
md_index_matching_callGraph_bottom_up = 9
relaxed_md_index_matching = 10
instruction_count = 11
address_sequence = 12
string_references = 13
loop_count_matching = 14
call_sequence_matching_exact = 15
call_sequence_matching_topology = 16
call_sequence_matching_sequence = 17
call_reference_matching = 18
manual = 19