#!/usr/bin/env python # # parse CSMCORE.raw from AMI UEFI # 3-clause BSD license # roxfan@skynet.be import struct, sys if len(sys.argv) < 2: fn = "CSMCORE.raw" else: fn = sys.argv[1] f = open(fn, "rb") while True: print "%08X"%f.tell(), hdr = f.read(10) if len(hdr) == 0: break typ, vid, did, size = struct.unpack(" %s" % fname if size == 0xFFFFFFFF: d = f.read() else: d = f.read(size) open(fname, "wb").write(d)