如何修补 NTOSKrnl.exe(或 DLL,无论适用于 AMD 系统)以更改 PopCreateHiberFile 中的 hiberfil.sys 的驱动器/卷?

如何修补 NTOSKrnl.exe(或 DLL,无论适用于 AMD 系统)以更改 PopCreateHiberFile 中的 hiberfil.sys 的驱动器/卷?

如图所示:http://superuser.com/a/1082931/31491

NTOSKrnl.exe 版本 6.1.7601.24545
AMD64 系统

还需要其他信息吗?我甚至很难得到与他相同的观点。

我的观点,IDA Free

好的,因此视图>子视图>伪代码(F5)起作用了,但它的可读性不如他的和/或需要进行一些调整:

https://hex-rays.com/products/decompiler/manual/primer.shtml

此外,将所有部分组合在一起需要进一步了解要查看的位置(?)。

答案1

编辑:

本文解释了解决方案这里。我自己没试过。

这个想法是修补 ntoskrnl.exe。路径由一个基本路径(如下所示:)\Device\Harddisk1\Partition0和组成\hiberfil.sys。基本路径静态存储在名为的变量中IoArcBootDeviceName。此变量本身写在函数中IopCreateArcNames。它在以下几行中获取其值:

/* Create the global system partition name */
sprintf(Buffer, "\\ArcName\\%s", LoaderBlock->ArcBootDeviceName);
RtlInitAnsiString(&ArcString, Buffer);
RtlAnsiStringToUnicodeString(&IoArcBootDeviceName, &ArcString, TRUE);

对于此补丁,您需要安装 IDA 或类似的反汇编程序。有关所有这些功能的一些帮助,您可以使用ReactOS 参考。如果你的伪代码视图看起来不像这样,你应该检查你的符号这里

原来的:

这家伙在文章修补了函数 IopCreateArcNames。因此,首先您需要转到此函数。

您需要替换此行:

sprintf(Buffer, "\\ArcName\\%s", LoaderBlock->ArcBootDeviceName);

sprintf(Buffer, "\\ArcName\\%s", LoaderBlock->ArcHalDeviceName);

相关内容