mirror of https://github.com/geohot/qira
use sleeps
This commit is contained in:
parent
e0d14859d3
commit
ef226335b2
|
@ -1,6 +1,7 @@
|
||||||
import Queue
|
import Queue
|
||||||
from model import Function, Block, DESTTYPE
|
from model import Function, Block, DESTTYPE
|
||||||
import byteweight
|
import byteweight
|
||||||
|
import time
|
||||||
|
|
||||||
def analyze_functions(static):
|
def analyze_functions(static):
|
||||||
make_function_at(static, static['entry'])
|
make_function_at(static, static['entry'])
|
||||||
|
@ -18,6 +19,7 @@ def make_function_at(static, address, recurse = True):
|
||||||
if static[address]['function'] != None:
|
if static[address]['function'] != None:
|
||||||
# already function
|
# already function
|
||||||
return
|
return
|
||||||
|
start = time.time()
|
||||||
block_starts = set([address])
|
block_starts = set([address])
|
||||||
function_starts = set()
|
function_starts = set()
|
||||||
this_function = Function(address)
|
this_function = Function(address)
|
||||||
|
@ -61,6 +63,9 @@ def make_function_at(static, address, recurse = True):
|
||||||
if d not in done:
|
if d not in done:
|
||||||
pending.put(d)
|
pending.put(d)
|
||||||
done.add(d)
|
done.add(d)
|
||||||
|
if (time.time() - start) > 0.01:
|
||||||
|
time.sleep(0.01)
|
||||||
|
start = time.time()
|
||||||
|
|
||||||
#print map(hex, done)
|
#print map(hex, done)
|
||||||
|
|
||||||
|
@ -77,6 +82,9 @@ def make_function_at(static, address, recurse = True):
|
||||||
i = static[address]['instruction']
|
i = static[address]['instruction']
|
||||||
this_block.add(address)
|
this_block.add(address)
|
||||||
static[address]['block'] = this_block
|
static[address]['block'] = this_block
|
||||||
|
if (time.time() - start) > 0.01:
|
||||||
|
time.sleep(0.01)
|
||||||
|
start = time.time()
|
||||||
static['blocks'].add(this_block)
|
static['blocks'].add(this_block)
|
||||||
|
|
||||||
# find more functions
|
# find more functions
|
||||||
|
|
Loading…
Reference in New Issue