angr

class revenge.plugins.angr.Angr(process, thread=None)[source]

Bases: revenge.plugins.Plugin

Use angr to enrich your reversing.

Examples

# Grab current location
thread = list(process.threads)[0]

# Load options and state options can be configured
# They use the same name but are exposed as attributes here
# If you SET any of these, the project will be re-loaded next
# time you ask for an object. It will NOT affect the current
# object instance you have.
thread.angr.load_options
thread.angr.support_selfmodifying_code
thread.angr.use_sim_procedures
thread.angr.add_options

# Ask for a simgr for this location
simgr = thread.angr.simgr

# Whoops, we wanted self modifying code!
thread.angr.support_selfmodifying_code = True
simgr = thread.angr.simgr

# Use this as you normally would
simgr.explore(find=winner)
property exclude_sim_procedures_list

Which procedures should angr not wrap?

Type

bool

property load_options

angr load_options

property project

Returns the angr project for this file.

property simgr

Returns an angr simgr object for the current state.

property state

Returns a state object for the current thread state.

property support_selfmodifying_code

Should angr support self modifying code?

Type

bool

property use_sim_procedures

Should angr use sim procedures?

Type

bool