Merge remote-tracking branch 'origin/patch'

This commit is contained in:
Ryan Kurtz 2023-06-01 13:39:47 -04:00
commit 0d71657d05
14 changed files with 68 additions and 51 deletions

View File

@ -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|

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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
*/

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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
*/