From 1a3ada8b78762ffeadf02c032cf9be3589cbe82c Mon Sep 17 00:00:00 2001 From: jjensn Date: Mon, 16 Dec 2019 14:43:08 -0500 Subject: [PATCH 1/4] Add support for alternative SWSMI structure, require SMRAM base address - Add support for an alternative SWSMI structure type using 'SWSM' as signature - Require SMRAM base address parameter - Update regex for files dumped with UEFIDump v0.1.9 - Pin third-party dependencies to project as submodules/binaries - Update README --- .gitmodules | 3 ++ README.TXT | 6 ++- UEFIDump | Bin 0 -> 380676 bytes ida-efiutils | 1 + smram_parse.py | 130 +++++++++++++++++++++++++++++++++++++++++-------- 5 files changed, 118 insertions(+), 22 deletions(-) create mode 100644 .gitmodules create mode 100644 UEFIDump create mode 160000 ida-efiutils diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..062c1a3 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "ida-efiutils"] + path = ida-efiutils + url = https://github.com/snare/ida-efiutils diff --git a/README.TXT b/README.TXT index 627db87..f42792e 100644 --- a/README.TXT +++ b/README.TXT @@ -10,7 +10,9 @@ http://blog.cr4.sh/2016/10/exploiting-ami-aptio-firmware.html To use full capabilities of this tool you need to install UEFIDump (https://github.com/LongSoft/UEFITool/releases/tag/A32), ida-efiutils (https://github.com/snare/ida-efiutils) and edit corresponding variables in smram_parse.py code. -This tool was tested only with 6 generation Intel NUC firmware based on AMI Aptio V code base. +This tool was tested only with: + * 6 generation Intel NUC firmware based on AMI Aptio V code base + * MSI MS-7B98, firmware version: E7B98IMS.160 FEATURES: @@ -26,7 +28,7 @@ FEATURES: USAGE: - $ smram_parse.py [flash_image_dump] + $ smram_parse.py -i -b [-s SMRAM_size] [-f flash_image_dump] Output example: https://raw.githubusercontent.com/Cr4sh/smram_parse/master/EXAMPLE.TXT diff --git a/UEFIDump b/UEFIDump new file mode 100644 index 0000000000000000000000000000000000000000..fe79e702f77bb9bc9452c5d15c88b05362bb7716 GIT binary patch literal 380676 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

