[Wisp-cvs] wisp/users/dig elfdump.py,1.5,1.6
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-04-14 23:59:13
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv9489 Modified Files: elfdump.py Log Message: cleanup Index: elfdump.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/elfdump.py,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- elfdump.py 14 Apr 2003 23:56:42 -0000 1.5 +++ elfdump.py 14 Apr 2003 23:59:09 -0000 1.6 @@ -22,15 +22,15 @@ for filename in args: f = open(filename, 'r') def take (tpl): return ftake(f, tpl) - e_ident = f.read(6) print 'ELF header of %r:' % filename - print 'Magic: %r:' % e_ident[0:4] - state_enum('File class', ord(e_ident[4]), {1: '32-bit', 2: '64-bit'}) - state_enum('Data encoding', ord(e_ident[5]), { + print 'Magic: %r:' % f.read(4) + state_enum('File class', take('b'), {1: '32-bit', 2: '64-bit'}) + encoding = take('b') + state_enum('Data encoding', encoding, { 1: "2's complement LittleEndian", 2: "2's complement BigEndian"}) - if ord(e_ident[5]) == 1: bytesex = '<'; bindump.bytesex = '<' - elif ord(e_ident[5]) == 2: bytesex = '>'; bindump.bytesex = '>' + if encoding == 1: bytesex = '<'; bindump.bytesex = '<' + elif encoding == 2: bytesex = '>'; bindump.bytesex = '>' else: bytesex = ''; bindump.bytesex = '' state_enum('File version', take('b'), {1: 'current'}) print 'Padding bytes: %s' % shorthex(f.read(9)) @@ -52,9 +52,9 @@ state_enum('Object file version', e_version, {1: 'current'}) print 'Entry point: [%08x]' % e_entry - e_shoff, e_flags, e_ehsize, e_phentsize, e_phnum, e_shentsize = \ - take('ttwwww') - print 'Processor-specific flags: [%08x]' % e_flags + e_shoff = take('t') + print 'Processor-specific flags: [%08x]' % take('t') + e_ehsize, e_phentsize, e_phnum, e_shentsize = take('wwww') print 'ELF header size: [%08x] bytes' % e_ehsize print 'Program header table: %i entries at [%08x], 0x%x bytes each' % \ (e_phnum, e_phoff, e_phentsize) |