Misc cleanup: Rm old script, unused executor hooking functions (#38)

* Rm old irrelevant example script

* Make this easier to copy and paste

* Rm old unused executor hooking
This commit is contained in:
Mark Mossberg 2017-03-01 13:47:46 -05:00 committed by GitHub
parent 275a85e08e
commit f0069792c3
3 changed files with 1 additions and 54 deletions

View File

@ -1,32 +0,0 @@
import sys
from manticore import Manticore
# This example demonstrates guiding Manticore's analysis
# by ignoring all branches to libc
def find_lib(m, name):
for vmmap in m.memory:
if vmmap.name == 'libc.so.6':
return vmmap
if __name__ == '__main__':
path = sys.argv[1]
# Create a new Manticore object
m = Manticore(path)
# Now that binary is loaded, pull out where libc is mapped
lib = find_lib(m, 'libc')
if lib is None:
sys.exit(1)
# Ensure that we ignore all possible branches to libc
# This hook returns False if we should abandon exploration
# or True to continue
def fork_hook(state):
_from, _to = lib.start, lib.start + lib.size
return not (_from <= state.cpu.PC < _to)
m.add_fork_hook(fork_hook)
# Start path exploration. start() returns when Manticore
# finishes
m.run()

View File

@ -7,8 +7,7 @@
* $ gcc -m32 -static -g state_explore.c -o state_explore
*
* # Pull out the address of the branch we want to ignore
* $ ADDRESS=0x$(objdump -S state_explore | grep -A 1 'value == 0x41' |
* tail -n 1 | sed 's|^\s*||g' | cut -f1 -d:)
* $ ADDRESS=0x$(objdump -S state_explore | grep -A 1 'value == 0x41' | tail -n 1 | sed 's|^\s*||g' | cut -f1 -d:)
*
* # Run the analysis
* $ python state_explore.py state_explore $ADDRESS

View File

@ -627,26 +627,6 @@ class Executor(object):
return new_state
def add_hook(self, pc, callback, user_data=None):
'''This setups a hook.
Invokes callback when the specified address pc is reached
Returns an id to reference this specific hook.
'''
if self.hooks is None:
self.hooks = {}
self.hooks.setdefault(pc, set()).add( (callback, user_data) )
return hash( (pc, callback, user_data) )
def del_hook(self, n):
''' Deletes the hook by id '''
for pc, callback, user_data in self.hooks.items():
if hash((pc, callback, user_data)) == n:
self.hooks[pc].remove((callback, user_data))
if len(self.hooks[pc]) == 0 :
del self.hooks[pc]
return True
return False
def generate_testcase(self, state, message = 'Testcase generated'):
with self._lock:
self._test_number.value += 1