rantanen / ghidra-minidump-loader Goto Github PK
View Code? Open in Web Editor NEWWindows Minidump loader for Ghidra
License: Apache License 2.0
Windows Minidump loader for Ghidra
License: Apache License 2.0
name=MinidumpLoader
description=Tools for analyzing Windows Minidump files.
author=Mikko Rantanen
createdOn=
version=10.0
"Format:" shows "Windows Minidump"
"Format:" shows "Raw Binary"
How do I install and use this plugin correctly?
Super cool project, I'm trying to load a binary that at run time unpacks itself into a new part of memory. The dump file gets correctly analysed with rizin but this project throws an eof error:
EOF
java.io.IOException: EOF
at net.jubjubnest.minidump.loader.MinidumpMemoryProvider.readBytes(MinidumpMemoryProvider.java:81)
at net.jubjubnest.minidump.loader.MinidumpMemoryProvider.readByte(MinidumpMemoryProvider.java:67)
at ghidra.app.util.bin.ByteProviderWrapper.readByte(ByteProviderWrapper.java:106)
at ghidra.app.util.bin.ByteProviderInputStream.read(ByteProviderInputStream.java:37)
at java.base/java.io.InputStream.read(InputStream.java:284)
at ghidra.util.MonitoredInputStream.read(MonitoredInputStream.java:128)
at db.ChainedBuffer.fill(ChainedBuffer.java:1212)
at db.DBBuffer.fill(DBBuffer.java:162)
at ghidra.program.database.mem.FileBytesAdapterV0.createBuffers(FileBytesAdapterV0.java:177)
at ghidra.program.database.mem.FileBytesAdapterV0.createFileBytes(FileBytesAdapterV0.java:76)
at ghidra.program.database.mem.MemoryMapDB.createFileBytes(MemoryMapDB.java:2167)
at ghidra.app.util.MemoryBlockUtils.createFileBytes(MemoryBlockUtils.java:353)
at ghidra.app.util.MemoryBlockUtils.createFileBytes(MemoryBlockUtils.java:335)
at net.jubjubnest.minidump.contrib.opinion.PeLoader.loadImage(PeLoader.java:150)
at net.jubjubnest.minidump.loader.MinidumpLoader.loadPeImage(MinidumpLoader.java:269)
at net.jubjubnest.minidump.loader.MinidumpLoader.loadModules(MinidumpLoader.java:248)
at net.jubjubnest.minidump.loader.MinidumpLoader.load(MinidumpLoader.java:136)
at ghidra.app.util.opinion.AbstractLibrarySupportLoader.doLoad(AbstractLibrarySupportLoader.java:347)
at ghidra.app.util.opinion.AbstractLibrarySupportLoader.loadProgram(AbstractLibrarySupportLoader.java:83)
at ghidra.app.util.opinion.AbstractProgramLoader.load(AbstractProgramLoader.java:112)
at ghidra.plugin.importer.ImporterUtilities.importSingleFile(ImporterUtilities.java:400)
at ghidra.plugin.importer.ImporterDialog.lambda$okCallback$7(ImporterDialog.java:351)
at ghidra.util.task.TaskBuilder$TaskBuilderTask.run(TaskBuilder.java:306)
at ghidra.util.task.Task.monitoredRun(Task.java:124)
at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
---------------------------------------------------
Build Date: 2021-Aug-04 1256 EDT
Ghidra Version: 10.0.2
Java Home: C:\Program Files\Java\jdk-15.0.1
JVM Version: Oracle Corporation 15.0.1
OS: Windows 10 10.0 amd64
Initial start in the 'pdb' branch. Seems using most of Ghidra's PDB implementation should work. All we seemingly need to do is have the user specify the PDB file and then matching it to a proper PE image offset. Once that's done, the rest of the load seems to work okay with Ghidra's own stuff.
The current plan is:
PdbLocator
maybe?The kernel memory space (0x7ffe0000...) has some static data addresses (or at least static for a specific OS-version..); These could be annotated with proper data types.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.