Improve brutefid
git-svn-id: svn+ssh://localhost/home/henryk/svn/cyberflex-shell/trunk@185 f711b948-2313-0410-aaa9-d29f33439f0b
This commit is contained in:
parent
6aaff0ef86
commit
8f5951ad23
63
brutefid.py
63
brutefid.py
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: iso-8859-1 -*-
|
# -*- coding: iso-8859-1 -*-
|
||||||
|
|
||||||
import pycsc, utils, cards, TLV_utils, sys, binascii, time, getopt
|
import pycsc, utils, cards, TLV_utils, sys, binascii, time, getopt, traceback
|
||||||
|
|
||||||
STATUS_INTERVAL = 10
|
STATUS_INTERVAL = 10
|
||||||
|
|
||||||
|
@ -88,8 +88,7 @@ if __name__ == "__main__":
|
||||||
if len(arguments) > 0:
|
if len(arguments) > 0:
|
||||||
top_level = ("".join( ["".join(e.split()) for e in arguments] )).split("/")
|
top_level = ("".join( ["".join(e.split()) for e in arguments] )).split("/")
|
||||||
top_level = [binascii.unhexlify(e) for e in top_level]
|
top_level = [binascii.unhexlify(e) for e in top_level]
|
||||||
|
|
||||||
|
|
||||||
pycsc_card = connect(reader)
|
pycsc_card = connect(reader)
|
||||||
card = cards.new_card_object(pycsc_card)
|
card = cards.new_card_object(pycsc_card)
|
||||||
cards.generic_card.DEBUG = False
|
cards.generic_card.DEBUG = False
|
||||||
|
@ -103,32 +102,38 @@ if __name__ == "__main__":
|
||||||
#objective = (0x2f00, 0x5015) ## Test cases on an OpenSC formatted PKCS#15 card
|
#objective = (0x2f00, 0x5015) ## Test cases on an OpenSC formatted PKCS#15 card
|
||||||
objective = range(0xffff+1)
|
objective = range(0xffff+1)
|
||||||
#objective = range(0x3fff+1) + range(0x7000,0x7fff+1) + range(0xc000,0xd4ff+1) + range(0xd600+1,0xd7ff+1) + range(0xdc00+1,0xffff+1)
|
#objective = range(0x3fff+1) + range(0x7000,0x7fff+1) + range(0xc000,0xd4ff+1) + range(0xd600+1,0xd7ff+1) + range(0xdc00+1,0xffff+1)
|
||||||
for fid in objective:
|
try:
|
||||||
data = chr(fid >> 8) + chr(fid & 0xff)
|
for fid in objective:
|
||||||
if loop % STATUS_INTERVAL == 0:
|
data = chr(fid >> 8) + chr(fid & 0xff)
|
||||||
elapsed = time.time() - start_time
|
if loop % STATUS_INTERVAL == 0:
|
||||||
status = "(elapsed: %i:%02i:%02i" % (elapsed / 3600, (elapsed / 60) % 60, elapsed % 60)
|
elapsed = time.time() - start_time
|
||||||
try:
|
status = "(elapsed: %i:%02i:%02i" % (elapsed / 3600, (elapsed / 60) % 60, elapsed % 60)
|
||||||
eta = (elapsed / loop) * (len(objective) - loop)
|
try:
|
||||||
status = status + ", left: %i:%02i:%02i)" % (eta / 3600, (eta / 60) % 60, eta % 60)
|
eta = (elapsed / loop) * (len(objective) - loop)
|
||||||
except:
|
status = status + ", left: %i:%02i:%02i)" % (eta / 3600, (eta / 60) % 60, eta % 60)
|
||||||
status = status + ")"
|
except:
|
||||||
loop = loop + 1
|
status = status + ")"
|
||||||
|
loop = loop + 1
|
||||||
result = card.change_dir(data)
|
|
||||||
if card.check_sw(result.sw):
|
if True:
|
||||||
results_dir[fid] = result
|
result = card.change_dir(data)
|
||||||
card.change_dir()
|
if card.check_sw(result.sw):
|
||||||
if top_level is not None:
|
results_dir[fid] = result
|
||||||
for e in top_level: card.change_dir(e)
|
card.change_dir()
|
||||||
|
if top_level is not None:
|
||||||
print >>sys.stderr, "\rDir %04X -> %02X%02X %s" % (fid, result.sw1, result.sw2, status),
|
for e in top_level: card.change_dir(e)
|
||||||
|
|
||||||
result = card.open_file(data)
|
print >>sys.stderr, "\rDir %04X -> %02X%02X %s" % (fid, result.sw1, result.sw2, status),
|
||||||
if card.check_sw(result.sw):
|
|
||||||
results_file[fid] = result
|
result = card.open_file(data)
|
||||||
|
if card.check_sw(result.sw):
|
||||||
print >>sys.stderr, "\rFile %04X -> %02X%02X %s" % (fid, result.sw1, result.sw2, status),
|
results_file[fid] = result
|
||||||
|
|
||||||
|
print >>sys.stderr, "\rFile %04X -> %02X%02X %s" % (fid, result.sw1, result.sw2, status),
|
||||||
|
except (SystemExit, KeyboardInterrupt):
|
||||||
|
raise
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
|
||||||
|
|
||||||
print >>sys.stderr
|
print >>sys.stderr
|
||||||
|
|
Loading…
Reference in New Issue