* Added brief example descriptions to README * Update config script * Update sym.py API usage * Remove individual example descriptions * fix mcore init * consistently document examples * make basic_sym runnable * More path fixes * cleanup; update api
32 lines
682 B
Python
Executable File
32 lines
682 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import sys
|
|
from manticore import Manticore
|
|
|
|
'''
|
|
Demonstrates the ability to set a basic hook on a specific program counter and
|
|
the ability to read from memory.
|
|
'''
|
|
|
|
if __name__ == '__main__':
|
|
path = sys.argv[1]
|
|
pc = int(sys.argv[2], 0)
|
|
|
|
m = Manticore(path)
|
|
|
|
# Trigger an event when PC reaches a certain value
|
|
@m.hook(pc)
|
|
def reached_goal(state):
|
|
cpu = state.cpu
|
|
|
|
assert cpu.PC == pc
|
|
|
|
instruction = cpu.read_int(cpu.PC)
|
|
print "Execution goal reached."
|
|
print "Instruction bytes: {:08x}".format(instruction)
|
|
|
|
# Start path exploration. m.run() returns when Manticore
|
|
# finishes
|
|
m.run()
|
|
|