al3xtjames / ghidra-firmware-utils

Ghidra utilities for analyzing PC firmware
Other
386 stars 43 forks source link

Exception when importing with legacyOptionROMLoader - IllegalArgumentException: number of array elements must be positive #9

Closed dev747368 closed 3 years ago

dev747368 commented 4 years ago

I did a batch import of the bundle of firmware images you shared and got the following stack trace:

2020-03-27 15:12:48 INFO  (ImportBatchTask) Imported firmware_testing:/fw/MBP101_00F6_B00.scap/Volume 000 - EfiFirmwareFileSystemGuid/File 004 - EfiUpdateDataFileGuid/Volume 000 - EfiFirmwareFileSystemGuid/File 000 - 77ad7fdb-df2a-4302-8898-c72e4cdbd0f4/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Firmware Volume Image Section/Volume 000 - EfiFirmwareFileSystemGuid/File 156 - b40f45e8-0f88-4fa2-8616-101d202df78e/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/ Raw Section, 5 of 972  
2020-03-27 15:12:48 INFO  (ImportBatchTask) Additional info:
----- Loading /Volume 000 - EfiFirmwareFileSystemGuid/File 004 - EfiUpdateDataFileGuid/Volume 000 - EfiFirmwareFileSystemGuid/File 000 - 77ad7fdb-df2a-4302-8898-c72e4cdbd0f4/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Firmware Volume Image Section/Volume 000 - EfiFirmwareFileSystemGuid/File 156 - b40f45e8-0f88-4fa2-8616-101d202df78e/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Raw Section -----

2020-03-27 15:12:48 ERROR (LegacyOptionROMLoader) x86 PCI Option ROM Loader: number of array elements must be positive, not 0 java.lang.IllegalArgumentException: number of array elements must be positive, not 0
    at ghidra.program.model.data.ArrayDataType.(ArrayDataType.java:64)
    at ghidra.program.model.data.ArrayDataType.(ArrayDataType.java:43)
    at firmware.option_rom.DeviceList.toDataType(DeviceList.java:57)
    at firmware.option_rom.LegacyOptionROMLoader.load(LegacyOptionROMLoader.java:87)
    at ghidra.app.util.opinion.AbstractLibrarySupportLoader.doLoad(AbstractLibrarySupportLoader.java:346)
    at ghidra.app.util.opinion.AbstractLibrarySupportLoader.loadProgram(AbstractLibrarySupportLoader.java:83)
    at ghidra.app.util.opinion.AbstractProgramLoader.load(AbstractProgramLoader.java:112)
    at ghidra.plugins.importer.tasks.ImportBatchTask.doImportApp(ImportBatchTask.java:148)
    at ghidra.plugins.importer.tasks.ImportBatchTask.doImportBatchGroup(ImportBatchTask.java:127)
    at ghidra.plugins.importer.tasks.ImportBatchTask.doBatchImport(ImportBatchTask.java:116)
    at ghidra.plugins.importer.tasks.ImportBatchTask.run(ImportBatchTask.java:91)
    at ghidra.util.task.Task.monitoredRun(Task.java:126)
    at ghidra.util.task.TaskRunner.lambda$startTaskThread$1(TaskRunner.java:94)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

2020-03-27 15:12:48 INFO  (ImportBatchTask) Imported firmware_testing:/fw/MBP101_00F6_B00.scap/Volume 000 - EfiFirmwareFileSystemGuid/File 004 - EfiUpdateDataFileGuid/Volume 000 - EfiFirmwareFileSystemGuid/File 000 - 77ad7fdb-df2a-4302-8898-c72e4cdbd0f4/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Firmware Volume Image Section/Volume 000 - EfiFirmwareFileSystemGuid/File 158 - 26fa5a1d-5c3e-4070-a9b8-80826b1d7ce1/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/ Raw Section, 6 of 972  
2020-03-27 15:12:48 INFO  (ImportBatchTask) Additional info:
----- Loading /Volume 000 - EfiFirmwareFileSystemGuid/File 004 - EfiUpdateDataFileGuid/Volume 000 - EfiFirmwareFileSystemGuid/File 000 - 77ad7fdb-df2a-4302-8898-c72e4cdbd0f4/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Firmware Volume Image Section/Volume 000 - EfiFirmwareFileSystemGuid/File 158 - 26fa5a1d-5c3e-4070-a9b8-80826b1d7ce1/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Raw Section -----

2020-03-27 15:12:48 ERROR (LegacyOptionROMLoader) x86 PCI Option ROM Loader: number of array elements must be positive, not 0 java.lang.IllegalArgumentException: number of array elements must be positive, not 0
    at ghidra.program.model.data.ArrayDataType.(ArrayDataType.java:64)
    at ghidra.program.model.data.ArrayDataType.(ArrayDataType.java:43)
    at firmware.option_rom.DeviceList.toDataType(DeviceList.java:57)
    at firmware.option_rom.LegacyOptionROMLoader.load(LegacyOptionROMLoader.java:87)
    at ghidra.app.util.opinion.AbstractLibrarySupportLoader.doLoad(AbstractLibrarySupportLoader.java:346)
    at ghidra.app.util.opinion.AbstractLibrarySupportLoader.loadProgram(AbstractLibrarySupportLoader.java:83)
    at ghidra.app.util.opinion.AbstractProgramLoader.load(AbstractProgramLoader.java:112)
    at ghidra.plugins.importer.tasks.ImportBatchTask.doImportApp(ImportBatchTask.java:148)
    at ghidra.plugins.importer.tasks.ImportBatchTask.doImportBatchGroup(ImportBatchTask.java:127)
    at ghidra.plugins.importer.tasks.ImportBatchTask.doBatchImport(ImportBatchTask.java:116)
    at ghidra.plugins.importer.tasks.ImportBatchTask.run(ImportBatchTask.java:91)
    at ghidra.util.task.Task.monitoredRun(Task.java:126)
    at ghidra.util.task.TaskRunner.lambda$startTaskThread$1(TaskRunner.java:94)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

2020-03-27 15:12:48 INFO  (ImportBatchTask) Imported firmware_testing:/fw/MBP101_00F6_B00.scap/Volume 000 - EfiFirmwareFileSystemGuid/File 004 - EfiUpdateDataFileGuid/Volume 000 - EfiFirmwareFileSystemGuid/File 000 - 77ad7fdb-df2a-4302-8898-c72e4cdbd0f4/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Firmware Volume Image Section/Volume 000 - EfiFirmwareFileSystemGuid/File 157 - 1b033324-b30e-4f65-b35f-ef12eee91983/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/ Raw Section, 7 of 972  
2020-03-27 15:12:48 INFO  (ImportBatchTask) Additional info:
----- Loading /Volume 000 - EfiFirmwareFileSystemGuid/File 004 - EfiUpdateDataFileGuid/Volume 000 - EfiFirmwareFileSystemGuid/File 000 - 77ad7fdb-df2a-4302-8898-c72e4cdbd0f4/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Firmware Volume Image Section/Volume 000 - EfiFirmwareFileSystemGuid/File 157 - 1b033324-b30e-4f65-b35f-ef12eee91983/Compressed Section/GUID-Defined Section - EfiCrc32GuidedSectionExtractionGuid/Raw Section -----