angr.simos.linux

class angr.simos.linux.SimLinux

Bases: SimUserland

OS-specific configuration for *nix-y OSes.

__init__(project, **kwargs)
state_entry(args=None, env=None, argc=None, **kwargs)
set_entry_register_values(state)
state_full_init(**kwargs)
prepare_function_symbol(symbol_name, basic_addr=None)

Prepare the address space with the data necessary to perform relocations pointing to the given symbol.

Returns a 2-tuple. The first item is the address of the function code, the second is the address of the relocation target.

initialize_segment_register_x64(state, concrete_target)

Set the fs register in the angr to the value of the fs register in the concrete process

Parameters:
  • state – state which will be modified

  • concrete_target – concrete target that will be used to read the fs register

Returns:

None

initialize_gdt_x86(state, concrete_target)

Create a GDT in the state memory and populate the segment registers. Rehook the vsyscall address using the real value in the concrete process memory

Parameters:
  • state – state which will be modified

  • concrete_target – concrete target that will be used to read the fs register

Returns:

get_segment_register_name()