Начинающий
-
Автор темы
- #1
Добрый день. Всё в экстернале я исправил, энтити получаю правильно.
Проверил в IDA, офсет данной функции вроде тоже правильный, но функция всегда возвращает NULL.
Вот код, который я использую (C lang)
Буду благодарен за любую помощь
Проверил в IDA, офсет данной функции вроде тоже правильный, но функция всегда возвращает NULL.
Вот код, который я использую (C lang)
C:
const char* ReadChar(DWORD64 SourceAddress)
{
if (!SourceAddress || SourceAddress > 0x7fffffffffff || SourceAddress < 0x10000)
{
DbgPrintEx(0, 0, "Error ReadChar:%p\n", SourceAddress);
}
const char* TargetBYTE = 0;
PSIZE_T Bytes = 0;
NTSTATUS Status = STATUS_SUCCESS;
PEPROCESS Process;
if (NT_SUCCESS(PsLookupProcessByProcessId(ProcessIdGetkey, &Process)))
Status = MmCopyVirtualMemory(Process, SourceAddress, PsGetCurrentProcess(), &TargetBYTE, sizeof(const char*), KernelMode, &Bytes);
if (!NT_SUCCESS(Status))
{
return TargetBYTE;
}
return TargetBYTE;
}
const char* EntityGetName(DWORD64 IEntity)
{
const char* result = NULL;
result = ReadChar(IEntity + 0x170);
return result;
}
const char* name = EntityGetName(pEntity); // return NULL
DbgPrintEx(0, 0, "%s", name);
Последнее редактирование: