mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2024-09-20 09:31:47 +00:00
Merge remote-tracking branch 'origin/patch'
This commit is contained in:
commit
0d71657d05
|
@ -2,5 +2,6 @@
|
|||
##MODULE IP: JSch License
|
||||
Module.manifest||GHIDRA||||END|
|
||||
data/scripts/fallback_info_proc_mappings.gdb||GHIDRA||||END|
|
||||
data/scripts/fallback_maintenance_info_sections.gdb||GHIDRA||||END|
|
||||
data/scripts/getpid-linux-i386.gdb||GHIDRA||||END|
|
||||
data/scripts/wine32_info_proc_mappings.gdb||GHIDRA||||END|
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
define maintenance info sections
|
||||
echo Exec file: `name_of_executable', file type elf64-x86-64. \n
|
||||
echo [0] 0x0->0xFFFFFFFFFFFFFFFF at 0x00000000: .text ALLOC LOAD READWRITE CODE HAS_CONTENTS
|
||||
end
|
|
@ -27,7 +27,7 @@ public class MemoryRange implements StructConverter {
|
|||
public final static String NAME = "MINIDUMP_MEMORY_RANGE";
|
||||
|
||||
private long startOfMemoryRange;
|
||||
private int dataSize;
|
||||
private long dataSize;
|
||||
private int RVA;
|
||||
|
||||
private DumpFileReader reader;
|
||||
|
@ -44,7 +44,7 @@ public class MemoryRange implements StructConverter {
|
|||
reader.setPointerIndex(index);
|
||||
|
||||
setStartOfMemoryRange(reader.readNextLong());
|
||||
setDataSize(reader.readNextInt());
|
||||
setDataSize(reader.readNextUnsignedInt());
|
||||
setRVA(reader.readNextInt());
|
||||
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ public class MemoryRange implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME, 0);
|
||||
|
||||
|
@ -72,11 +73,11 @@ public class MemoryRange implements StructConverter {
|
|||
this.startOfMemoryRange = startOfMemoryRange;
|
||||
}
|
||||
|
||||
public int getDataSize() {
|
||||
public long getDataSize() {
|
||||
return dataSize;
|
||||
}
|
||||
|
||||
public void setDataSize(int dataSize) {
|
||||
public void setDataSize(long dataSize) {
|
||||
this.dataSize = dataSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ public class Module implements StructConverter {
|
|||
public final static String NAME = "MINIDUMP_MODULE";
|
||||
|
||||
private long baseOfImage;
|
||||
private int sizeOfImage;
|
||||
private long sizeOfImage;
|
||||
private int checkSum;
|
||||
private int timeDateStamp;
|
||||
private int moduleNameRVA;
|
||||
|
@ -70,7 +70,7 @@ public class Module implements StructConverter {
|
|||
reader.setPointerIndex(index);
|
||||
|
||||
setBaseOfImage(reader.readNextLong());
|
||||
setSizeOfImage(reader.readNextInt());
|
||||
setSizeOfImage(reader.readNextUnsignedInt());
|
||||
setCheckSum(reader.readNextInt());
|
||||
setTimeDateStamp(reader.readNextInt());
|
||||
setModuleNameRVA(reader.readNextInt());
|
||||
|
@ -113,6 +113,7 @@ public class Module implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME, 0);
|
||||
|
||||
|
@ -164,11 +165,11 @@ public class Module implements StructConverter {
|
|||
this.baseOfImage = baseOfImage;
|
||||
}
|
||||
|
||||
public int getSizeOfImage() {
|
||||
public long getSizeOfImage() {
|
||||
return sizeOfImage;
|
||||
}
|
||||
|
||||
public void setSizeOfImage(int sizeOfImage) {
|
||||
public void setSizeOfImage(long sizeOfImage) {
|
||||
this.sizeOfImage = sizeOfImage;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ public class Thread implements StructConverter {
|
|||
private int priority;
|
||||
private long teb;
|
||||
private long stackStartOfMemoryRange;
|
||||
private int stackDataSize;
|
||||
private long stackDataSize;
|
||||
private int stackRVA;
|
||||
private int contextDataSize;
|
||||
private int contextRVA;
|
||||
|
@ -57,7 +57,7 @@ public class Thread implements StructConverter {
|
|||
setPriority(reader.readNextInt());
|
||||
setTeb(reader.readNextLong());
|
||||
setStackStartOfMemoryRange(reader.readNextLong());
|
||||
setStackDataSize(reader.readNextInt());
|
||||
setStackDataSize(reader.readNextUnsignedInt());
|
||||
setStackRVA(reader.readNextInt());
|
||||
setContextDataSize(reader.readNextInt());
|
||||
setContextRVA(reader.readNextInt());
|
||||
|
@ -67,6 +67,7 @@ public class Thread implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME, 0);
|
||||
|
||||
|
@ -149,11 +150,11 @@ public class Thread implements StructConverter {
|
|||
this.stackStartOfMemoryRange = stackStartOfMemoryRange;
|
||||
}
|
||||
|
||||
public int getStackDataSize() {
|
||||
public long getStackDataSize() {
|
||||
return stackDataSize;
|
||||
}
|
||||
|
||||
public void setStackDataSize(int stackDataSize) {
|
||||
public void setStackDataSize(long stackDataSize) {
|
||||
this.stackDataSize = stackDataSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ public class ThreadEx implements StructConverter {
|
|||
private int priority;
|
||||
private long teb;
|
||||
private long stackStartOfMemoryRange;
|
||||
private int stackDataSize;
|
||||
private long stackDataSize;
|
||||
private int stackRVA;
|
||||
private int contextDataSize;
|
||||
private int contextRVA;
|
||||
|
@ -60,7 +60,7 @@ public class ThreadEx implements StructConverter {
|
|||
setPriority(reader.readNextInt());
|
||||
setTeb(reader.readNextLong());
|
||||
setStackStartOfMemoryRange(reader.readNextLong());
|
||||
setStackDataSize(reader.readNextInt());
|
||||
setStackDataSize(reader.readNextUnsignedInt());
|
||||
setStackRVA(reader.readNextInt());
|
||||
setContextDataSize(reader.readNextInt());
|
||||
setContextRVA(reader.readNextInt());
|
||||
|
@ -73,6 +73,7 @@ public class ThreadEx implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME, 0);
|
||||
|
||||
|
@ -161,11 +162,11 @@ public class ThreadEx implements StructConverter {
|
|||
this.stackStartOfMemoryRange = stackStartOfMemoryRange;
|
||||
}
|
||||
|
||||
public int getStackDataSize() {
|
||||
public long getStackDataSize() {
|
||||
return stackDataSize;
|
||||
}
|
||||
|
||||
public void setStackDataSize(int stackDataSize) {
|
||||
public void setStackDataSize(long stackDataSize) {
|
||||
this.stackDataSize = stackDataSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ public class UnloadedModule implements StructConverter {
|
|||
public final static String NAME = "MINIDUMP_UNLOADED_MODULE";
|
||||
|
||||
private long baseOfImage;
|
||||
private int sizeOfImage;
|
||||
private long sizeOfImage;
|
||||
private int checkSum;
|
||||
private int timeDateStamp;
|
||||
private int moduleNameRVA;
|
||||
|
@ -46,7 +46,7 @@ public class UnloadedModule implements StructConverter {
|
|||
reader.setPointerIndex(index);
|
||||
|
||||
setBaseOfImage(reader.readNextLong());
|
||||
setSizeOfImage(reader.readNextInt());
|
||||
setSizeOfImage(reader.readNextUnsignedInt());
|
||||
setCheckSum(reader.readNextInt());
|
||||
setTimeDateStamp(reader.readNextInt());
|
||||
setModuleNameRVA(reader.readNextInt());
|
||||
|
@ -56,6 +56,7 @@ public class UnloadedModule implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME, 0);
|
||||
|
||||
|
@ -78,11 +79,11 @@ public class UnloadedModule implements StructConverter {
|
|||
this.baseOfImage = baseOfImage;
|
||||
}
|
||||
|
||||
public int getSizeOfImage() {
|
||||
public long getSizeOfImage() {
|
||||
return sizeOfImage;
|
||||
}
|
||||
|
||||
public void setSizeOfImage(int sizeOfImage) {
|
||||
public void setSizeOfImage(long sizeOfImage) {
|
||||
this.sizeOfImage = sizeOfImage;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ public class KldrDataTableEntry implements StructConverter {
|
|||
private long NonPagedDebugInfo;
|
||||
private long DllBase;
|
||||
private long EntryPoint;
|
||||
private int SizeOfImage;
|
||||
private long SizeOfImage;
|
||||
private long FullDllName;
|
||||
private long BaseDllName;
|
||||
private int Flags;
|
||||
|
@ -69,7 +69,7 @@ public class KldrDataTableEntry implements StructConverter {
|
|||
setNonPagedDebugInfo(reader.readNextPointer());
|
||||
setDllBase(reader.readNextPointer());
|
||||
setEntryPoint(reader.readNextPointer());
|
||||
setSizeOfImage(reader.readNextInt());
|
||||
setSizeOfImage(reader.readNextUnsignedInt());
|
||||
reader.readNextInt();
|
||||
reader.readNextPointer();
|
||||
setFullDllName(reader.readNextPointer());
|
||||
|
@ -89,6 +89,7 @@ public class KldrDataTableEntry implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME, 0);
|
||||
|
||||
|
@ -152,11 +153,11 @@ public class KldrDataTableEntry implements StructConverter {
|
|||
EntryPoint = entryPoint;
|
||||
}
|
||||
|
||||
public int getSizeOfImage() {
|
||||
public long getSizeOfImage() {
|
||||
return SizeOfImage;
|
||||
}
|
||||
|
||||
public void setSizeOfImage(int sizeOfImage) {
|
||||
public void setSizeOfImage(long sizeOfImage) {
|
||||
SizeOfImage = sizeOfImage;
|
||||
}
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ public class Pagedump extends DumpFile {
|
|||
is32Bit = header.is32Bit();
|
||||
isPAE = header.getPaeEnabled() != 0;
|
||||
|
||||
int hdrLen = header.toDataType().getLength();
|
||||
long hdrLen = header.toDataType().getLength();
|
||||
addInteriorAddressObject("DumpHeader", 0, 0L, hdrLen);
|
||||
data.add(new DumpData(0, header.toDataType()));
|
||||
|
||||
|
@ -143,7 +143,7 @@ public class Pagedump extends DumpFile {
|
|||
case DUMP_TYPE_BITMAP_FULL:
|
||||
case DUMP_TYPE_BITMAP_KERNEL:
|
||||
int signature = reader.readInt(hdrLen);
|
||||
int offset = hdrLen;
|
||||
long offset = hdrLen;
|
||||
switch (signature) {
|
||||
case SIG_SUMMARY:
|
||||
case SIG_FULL:
|
||||
|
@ -175,7 +175,7 @@ public class Pagedump extends DumpFile {
|
|||
addInteriorAddressObject("DumpHeader", hdrLen, hdrLen,
|
||||
triage.getSizeOfDump());
|
||||
|
||||
int next = hdrLen + triage.getSizeOfDump();
|
||||
long next = hdrLen + triage.getSizeOfDump();
|
||||
addInteriorAddressObject("Unknown", next,
|
||||
next, reader.length() - next);
|
||||
|
||||
|
@ -424,7 +424,7 @@ public class Pagedump extends DumpFile {
|
|||
continue;
|
||||
}
|
||||
Long addr = pfnToVA.get(pfnx);
|
||||
addInteriorAddressObject(DumpFileLoader.MEMORY, fileOffset(pfnx), addr, 0x1000);
|
||||
addInteriorAddressObject(DumpFileLoader.MEMORY, fileOffset(pfnx), addr, 0x1000L);
|
||||
monitor.setProgress(count++);
|
||||
}
|
||||
/*
|
||||
|
@ -462,6 +462,7 @@ public class Pagedump extends DumpFile {
|
|||
return Integer.toHexString(header.getMachineImageType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void analyze(TaskMonitor monitor) {
|
||||
boolean analyzeEmbeddedObjects =
|
||||
OptionUtils.getBooleanOptionValue(ANALYZE_EMBEDDED_OBJECTS_OPTION_NAME,
|
||||
|
@ -611,9 +612,10 @@ public class Pagedump extends DumpFile {
|
|||
*/
|
||||
|
||||
/**
|
||||
* Get default <code>Pagedump</code> loader options.
|
||||
* Includes {@link #DEBUG_DATA_PATH_OPTION_NAME} plus default {@link DumpFile} options
|
||||
* (see {@link DumpFile#getDefaultOptions(DumpFileReader)}).
|
||||
* Get default <code>Pagedump</code> loader options. Includes
|
||||
* {@link #DEBUG_DATA_PATH_OPTION_NAME} plus default {@link DumpFile} options (see
|
||||
* {@link DumpFile#getDefaultOptions(DumpFileReader)}).
|
||||
*
|
||||
* @param reader dump file reader
|
||||
* @return default collection of Pagedump loader options
|
||||
*/
|
||||
|
|
|
@ -27,7 +27,7 @@ public class TriageDataBlock implements StructConverter {
|
|||
|
||||
private long address;
|
||||
private int offset;
|
||||
private int size;
|
||||
private long size;
|
||||
|
||||
private DumpFileReader reader;
|
||||
private long index;
|
||||
|
@ -46,7 +46,7 @@ public class TriageDataBlock implements StructConverter {
|
|||
|
||||
setAddress(reader.readNextPointer());
|
||||
setOffset(reader.readNextInt());
|
||||
setSize(reader.readNextInt());
|
||||
setSize(reader.readNextUnsignedInt());
|
||||
|
||||
}
|
||||
|
||||
|
@ -79,11 +79,11 @@ public class TriageDataBlock implements StructConverter {
|
|||
this.offset = offset;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
public long getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setSize(int size) {
|
||||
public void setSize(long size) {
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ public class TriageDump implements StructConverter {
|
|||
public final static String NAME = "PAGEDUMP_TRIAGE";
|
||||
|
||||
private int servicePackBuild;
|
||||
private int sizeOfDump;
|
||||
private long sizeOfDump;
|
||||
private int validOffset;
|
||||
private int contextOffset;
|
||||
private int exceptionOffset;
|
||||
|
@ -75,7 +75,7 @@ public class TriageDump implements StructConverter {
|
|||
reader.setPointerIndex(index);
|
||||
|
||||
setServicePackBuild(reader.readNextInt());
|
||||
setSizeOfDump(reader.readNextInt());
|
||||
setSizeOfDump(reader.readNextUnsignedInt());
|
||||
setValidOffset(reader.readNextInt());
|
||||
setContextOffset(reader.readNextInt());
|
||||
setExceptionOffset(reader.readNextInt());
|
||||
|
@ -156,11 +156,11 @@ public class TriageDump implements StructConverter {
|
|||
this.servicePackBuild = servicePackBuild;
|
||||
}
|
||||
|
||||
public int getSizeOfDump() {
|
||||
public long getSizeOfDump() {
|
||||
return sizeOfDump;
|
||||
}
|
||||
|
||||
public void setSizeOfDump(int sizeOfDump) {
|
||||
public void setSizeOfDump(long sizeOfDump) {
|
||||
this.sizeOfDump = sizeOfDump;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ public class Module implements StructConverter {
|
|||
public final static String NAME = "MODULE_";
|
||||
|
||||
private long moduleBase;
|
||||
private int moduleSize;
|
||||
private long moduleSize;
|
||||
private int moduleNameLength;
|
||||
private String moduleName;
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class Module implements StructConverter {
|
|||
reader.setPointerIndex(index);
|
||||
|
||||
setModuleBase(reader.readNextPointer());
|
||||
setModuleSize(reader.readNextInt());
|
||||
setModuleSize(reader.readNextUnsignedInt());
|
||||
setModuleNameLength(reader.readNextInt());
|
||||
setModuleName(reader.readNextAsciiString(getModuleNameLength()));
|
||||
}
|
||||
|
@ -53,6 +53,7 @@ public class Module implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME + Long.toHexString(moduleBase), 0);
|
||||
|
||||
|
@ -85,14 +86,14 @@ public class Module implements StructConverter {
|
|||
/**
|
||||
* @return the moduleSize
|
||||
*/
|
||||
public int getModuleSize() {
|
||||
public long getModuleSize() {
|
||||
return moduleSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param moduleSize the moduleSize to set
|
||||
*/
|
||||
public void setModuleSize(int moduleSize) {
|
||||
public void setModuleSize(long moduleSize) {
|
||||
this.moduleSize = moduleSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ public class Thread implements StructConverter {
|
|||
private int priority;
|
||||
private long teb;
|
||||
private long stackStartOfMemoryRange;
|
||||
private int stackDataSize;
|
||||
private long stackDataSize;
|
||||
private int stackRVA;
|
||||
private int contextDataSize;
|
||||
private int contextRVA;
|
||||
|
@ -57,7 +57,7 @@ public class Thread implements StructConverter {
|
|||
setPriority(reader.readNextInt());
|
||||
setTeb(reader.readNextLong());
|
||||
setStackStartOfMemoryRange(reader.readNextLong());
|
||||
setStackDataSize(reader.readNextInt());
|
||||
setStackDataSize(reader.readNextUnsignedInt());
|
||||
setStackRVA(reader.readNextInt());
|
||||
setContextDataSize(reader.readNextInt());
|
||||
setContextRVA(reader.readNextInt());
|
||||
|
@ -67,6 +67,7 @@ public class Thread implements StructConverter {
|
|||
/**
|
||||
* @see ghidra.app.util.bin.StructConverter#toDataType()
|
||||
*/
|
||||
@Override
|
||||
public DataType toDataType() throws DuplicateNameException {
|
||||
StructureDataType struct = new StructureDataType(NAME, 0);
|
||||
|
||||
|
@ -151,11 +152,11 @@ public class Thread implements StructConverter {
|
|||
this.stackStartOfMemoryRange = stackStartOfMemoryRange;
|
||||
}
|
||||
|
||||
public int getStackDataSize() {
|
||||
public long getStackDataSize() {
|
||||
return stackDataSize;
|
||||
}
|
||||
|
||||
public void setStackDataSize(int stackDataSize) {
|
||||
public void setStackDataSize(long stackDataSize) {
|
||||
this.stackDataSize = stackDataSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -72,9 +72,9 @@ public class Userdump extends DumpFile {
|
|||
DataType dt = header.toDataType();
|
||||
data.add(new DumpData(0, "DumpHeader", dt.getLength()));
|
||||
|
||||
int regionOffset = (int) header.getMemoryRegionOffset();
|
||||
long regionOffset = header.getMemoryRegionOffset();
|
||||
addInteriorAddressObject("DumpHeader", 0, 0L, regionOffset);
|
||||
int blocksLength = (int) (reader.length() - regionOffset);
|
||||
long blocksLength = reader.length() - regionOffset;
|
||||
addInteriorAddressObject("RawBlocks", regionOffset,
|
||||
header.getMemoryRegionOffset(), blocksLength);
|
||||
|
||||
|
@ -163,6 +163,7 @@ public class Userdump extends DumpFile {
|
|||
return Integer.toHexString(header.getMachineImageType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void analyze(TaskMonitor monitor) {
|
||||
boolean analyzeEmbeddedObjects =
|
||||
OptionUtils.getBooleanOptionValue(ANALYZE_EMBEDDED_OBJECTS_OPTION_NAME,
|
||||
|
@ -174,8 +175,9 @@ public class Userdump extends DumpFile {
|
|||
}
|
||||
|
||||
/**
|
||||
* Get default <code>Userdump</code> loader options.
|
||||
* See {@link DumpFile#getDefaultOptions(DumpFileReader)}.
|
||||
* Get default <code>Userdump</code> loader options. See
|
||||
* {@link DumpFile#getDefaultOptions(DumpFileReader)}.
|
||||
*
|
||||
* @param reader dump file reader
|
||||
* @return default collection of Userdump loader options
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user