;l|g 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®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%0AKD}R7NmRg*C;;*`QgaFOOz`& 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 literal 0 HcmV?d00001 diff --git a/ida-efiutils b/ida-efiutils new file mode 160000 index 0000000..f272e70 --- /dev/null +++ b/ida-efiutils @@ -0,0 +1 @@ +Subproject commit f272e70991d25566300f11511bd0fa0ed6fcd538 diff --git a/smram_parse.py b/smram_parse.py index b1bdbd9..7369c0e 100644 --- a/smram_parse.py +++ b/smram_parse.py @@ -1,14 +1,15 @@ import sys, os, time, re, shutil from struct import unpack +from optparse import OptionParser, make_option SMRAM_SIZE = 0x800000 EFI_SMM_CPU_PROTOCOL_GUID = '\x97\x6B\x34\xEB\x5F\x97\x9F\x4A\x8B\x22\xF8\xE9\x2B\xB3\xD5\x69' -UEFIDUMP_PATH = '/Users/d_olex/_tmp/UEFIDump' +UEFIDUMP_PATH = './UEFIDump' UEFIDUMP_URL = 'https://github.com/LongSoft/UEFITool/releases/tag/NE.A30' -EFIUTILS_PATH = '/Users/d_olex/ida-efiutils' +EFIUTILS_PATH = 'ida-efiutils' EFIUTILS_URL = 'https://github.com/snare/ida-efiutils' sys.path.append(EFIUTILS_PATH) @@ -70,7 +71,7 @@ def scan_dir(self, path): for fname in os.listdir(path): # check for PE image file - m = re.match('Section_PE32_image_\w{8}_\w{4}_\w{4}_\w{4}_\w{12}_(\w+)_body.bin', fname) + m = re.match('Section_PE32_image_\w{8}-\w{4}-\w{4}-\w{4}-\w{12}_(\w+)_body.bin', fname) if m: image_name = m.group(1).strip() @@ -206,7 +207,7 @@ def __init__(self, smram_dump, fw_image = None, smram_base = None, smram_size = self.guids = GuidDb(guids = GUIDs) if smram_base is None: - + # depricated; base address is now a required parameter self.smram = unpack('Q', self.data[0x10 : 0x18])[0] & 0xff400000 else: @@ -254,9 +255,11 @@ def image_size(self, addr): def image_name(self, addr): - offset = self.to_offset(addr) - - return self.fw.image_name(self.data[offset : offset + HEADERS_SIZE]) + if addr == None: + return None + else: + offset = self.to_offset(addr) + return self.fw.image_name(self.data[offset : offset + HEADERS_SIZE]) def dump_smst(self): @@ -383,7 +386,7 @@ def dump_protocols(self): # get image information image = self.image_by_addr(addr) image_name = self.image_name(image) - image_name = image_name if image_name is not None else '0x%X' % image + image_name = image_name if image_name is not None else '0x%X' % addr print('0x%x: addr = 0x%x, image = %s, guid = %s' % \ (self.from_offset(entry), addr, _align(image_name), @@ -392,8 +395,7 @@ def dump_protocols(self): entry = self.to_offset(flink) - 8 if entry == first_entry: break - def dump_sw_smi_handlers(self): - + def dump_dbrc_handlers(self): first_entry, ptr = None, 0 default_offs = 0x10 @@ -412,7 +414,7 @@ def dump_sw_smi_handlers(self): # check for valid EFI_LIST_ENTRY and SW SMI handler if self.in_smram(flink) and self.in_smram(blink): - print('\n[+] Found DBRC structure at offset 0x%x' % ptr) + print('\n[+] Found DBRC structure at offset 0x%x\n' % ptr) first_entry = ptr break @@ -424,8 +426,6 @@ def dump_sw_smi_handlers(self): print('\nERROR: Unable to find DBRC entry') return -1 - print('\nSW SMI HANDLERS:\n') - entry = first_entry known_handlers = [] @@ -486,6 +486,76 @@ def dump_sw_smi_handlers(self): entry = self.to_offset(flink) - 8 if entry == first_entry: break + return len(known_handlers) + + def dump_swsm_handlers(self): + parse = lambda offset: unpack('QQQQ', + self.data[offset : offset + ((4*8))]) + + ptr = 0 + while ptr < self.smram_size - 0x100: + + # check for 'SWSM' signature + if self.data[ptr : ptr + 4] == 'SWSM': + + flink, blink, code, func = parse(ptr + 8) + + # check for valid EFI_LIST_ENTRY and SW SMI handler + if self.in_smram(flink) and self.in_smram(blink): + + print('\n[+] Found SWSM structure at offset 0x%x\n' % ptr) + + first_entry = ptr + break + + ptr += 8 + + if first_entry is None: + + print('\nERROR: Unable to find SWSM entry') + return -1 + + entry = first_entry + known_handlers = [] + + while True: + flink, blink, code, func = parse(entry + 8) + # check for SW SMI handler information + if self.in_smram(func) and code >= 0 and code <= 255: + if entry not in known_handlers: + # get image information + image = self.image_by_addr(func) + image_name = self.image_name(image) + uses_cpu_prot = self.has_guid(image, EFI_SMM_CPU_PROTOCOL_GUID) + + print('0x%x: SMI = 0x%.2x, addr = 0x%x, image = %s %s' % \ + (self.from_offset(entry), code, func, \ + _align(image_name if image_name is not None else '0x%x' % image), \ + '*' if uses_cpu_prot else '')) + known_handlers.append(entry) + + + entry = self.to_offset(flink) - 8 + + if entry == first_entry: + break + return len(known_handlers) + + def dump_sw_smi_handlers(self): + print('\nSW SMI HANDLERS:') + + try: + dbrc = self.dump_dbrc_handlers() + + # unreliable check to determine if we should try again with a different swsmi struct + if dbrc < 2: + print('\n[!] SW SMI function count lower than expected, attempting to reparse with alternative structure...') + return self.dump_swsm_handlers() + else: + return dbrc + except Exception as ex: + print('[-] Error parsing SW SMI handler list; is the SMRAM base address correct?\n') + exit(1) def _dump_handlers(self, head): @@ -601,15 +671,35 @@ def dump_root_smi_handlers(self): def main(): - if len(sys.argv) <= 1: + usage = "usage: %prog -i -b [-s SMRAM_size] [-f flash_image_dump]" + + option_list = [ + + make_option('-i', '--input', dest = 'input', default = None, + help = 'file path of smram dump'), + + make_option('-b', '--base', dest = 'base', default = None, + help = 'base address of smram'), + + make_option('-f', '--flash', dest = 'flash', default = None, + help = 'file path of flash rom'), + + make_option('-s', '--size', dest = 'size', default = None, + help = 'size of smram'), + ] + + parser = OptionParser(option_list = option_list, usage=usage) + (options, args) = parser.parse_args() - print('USAGE: smram_parse.py [flash_image_dump [SMRAM_base [SMRAM_size]]]') - return 0 + if options.input is None or options.base is None: + print('[!] SMRAM path (-i) and base address (-b) must be specified') + return -1 - d = Dumper(sys.argv[1], \ - fw_image = sys.argv[2] if len(sys.argv) > 2 else None, - smram_base = int(sys.argv[3], 16) if len(sys.argv) > 3 else None, - smram_size = int(sys.argv[4], 16) if len(sys.argv) > 4 else None) + d = Dumper(options.input, \ + fw_image = options.flash, + smram_base = int(options.base, 16), + smram_size = int(options.size, 16) if options.size is not None \ + and len(options.size) > 0 else None) d.dump_smst() From 7d08477fb3ee8434a03a3fb1944a3247e347f3c0 Mon Sep 17 00:00:00 2001 From: jjensn Date: Mon, 16 Dec 2019 14:44:37 -0500 Subject: [PATCH 2/4] Update UEFIDump URL --- smram_parse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smram_parse.py b/smram_parse.py index 7369c0e..c56c078 100644 --- a/smram_parse.py +++ b/smram_parse.py @@ -7,7 +7,7 @@ EFI_SMM_CPU_PROTOCOL_GUID = '\x97\x6B\x34\xEB\x5F\x97\x9F\x4A\x8B\x22\xF8\xE9\x2B\xB3\xD5\x69' UEFIDUMP_PATH = './UEFIDump' -UEFIDUMP_URL = 'https://github.com/LongSoft/UEFITool/releases/tag/NE.A30' +UEFIDUMP_URL = 'https://github.com/LongSoft/UEFITool/releases/tag/A50' EFIUTILS_PATH = 'ida-efiutils' EFIUTILS_URL = 'https://github.com/snare/ida-efiutils' From 181be32fc045571c1c7740eca5504500f1eac0dc Mon Sep 17 00:00:00 2001 From: jjensn Date: Mon, 16 Dec 2019 14:47:46 -0500 Subject: [PATCH 3/4] Update README.TXT --- README.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.TXT b/README.TXT index f42792e..4210899 100644 --- a/README.TXT +++ b/README.TXT @@ -27,7 +27,7 @@ FEATURES: USAGE: - + $ git clone --recursive https://github.com/Cr4sh/smram_parse && cd smram_parse $ smram_parse.py -i -b [-s SMRAM_size] [-f flash_image_dump] Output example: https://raw.githubusercontent.com/Cr4sh/smram_parse/master/EXAMPLE.TXT From 35507d074fee8cb7f2e73651ffd08510d0dc3a97 Mon Sep 17 00:00:00 2001 From: jjensn Date: Fri, 9 Aug 2024 11:44:42 -0400 Subject: [PATCH 4/4] Update smram_parse.py --- smram_parse.py | 304 ++++++++++++++++++++----------------------------- 1 file changed, 121 insertions(+), 183 deletions(-) diff --git a/smram_parse.py b/smram_parse.py index c56c078..e328630 100644 --- a/smram_parse.py +++ b/smram_parse.py @@ -1,13 +1,13 @@ import sys, os, time, re, shutil +import time from struct import unpack -from optparse import OptionParser, make_option SMRAM_SIZE = 0x800000 -EFI_SMM_CPU_PROTOCOL_GUID = '\x97\x6B\x34\xEB\x5F\x97\x9F\x4A\x8B\x22\xF8\xE9\x2B\xB3\xD5\x69' +EFI_SMM_CPU_PROTOCOL_GUID = b'\x97\x6B\x34\xEB\x5F\x97\x9F\x4A\x8B\x22\xF8\xE9\x2B\xB3\xD5\x69' -UEFIDUMP_PATH = './UEFIDump' -UEFIDUMP_URL = 'https://github.com/LongSoft/UEFITool/releases/tag/A50' +UEFIDUMP_PATH = r'F:\heckin-usb\MEGAsync\dev\SmmBackdoor.old\UEFIDump.exe' +UEFIDUMP_URL = 'https://github.com/LongSoft/UEFITool/releases/download/A50/UEFIDump_NE_0.1.9_linux_x86_64.zip' EFIUTILS_PATH = 'ida-efiutils' EFIUTILS_URL = 'https://github.com/snare/ida-efiutils' @@ -69,11 +69,9 @@ def scan_dir(self, path): ret = {} for fname in os.listdir(path): - # check for PE image file m = re.match('Section_PE32_image_\w{8}-\w{4}-\w{4}-\w{4}-\w{12}_(\w+)_body.bin', fname) if m: - image_name = m.group(1).strip() if len(image_name) == 0: continue @@ -83,7 +81,6 @@ def scan_dir(self, path): # use image info as key and image name as value ret.update([( self.image_info(fdata), image_name )]) - return ret def scan_file(self, path): @@ -100,7 +97,8 @@ def scan_file(self, path): print('[+] Unpacking "%s"...\n' % temp_path) # extract image contents - code = os.system('"%s" "%s"' % (UEFIDUMP_PATH, temp_path)) + print("%s %s" % (UEFIDUMP_PATH, temp_path)) + code = os.system("%s %s" % (UEFIDUMP_PATH, temp_path)) if code != 0: print('WARNING: Error while running %s' % UEFIDUMP_PATH) @@ -118,6 +116,7 @@ def scan_file(self, path): # cleanup shutil.rmtree(dump_path) os.unlink(temp_path) + shutil.rmtree(temp_path, True) return ret @@ -207,8 +206,8 @@ def __init__(self, smram_dump, fw_image = None, smram_base = None, smram_size = self.guids = GuidDb(guids = GUIDs) if smram_base is None: - # depricated; base address is now a required parameter - self.smram = unpack('Q', self.data[0x10 : 0x18])[0] & 0xff400000 + + self.smram = unpack('Q', self.data[0x10 : 0x18])[0] & 0xff000000 else: @@ -226,17 +225,20 @@ def __init__(self, smram_dump, fw_image = None, smram_base = None, smram_size = # get image base by address inside of it def image_by_addr(self, addr): - + #print(hex(addr) offset = self.to_offset(addr) - ptr = offset & 0xfffffff0 + #print hex(offset) + ptr = offset & 0xFFFFFF0 + # print hex(ptr) while offset - ptr < 0x100000: # check for IMAGE_DOS_HEADER signature - if self.data[ptr : ptr + 2] == 'MZ': + if self.data[ptr : ptr + 2] == b'MZ': + #print 'found' return self.from_offset(ptr) - + #print hex(ptr) ptr -= 0x10 def image_size(self, addr): @@ -254,17 +256,19 @@ def image_size(self, addr): return unpack('I', self.data[offset : offset + 4])[0] def image_name(self, addr): - + if addr == None: return None - else: - offset = self.to_offset(addr) - return self.fw.image_name(self.data[offset : offset + HEADERS_SIZE]) + offset = self.to_offset(addr) + #print hex(offset) + #print self.fw.image_name(self.data[offset : offset + HEADERS_SIZE]) + + return self.fw.image_name(self.data[offset : offset + HEADERS_SIZE]) def dump_smst(self): # check for EFI_SMM_SYSTEM_TABLE signature - ptr = self.data.find('SMST\0\0\0\0') + ptr = self.data.find(b'SMST\0\0\0\0') if ptr != -1: print('[+] EFI_SMM_SYSTEM_TABLE2 is at 0x%x' % self.from_offset(ptr)) @@ -278,14 +282,16 @@ def dump_images(self): while ptr < len(self.data): # check for DOS image header - if self.data[ptr : ptr + 2] == 'MZ': + if self.data[ptr : ptr + 2] == b'MZ': + + #print('found mz') # read e_lfanew field offset = unpack('I', self.data[ptr + IMAGE_DOS_HEADER_e_lfanew : \ ptr + IMAGE_DOS_HEADER_e_lfanew + 4])[0] + ptr # check for PE image header - if self.data[offset : offset + 2] == 'PE': + if self.data[offset : offset + 2] == b'PE': addr = self.from_offset(ptr) name = self.image_name(addr) @@ -304,19 +310,25 @@ def dump_smi_entries(self): # # Standard SMI entry stub signature # - ptr, num = 0, 0 - sig = [ '\xBB', None, '\x80', # mov bx, 80XXh - '\x66', '\x2E', '\xA1', None, '\xFB', # mov eax, cs:dword_FBXX - '\x66', None, None, # mov edx, eax - '\x66', None, None ] # mov ebp, eax + ptr = 0 + num = 0 + sig = [ b'\xBB', None, b'\x80', # mov bx, 80XXh + b'\x66', b'\x2E', b'\xA1', None, b'\xFB', # mov eax, cs:dword_FBXX + b'\x66', None, None, # mov edx, eax + b'\x66', None, None ] + + #print(type(self.data)) # mov ebp, eax + #print(len(self.data)) while ptr < len(self.data): found = True for i in range(len(sig)): # check for signature at each 100h offset of SMRAM - if sig[i] is not None and sig[i] != self.data[ptr + i]: + if sig[i] is not None and sig[i] != self.data[ptr + i].to_bytes(1, 'little'): + + #print(self.data[ptr + i]) found = False break @@ -330,13 +342,14 @@ def dump_smi_entries(self): def dump_protocols(self): - first_entry, ptr = None, 0 + first_entry = None + ptr = 0 parse = lambda offset: unpack('QQ16sQ', self.data[offset : offset + 0x28]) while ptr < self.smram_size - 0x100: # check for 'prte' signature - if self.data[ptr : ptr + 4] == 'prte': + if self.data[ptr : ptr + 4] == b'prte': flink, blink, guid, info = parse(ptr + 8) @@ -384,7 +397,10 @@ def dump_protocols(self): name = self.guids.lookup(guid) # get image information + #print hex(addr) image = self.image_by_addr(addr) + #print image + image_name = self.image_name(image) image_name = image_name if image_name is not None else '0x%X' % addr @@ -395,115 +411,26 @@ def dump_protocols(self): entry = self.to_offset(flink) - 8 if entry == first_entry: break - def dump_dbrc_handlers(self): - first_entry, ptr = None, 0 - - default_offs = 0x10 - format_offs, format = default_offs, 'QQ%dsQQQ' % default_offs - - parse = lambda offset: unpack(format, - self.data[offset : offset + format_offs + (5 * 8)]) - - while ptr < self.smram_size - 0x100: - - # check for 'DBRC' signature - if self.data[ptr : ptr + 4] == 'DBRC': - - flink, blink, _, _, _, _ = parse(ptr + 8) - - # check for valid EFI_LIST_ENTRY and SW SMI handler - if self.in_smram(flink) and self.in_smram(blink): - - print('\n[+] Found DBRC structure at offset 0x%x\n' % ptr) - - first_entry = ptr - break - - ptr += 8 - - if first_entry is None: - - print('\nERROR: Unable to find DBRC entry') - return -1 - - entry = first_entry - known_handlers = [] - - # iterate double linked list - while True: - - if format_offs == default_offs: - - prev_offs = 0 - entry_data = self.data[entry + (8 * 3) : entry + 0x100] - - while True: - - # find offset of 0x504 qword that indicates SW SMI handler type - offs = entry_data.find('\x04\x05\x00\x00\x00\x00\x00\x00') - if offs == -1: + def dump_sw_smi_handlers(self): - break - - val = unpack('Q', entry_data[offs + 8 : offs + (8 * 2)])[0] - if self.in_smram(val): - - # update list entry format - offs += prev_offs - format_offs, format = offs, 'QQ%dsQQQ' % offs - - break - - prev_offs += offs + 8 - entry_data = entry_data[offs + 8:] - - flink, blink, _, unk, func, smi = parse(entry + 8) - - # check for valid EFI_LIST_ENTRY - if not self.in_smram(flink) or not self.in_smram(blink): - - print('ERROR: Invalid DBRC entry at 0x%x' % entry) - return -1 - - # check for SW SMI handler information - if unk == 0x504 and self.in_smram(func) and smi >= 0 and smi <= 255: - - if entry in known_handlers: - - break - - # get image information - image = self.image_by_addr(func) - image_name = self.image_name(image) - uses_cpu_prot = self.has_guid(image, EFI_SMM_CPU_PROTOCOL_GUID) - - print('0x%x: SMI = 0x%.2x, addr = 0x%x, image = %s %s' % \ - (self.from_offset(entry), smi, func, \ - _align(image_name if image_name is not None else '0x%x' % image), \ - '*' if uses_cpu_prot else '')) - - known_handlers.append(entry) - - entry = self.to_offset(flink) - 8 - if entry == first_entry: break - return len(known_handlers) - - def dump_swsm_handlers(self): parse = lambda offset: unpack('QQQQ', self.data[offset : offset + ((4*8))]) ptr = 0 + first_entry = None while ptr < self.smram_size - 0x100: - # check for 'SWSM' signature - if self.data[ptr : ptr + 4] == 'SWSM': + # check for 'DBRC' signature + #print(hex(ptr)) + #exit(1) + if self.data[ptr : ptr + 4] == b'SWSM' : flink, blink, code, func = parse(ptr + 8) # check for valid EFI_LIST_ENTRY and SW SMI handler if self.in_smram(flink) and self.in_smram(blink): - print('\n[+] Found SWSM structure at offset 0x%x\n' % ptr) + print('\n[+] Found SWSM structure at offset 0x%x' % ptr) first_entry = ptr break @@ -512,9 +439,11 @@ def dump_swsm_handlers(self): if first_entry is None: - print('\nERROR: Unable to find SWSM entry') + print('\nERROR: Unable to find DBRC entry') return -1 + print('\nSW SMI HANDLERS:\n') + entry = first_entry known_handlers = [] @@ -524,6 +453,7 @@ def dump_swsm_handlers(self): if self.in_smram(func) and code >= 0 and code <= 255: if entry not in known_handlers: # get image information + print(hex(func)) image = self.image_by_addr(func) image_name = self.image_name(image) uses_cpu_prot = self.has_guid(image, EFI_SMM_CPU_PROTOCOL_GUID) @@ -538,36 +468,32 @@ def dump_swsm_handlers(self): entry = self.to_offset(flink) - 8 if entry == first_entry: + #print len(known_handlers) break - return len(known_handlers) - - def dump_sw_smi_handlers(self): - print('\nSW SMI HANDLERS:') - try: - dbrc = self.dump_dbrc_handlers() + def _dump_handlers(self, head): - # unreliable check to determine if we should try again with a different swsmi struct - if dbrc < 2: - print('\n[!] SW SMI function count lower than expected, attempting to reparse with alternative structure...') - return self.dump_swsm_handlers() - else: - return dbrc - except Exception as ex: - print('[-] Error parsing SW SMI handler list; is the SMRAM base address correct?\n') - exit(1) + # 004A09A0 C0 08 4A 8B 00 00 00 00 Q + # C0 08 4A 8B 00 00 00 00 Q + # 004A09B0 18 FF 47 8B 00 00 00 00 Q + # 00 00 00 00 00 00 00 00 Q + # 004A09C0 98 08 4A 8B 00 00 00 00 Q + # 18 09 4A 8B 00 00 00 00 Q - def _dump_handlers(self, head): + # A0 09 4A 8B 00 00 00 00 + # A0 09 4A 8B 00 00 00 00 + # 76 DD 99 60 6E BE 15 51 parse = lambda offset: unpack('QQQ', self.data[offset : offset + 0x18]) entry = head while True: - + #print len(self.data[entry + 8 : entry + 8 + 0x18]) flink, blink, func = parse(entry + 8) - if self.data[entry : entry + 4] == 'smih': - + if self.data[entry : entry + 4] == b'smih': + # print 'good' + # exit(0) image = self.image_by_addr(func) image_name = self.image_name(image) @@ -576,23 +502,28 @@ def _dump_handlers(self, head): image_name if image_name is not None else '0x%x' % image)) entry = self.to_offset(flink) - 8 + # print hex(flink) + # print hex(self.to_offset(flink)) + # exit(0) if entry == head: break + #exit(0) def dump_smi_handlers(self): - first_entry, ptr = None, 0 + first_entry = None + ptr = 0 parse = lambda offset: unpack('QQ16sQQ', self.data[offset : offset + 0x30]) while ptr < self.smram_size - 0x100: # check for 'smie' signature - if self.data[ptr : ptr + 4] == 'smie': + if self.data[ptr : ptr + 4] == b'smie': - flink, blink, guid, h_flink, h_blink = parse(ptr + 8) + flink, blink, guid, h_flink, guid2 = parse(ptr + 8) # check for valid EFI_LIST_ENTRY if self.in_smram(flink) and self.in_smram(blink) and \ - self.in_smram(h_flink) and self.in_smram(h_blink): + self.in_smram(h_flink): print('\n[+] Found smie structure at offset 0x%x' % ptr) @@ -609,19 +540,47 @@ def dump_smi_handlers(self): print('\nSMI HANDLERS:\n') entry = first_entry - # iterate double linked list while True: + + + + # 0xD0, 0x95, 0x7F, 0x8B, 0x00, 0x00, 0x00, 0x00, Q + # 0x20, 0x6E, 0x4C, 0x8B, 0x00, 0x00, 0x00, 0x00, Q + # 0x90, 0x8D, 0x9B, 0xEE, 0xA6, 0xC5, 0xA2, 0x40, GUID + # 0xBD, 0xE2, 0x52, 0x55, 0x8D, 0x33, 0xCC, 0xA1, GUID + # 0xA0, 0x09, 0x4A, 0x8B, 0x00, 0x00, 0x00, 0x00, Q + # 0xA0, 0x09, 0x4A, 0x8B, 0x00, 0x00, 0x00, 0x00, Q + + # Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + + # 004A09A0 C0 08 4A 8B 00 00 00 00 + # C0 08 4A 8B 00 00 00 00 + # 004A09B0 18 FF 47 8B 00 00 00 00 + # 00 00 00 00 00 00 00 00 + # 004A09C0 98 08 4A 8B 00 00 00 00 + # 18 09 4A 8B 00 00 00 00 + + # 004A09D0 1E 00 00 00 00 00 00 00 89 4B 1D 19 57 30 F2 A4 + # 004A09E0 89 4B 1D 19 57 30 F2 A4 8B 6B 1F 39 55 10 F0 84 + # 004A09F0 70 74 61 6C 5D 10 F8 84 80 00 00 00 00 00 00 00 + flink, blink, guid, h_flink, h_blink = parse(entry + 8) + # print flink + # print blink + # print guid + # print hex(h_flink) + # exit(0) + # check for valid EFI_LIST_ENTRY if not self.in_smram(flink) or not self.in_smram(blink): print('ERROR: Invalid smie entry at 0x%x' % entry) return -1 - if self.data[entry : entry + 4] == 'smie' and \ + if self.data[entry : entry + 4] == b'smie' and \ self.in_smram(h_flink) and self.in_smram(h_blink): guid = guid_parse(guid) @@ -639,13 +598,14 @@ def dump_smi_handlers(self): def dump_root_smi_handlers(self): - first_entry, ptr = None, 0 + first_entry = None + ptr = 0 parse = lambda offset: unpack('QQQQ', self.data[offset : offset + 0x20]) while ptr < self.smram_size - 0x100: # check for 'smie' signature - if self.data[ptr : ptr + 4] == 'smih': + if self.data[ptr : ptr + 4] == b'smih' or self.data[ptr : ptr + 4] == b'SMIH': flink, blink, func, entry = parse(ptr + 8) @@ -671,35 +631,15 @@ def dump_root_smi_handlers(self): def main(): - usage = "usage: %prog -i -b [-s SMRAM_size] [-f flash_image_dump]" - - option_list = [ - - make_option('-i', '--input', dest = 'input', default = None, - help = 'file path of smram dump'), + if len(sys.argv) <= 1: - make_option('-b', '--base', dest = 'base', default = None, - help = 'base address of smram'), + print('USAGE: smram_parse.py [flash_image_dump [SMRAM_base [SMRAM_size]]]') + return 0 - make_option('-f', '--flash', dest = 'flash', default = None, - help = 'file path of flash rom'), - - make_option('-s', '--size', dest = 'size', default = None, - help = 'size of smram'), - ] - - parser = OptionParser(option_list = option_list, usage=usage) - (options, args) = parser.parse_args() - - if options.input is None or options.base is None: - print('[!] SMRAM path (-i) and base address (-b) must be specified') - return -1 - - d = Dumper(options.input, \ - fw_image = options.flash, - smram_base = int(options.base, 16), - smram_size = int(options.size, 16) if options.size is not None \ - and len(options.size) > 0 else None) + d = Dumper(sys.argv[1], \ + fw_image = sys.argv[2] if len(sys.argv) > 2 else None, + smram_base = int(sys.argv[3], 16) if len(sys.argv) > 3 else None, + smram_size = int(sys.argv[4], 16) if len(sys.argv) > 4 else None) d.dump_smst() @@ -726,6 +666,4 @@ def main(): sys.exit(main()) -# -# EoF -# +