将char[16]转换为有效内存地址(PVOID?)时出现问题



我正试图通过内核从文本文件中读取一个值,这是通过以下方式实现的:"ZwReadFile"并读入CHAR流读取[32]

打印此值显示

值为:0000021A5DFFD9B0这是文件中的正确字符串,然后我希望将其传递给MmCopyVirtualMemory的调用,这会给我带来问题,并且函数会因为这个变量而失败,用硬编码的0x0000021A5DFFD9B0替换它效果很好,有人能告诉我如何将值转换为内存地址吗?

最终的形式需要是PVOID,但尝试了一切,但无法正常工作,非常感谢任何帮助,

感谢

long long hexstr_to_hexint(char hex[])
{
long long decimal = 0, base = 1;
int i = 0, length;
length = strlen(hex);
for (i = length--; i >= 0; i--)
{
if (hex[i] >= '0' && hex[i] <= '9')
{
decimal += (hex[i] - 48) * base;
base *= 16;
}
else if (hex[i] >= 'A' && hex[i] <= 'F')
{
decimal += (hex[i] - 55) * base;
base *= 16;
}
else if (hex[i] >= 'a' && hex[i] <= 'f')
{
decimal += (hex[i] - 87) * base;
base *= 16;
}
}
return decimal;
}

在其他地方发现了一些代码,但记不清在哪里,经过编辑后可以正常工作,并消除了混乱。

最新更新