如图所示:http://superuser.com/a/1082931/31491
NTOSKrnl.exe 版本 6.1.7601.24545
AMD64 系统
还需要其他信息吗?我甚至很难得到与他相同的观点。
好的,因此视图>子视图>伪代码(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);