mirror of
https://github.com/thecompu/Driv3rs.git
synced 2024-06-01 07:41:56 +00:00
wrote function and code for version bytes
This commit is contained in:
parent
08d89a840e
commit
9c8d5ff997
28
3Slurp.py
28
3Slurp.py
|
@ -21,6 +21,13 @@ def readUnpack(bytes, **options):
|
||||||
offset_unpacked = unpack ('< B', SOS)
|
offset_unpacked = unpack ('< B', SOS)
|
||||||
return int(ord(SOS))
|
return int(ord(SOS))
|
||||||
|
|
||||||
|
def nibblize(byte, **options):
|
||||||
|
if options.get("direction") == 'high':
|
||||||
|
return str(int(hex(byte >> 4), 0))
|
||||||
|
if options.get("direction") == 'low':
|
||||||
|
return str(int(hex(byte & 0x0F), 0))
|
||||||
|
|
||||||
|
|
||||||
dev_types ={273: 'Character Device, Write-Only, Formatter',
|
dev_types ={273: 'Character Device, Write-Only, Formatter',
|
||||||
321: 'Character Device, Write-Only, RS232 Printer', # dictionary for types and subtypes
|
321: 'Character Device, Write-Only, RS232 Printer', # dictionary for types and subtypes
|
||||||
577: 'Character Device, Write-Only, Silentype',
|
577: 'Character Device, Write-Only, Silentype',
|
||||||
|
@ -118,15 +125,22 @@ for i in range(0,len(drivers_list)): # begin
|
||||||
drivers_list[i]['block_num'] = 'Character Device or Undefined' # log field as char device or undefined
|
drivers_list[i]['block_num'] = 'Character Device or Undefined' # log field as char device or undefined
|
||||||
mfg = readUnpack(2, type = 'b') # read mfg bytes
|
mfg = readUnpack(2, type = 'b') # read mfg bytes
|
||||||
try:
|
try:
|
||||||
drivers_list[i]['mfg'] = mfgs[mfg]
|
drivers_list[i]['mfg'] = mfgs[mfg] # try to match key and place in dictionary
|
||||||
except:
|
except:
|
||||||
if 1 <= mfg <= 31:
|
if 1 <= mfg <= 31: # if exception, check if mfg is between 1 and 31
|
||||||
drivers_list[i]['mfg'] = 'Apple Computer'
|
drivers_list[i]['mfg'] = 'Apple Computer' # yes, this is Apple Computer
|
||||||
else:
|
else:
|
||||||
drivers_list[i]['mfg'] = 'Unknown'
|
drivers_list[i]['mfg'] = 'Unknown' # no, this is unknown. log as such
|
||||||
drivers_list[i]['version'] = '1.01c'
|
atell = SOSfile.tell()
|
||||||
|
ver_byte0 = readUnpack(1, type = '1') # grab the V/v0 numbers | V = high-nibble, v0 = low-nibble
|
||||||
|
ver_byte1 = readUnpack(1, type = '1') # grab the v1/Q numbers | v1 = high-nibble, Q = low-nibble
|
||||||
|
V = nibblize(ver_byte1, direction = 'high') # grab major version number as string
|
||||||
|
v0 = nibblize(ver_byte1, direction = 'low') # grab first minor version number (v0) as string
|
||||||
|
v1 = nibblize(ver_byte0, direction = 'high') # grab second minor version number (v1) as string
|
||||||
|
Q = nibblize(ver_byte0, direction = 'low') # grab qualifier number. We only care about A (Alpha), B (Beta), or E (Experimental)
|
||||||
|
drivers_list[i]['version'] = V + '.' + v0 + v1 + Q
|
||||||
|
|
||||||
print drivers_list[i]
|
#print drivers_list[i]
|
||||||
# print drivers_list[i]['name_len']
|
print drivers_list[i]['version']
|
||||||
|
|
||||||
SOSfile.close()
|
SOSfile.close()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user