Describe the bug
Trying to batch import an .apk file (e.g. https://github.com/markushi/android-ui/blob/master/example.apk) fails with two uncaught exceptions.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The files inside the .apk file are imported or if that isn't supposed to happen an error message stating that .apk files can't be batch imported.
Attachments
Error log:
Adding Source Files - Uncaught Exception: java.lang.NoClassDefFoundError: org/jf/dexlib/DexFile
java.lang.NoClassDefFoundError: org/jf/dexlib/DexFile
at ghidra.file.formats.android.dex.DexToSmaliFileSystem.open(DexToSmaliFileSystem.java:112)
at ghidra.formats.gfilesystem.factory.GFileSystemBaseFactory.create(GFileSystemBaseFactory.java:90)
at ghidra.formats.gfilesystem.factory.GFileSystemBaseFactory.create(GFileSystemBaseFactory.java:41)
at ghidra.formats.gfilesystem.factory.FileSystemFactoryMgr.mountUsingFactory(FileSystemFactoryMgr.java:176)
at ghidra.formats.gfilesystem.factory.FileSystemFactoryMgr.probe(FileSystemFactoryMgr.java:345)
at ghidra.formats.gfilesystem.FileSystemService.probeFileForFilesystem(FileSystemService.java:626)
at ghidra.formats.gfilesystem.FileSystemService.probeFileForFilesystem(FileSystemService.java:565)
at ghidra.plugins.importer.batch.BatchInfo.processAsFS(BatchInfo.java:297)
at ghidra.plugins.importer.batch.BatchInfo.doAddFile(BatchInfo.java:226)
at ghidra.plugins.importer.batch.BatchInfo.processFS(BatchInfo.java:336)
at ghidra.plugins.importer.batch.BatchInfo.processAsFS(BatchInfo.java:312)
at ghidra.plugins.importer.batch.BatchInfo.doAddFile(BatchInfo.java:226)
at ghidra.plugins.importer.batch.BatchInfo.addFile(BatchInfo.java:194)
at ghidra.plugins.importer.batch.BatchInfo.doAddFiles(BatchInfo.java:493)
at ghidra.plugins.importer.batch.BatchInfo$AddFilesRunnable.monitoredRun(BatchInfo.java:530)
at ghidra.util.task.TaskBuilder$TaskBuilderTask.run(TaskBuilder.java:192)
at ghidra.util.task.Task.monitoredRun(Task.java:128)
at ghidra.util.task.TaskLauncher.lambda$startBackgroundThread$2(TaskLauncher.java:315)
at java.base/java.lang.Thread.run(Thread.java:834)
and
Uncaught Exception!
java.lang.NullPointerException
at ghidra.plugins.importer.batch.BatchImportDialog.addSources(BatchImportDialog.java:428)
at ghidra.plugins.importer.batch.BatchImportDialog.addSources(BatchImportDialog.java:409)
at ghidra.plugins.importer.batch.BatchImportDialog.setupInitialDefaults(BatchImportDialog.java:376)
at ghidra.plugins.importer.batch.BatchImportDialog.lambda$showAndImport$0(BatchImportDialog.java:74)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Environment (please complete the following information):
---------------------------------------------------
Build Date: 2019-Apr-03 1342 EDT
Ghidra Version: 9.0.2
Java Home: /usr/lib/jvm/java-11-openjdk-11.0.2.7-0.el7_6.x86_64
JVM Version: Oracle Corporation 11.0.2
OS: Linux 3.10.0-957.10.1.el7.x86_64 amd64
Workstation: localhost
This works in Ghidra 9.0.1.
This could be related to #350.
Hey thanks for reporting this bug. I was able to reproduce it and we'll work on a patch. It's unrelated to #350.
Similar issue: Says "cant read lang spec" and then this exception below.
Batch Import Task - Uncaught Exception: ghidra.app.plugin.processors.sleigh.SleighException: File not found - language probably did not compile properly
ghidra.app.plugin.processors.sleigh.SleighException: File not found - language probably did not compile properly
at ghidra.app.plugin.processors.sleigh.SleighLanguageProvider.getNewSleigh(SleighLanguageProvider.java:118)
at ghidra.app.plugin.processors.sleigh.SleighLanguageProvider.getLanguage(SleighLanguageProvider.java:99)
at ghidra.program.util.DefaultLanguageService$LanguageInfo.getLanguage(DefaultLanguageService.java:382)
at ghidra.program.util.DefaultLanguageService.getLanguage(DefaultLanguageService.java:103)
at ghidra.app.util.opinion.AbstractLibrarySupportLoader.doLoad(AbstractLibrarySupportLoader.java:332)
at ghidra.app.util.opinion.AbstractLibrarySupportLoader.loadProgram(AbstractLibrarySupportLoader.java:83)
at ghidra.app.util.opinion.AbstractProgramLoader.load(AbstractProgramLoader.java:114)
at ghidra.plugins.importer.tasks.ImportBatchTask.doImportApp(ImportBatchTask.java:149)
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:128)
at ghidra.util.task.TaskLauncher.lambda$startBackgroundThread$2(TaskLauncher.java:315)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.FileNotFoundException: C:\ProgramData\chocolatey\lib\ghidra\ghidra_9.0\Ghidra\Features\FileFormats\data\languages\Dalvik\Dalvik.sla (Access is denied)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:187)
at ghidra.pcodeCPort.slgh_compile.SleighCompileLauncher.run_compilation(SleighCompileLauncher.java:334)
at ghidra.pcodeCPort.slgh_compile.SleighCompileLauncher.runMain(SleighCompileLauncher.java:239)
at ghidra.app.plugin.processors.sleigh.SleighLanguage.reloadLanguage(SleighLanguage.java:416)
at ghidra.app.plugin.processors.sleigh.SleighLanguage.ensureSpecificationIsCompiled(SleighLanguage.java:141)
at ghidra.app.plugin.processors.sleigh.SleighLanguage.initialize(SleighLanguage.java:120)
at ghidra.app.plugin.processors.sleigh.SleighLanguage.<init>(SleighLanguage.java:98)
at ghidra.app.plugin.processors.sleigh.SleighLanguageProvider.getNewSleigh(SleighLanguageProvider.java:107)
... 13 more
Build Date: 2019-Feb-28 1236 EST
Ghidra Version: 9.0
Java Home: C:\Program Files\Java\jdk-11.0.2
JVM Version: Oracle Corporation 11.0.2
OS: Windows 10 10.0 amd64
Workstation: DESKTOP
Most helpful comment
Hey thanks for reporting this bug. I was able to reproduce it and we'll work on a patch. It's unrelated to #350.