|
@@ -329,29 +329,24 @@ if __name__ == "__main__":
|
|
|
|
|
|
f.seek(0x14)
|
|
|
flmap0, flmap1 = unpack("<II", f.read(8))
|
|
|
- nr = flmap0 >> 24 & 0x7
|
|
|
frba = flmap0 >> 12 & 0xff0
|
|
|
fmba = (flmap1 & 0xff) << 4
|
|
|
- if nr >= 2:
|
|
|
- f.seek(frba)
|
|
|
- flreg0, flreg1, flreg2 = unpack("<III", f.read(12))
|
|
|
- fd_start = (flreg0 & 0x1fff) << 12
|
|
|
- fd_end = flreg0 >> 4 & 0x1fff000 | 0xfff + 1
|
|
|
- me_start = (flreg2 & 0x1fff) << 12
|
|
|
- me_end = flreg2 >> 4 & 0x1fff000 | 0xfff + 1
|
|
|
-
|
|
|
- if me_start >= me_end:
|
|
|
- sys.exit("The ME/TXE region in this image has been disabled")
|
|
|
-
|
|
|
- f.seek(me_start + 0x10)
|
|
|
- if f.read(4) != b"$FPT":
|
|
|
- sys.exit("The ME/TXE region is corrupted or missing")
|
|
|
-
|
|
|
- print("The ME/TXE region goes from {:#x} to {:#x}"
|
|
|
- .format(me_start, me_end))
|
|
|
- else:
|
|
|
- sys.exit("This image does not contains a ME/TXE firmware NR = {})"
|
|
|
- .format(nr))
|
|
|
+ f.seek(frba)
|
|
|
+ flreg0, flreg1, flreg2 = unpack("<III", f.read(12))
|
|
|
+ fd_start = (flreg0 & 0x1fff) << 12
|
|
|
+ fd_end = flreg0 >> 4 & 0x1fff000 | 0xfff + 1
|
|
|
+ me_start = (flreg2 & 0x1fff) << 12
|
|
|
+ me_end = flreg2 >> 4 & 0x1fff000 | 0xfff + 1
|
|
|
+
|
|
|
+ if me_start >= me_end:
|
|
|
+ sys.exit("The ME/TXE region in this image has been disabled")
|
|
|
+
|
|
|
+ f.seek(me_start + 0x10)
|
|
|
+ if f.read(4) != b"$FPT":
|
|
|
+ sys.exit("The ME/TXE region is corrupted or missing")
|
|
|
+
|
|
|
+ print("The ME/TXE region goes from {:#x} to {:#x}"
|
|
|
+ .format(me_start, me_end))
|
|
|
else:
|
|
|
sys.exit("Unknown image")
|
|
|
|