refactored client/pm3_*.py to use with statements, contants and iterators

This commit is contained in:
dn337t@gmail.com 2012-06-22 12:02:19 +00:00
parent 0aceafbf2e
commit 70049c47db
2 changed files with 11 additions and 24 deletions

View file

@ -6,6 +6,7 @@
# Converts PM3 Mifare Classic emulator EML text file to MFD binary dump file
'''
from __future__ import with_statement
import sys
import binascii
@ -14,22 +15,13 @@ def main(argv):
if argc < 3:
print 'Usage:', argv[0], 'input.eml output.mfd'
sys.exit(1)
try:
file_inp = open(argv[1], "r")
file_out = open(argv[2], "wb")
line = file_inp.readline()
while line:
line = line.rstrip('\n')
line = line.rstrip('\r')
with file(argv[1], "r") as file_inp, file(argv[2], "wb") as file_out:
for line in file_inp:
line = line.rstrip('\n').rstrip('\r')
print line
data = binascii.unhexlify(line)
file_out.write(data)
line = file_inp.readline()
finally:
file_inp.close()
file_out.close()
if __name__ == '__main__':
main(sys.argv)

View file

@ -6,31 +6,26 @@
# Converts PM3 Mifare Classic MFD binary dump file to emulator EML text file
'''
from __future__ import with_statement
import sys
import binascii
READ_BLOCKSIZE = 16
def main(argv):
argc = len(argv)
if argc < 3:
print 'Usage:', argv[0], 'input.mfd output.eml'
sys.exit(1)
try:
file_inp = open(argv[1], "rb")
file_out = open(argv[2], "w")
while 1:
# TODO: need to use defines instead of hardcoded 16, 64, etc.
byte_s = file_inp.read(16)
with file(argv[1], "rb") as file_inp, file(argv[2], "w") as file_out:
while True:
byte_s = file_inp.read(READ_BLOCKSIZE)
if not byte_s:
break
hex_char_repr = binascii.hexlify(byte_s)
file_out.write(hex_char_repr)
file_out.write("\n")
finally:
file_inp.close()
file_out.close()
if __name__ == '__main__':
main(sys.argv)