MCPcopy Create free account
hub / github.com/NtQuery/Scylla / patchDirectImportInDump32

Method patchDirectImportInDump32

Scylla/IATReferenceScan.cpp:659–676  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

657}
658
659void IATReferenceScan::patchDirectImportInDump32( int patchPreFixBytes, int instructionSize, DWORD patchBytes, BYTE * memory, DWORD memorySize, bool generateReloc, DWORD patchOffset, DWORD sectionRVA )
660{
661 if (memorySize < (DWORD)(patchOffset + instructionSize))
662 {
663 Scylla::debugLog.log(L"Error - Cannot fix direct import reference RVA: %X", sectionRVA + patchOffset);
664 }
665 else
666 {
667 memory += patchOffset + patchPreFixBytes;
668 if (generateReloc)
669 {
670 DWORD relocOffset = sectionRVA + patchOffset+ patchPreFixBytes;
671 directImportLog.log(L"Relocation direct imports fix: Base RVA %08X Type HIGHLOW Offset %04X RelocTableEntry %04X", relocOffset & 0xFFFFF000, relocOffset & 0x00000FFF, (IMAGE_REL_BASED_HIGHLOW << 12) + (relocOffset & 0x00000FFF));
672 }
673
674 *((DWORD *)memory) = patchBytes;
675 }
676}
677
678void IATReferenceScan::patchDirectImportInDump64( int patchPreFixBytes, int instructionSize, DWORD_PTR patchBytes, BYTE * memory, DWORD memorySize, bool generateReloc, DWORD patchOffset, DWORD sectionRVA )
679{

Callers

nothing calls this directly

Calls 1

logMethod · 0.80

Tested by

no test coverage detected