angr.analyses.cfg.pe_msvc_eh_structs¶
Struct definitions and parsing utilities for MSVC C++ exception handling structures found in x86 PE binaries.
References: - ___CxxFrameHandler3: The MSVC C++ exception handler for 32-bit binaries. - __EH_prolog3 / __EH_prolog3_catch / __EH_prolog3_GS: C++ EH prolog helpers. - __SEH_prolog4 / __SEH_prolog4_GS: SEH prolog helpers. - FuncInfo: Describes exception handling metadata for a function. - UnwindMapEntry: Describes state unwinding actions during exception handling.
- class angr.analyses.cfg.pe_msvc_eh_structs.FuncInfo¶
Bases:
objectParsed FuncInfo struct from a 32-bit PE binary.
- __init__(addr, magic_number, max_state, p_unwind_map, n_try_blocks, p_try_block_map, n_ip_map_entries, p_ip_to_state_map, p_es_type_list, eh_flags)¶
- addr
- magic_number
- max_state
- p_unwind_map
- n_try_blocks
- p_try_block_map
- n_ip_map_entries
- p_ip_to_state_map
- p_es_type_list
- eh_flags
- class angr.analyses.cfg.pe_msvc_eh_structs.UnwindMapEntry¶
Bases:
objectParsed UnwindMapEntry struct from a 32-bit PE binary.
- addr
- to_state
- action
- angr.analyses.cfg.pe_msvc_eh_structs.parse_funcinfo(memory, addr)¶
Parse a FuncInfo struct at the given address.
- class angr.analyses.cfg.pe_msvc_eh_structs.EH4ScopeTable¶
Bases:
objectParsed _EH4_SCOPETABLE struct from a 32-bit PE binary.
- __init__(addr, gs_cookie_offset, gs_cookie_xor_offset, eh_cookie_offset, eh_cookie_xor_offset, records)¶
- addr
- gs_cookie_offset
- gs_cookie_xor_offset
- eh_cookie_offset
- eh_cookie_xor_offset
- records
- class angr.analyses.cfg.pe_msvc_eh_structs.EH4ScopeRecord¶
Bases:
objectParsed _EH4_SCOPETABLE_RECORD struct from a 32-bit PE binary.
- __init__(enclosing_level, filter_func, handler_func)¶
- enclosing_level
- filter_func
- handler_func
- angr.analyses.cfg.pe_msvc_eh_structs.parse_eh4_scopetable(memory, addr, code_range=None)¶
Parse an _EH4_SCOPETABLE at the given address.
- Parameters:
- Return type:
- Returns:
An EH4ScopeTable object, or None if parsing fails.
- angr.analyses.cfg.pe_msvc_eh_structs.parse_unwind_map(memory, addr, count)¶
Parse an array of UnwindMapEntry structs.
- Parameters:
- Return type:
- Returns:
A list of UnwindMapEntry objects.
- class angr.analyses.cfg.pe_msvc_eh_structs.TryBlockMapEntry¶
Bases:
objectParsed TryBlockMapEntry struct from a 32-bit PE binary.
- __init__(addr, try_low, try_high, catch_high, n_catches, p_handler_array, handlers)¶
- addr
- try_low
- try_high
- catch_high
- n_catches
- p_handler_array
- handlers
- class angr.analyses.cfg.pe_msvc_eh_structs.HandlerType¶
Bases:
objectParsed HandlerType struct from a 32-bit PE binary.
- __init__(addr, adjectives, p_type, disp_catch_obj, address_of_handler)¶
- addr
- adjectives
- p_type
- disp_catch_obj
- address_of_handler
- angr.analyses.cfg.pe_msvc_eh_structs.parse_handler_array(memory, addr, count)¶
Parse an array of HandlerType structs.
- Parameters:
- Return type:
- Returns:
A list of HandlerType objects.
- angr.analyses.cfg.pe_msvc_eh_structs.parse_try_block_map(memory, addr, count)¶
Parse an array of TryBlockMapEntry structs, including their nested HandlerType arrays.
- Parameters:
- Return type:
- Returns:
A list of TryBlockMapEntry objects.