问题标签 [windows-nt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
385 浏览

windows-nt - 隐藏 NT 驱动功能的官方文档

我很想知道一些没有正式在开放内核中的隐藏函数记录在哪里。

当前的 WinAPI 和 NTAPI 文档缺少这些功能。

0 投票
0 回答
159 浏览

windows - 如何在 Windows 7 中使用波浪号复制文件名?

我有一张应该在 2009 年刻录的 DVD。在一个目录中有 2 个文件。File-1 名为 abc~1.TXT,大小为 512 KB。文件 2 名为 abcdefg.txt,大小为 43 KB。

现在使用Win7,当我尝试将file-1复制到我的硬盘时,它实际上会复制file-2的数据内容。硬盘中的文件名是file-1的文件名,但大小为43 KB,内容与file-2相同。

当我使用 notepad++ 打开 DVD 中的 file-1 时,内容是 file-2 的内容。另外,看起来没有 512 KB。

我也在 CMD 提示符下尝试了复制命令,但没有运气,同样的行为。

我还尝试使用 7zip 压缩文件 1,再次将 43 KB(不是 512 KB)压缩到 zip 文件中。

我在网上搜索。有人告诉我 file-1 可能是在 Win NT 中工作的短文件名情况。

我的问题是:

  1. 我如何证明 file-1 是 file-2 的短文件名?在这种情况下,如何查看这 512 KB 的 CONTENT ?Win7 中没有调试命令可以逐字节查看 512 KB。

  2. 如果 file-1 不是 file-2 的短文件名,如何将 file-1 的 TRUE CONTENT(即 512 KB 文件内容)复制到硬盘?

提前致谢。阿尔文·萧

0 投票
0 回答
186 浏览

memory - 适当的 PE 基地搬迁

我正在尝试从内存中运行 WIN32 PE 可执行文件(不用于恶意软件,仅用于软件保护目的)。当我在所需的图像基地址 (0x00400000) 分配时,它工作得很好。但这并不理想,因为该地址并不总是可用的,有时甚至已经被当前进程使用,具体取决于 ASLR。

相反,我必须使用这个通用代码使用从 VirtualAlloc() 获得的新地址重新定位图像。

它适用于简单的可执行文件,但具有资源、TLS 和其他各种东西的更复杂的可执行文件无法正确加载或根本无法加载。

我的问题是,有没有更好的方法来进行图像重定位,或者我怎样才能始终为我的新 PE 图像保留地址 0x00400000。

谢谢。

0 投票
1 回答
77 浏览

go - Go 编译的二进制文件会在 Windows NT 上运行,包括使用以太网端口吗?

是的,Windows NT 仍然是一些人必须处理的事情。

我想知道是否可以在 NT 上运行用 Go 编译的二进制文件并使用以太网端口进行通信 (MQTT)。如果是这样,我需要注意什么?

我承认我没有在这种情况下进行测试,因为在我当前的环境中根本没有 Win NT 可用。

0 投票
1 回答
144 浏览

c - Windows NtCreateFile 返回 STATUS_INVALID_PARAMETER(使用未记录的 NT 系统调用接口)

我认为编写一个使用未记录的 Windows NT 系统调用接口的程序集(对于 64 位 x86,NASM)可能会很有趣/有趣。不幸的是,似乎在某处我错误地设置了结构或其他参数,导致NtCreateFile返回STATUS_INVALID_PARAMETER(0xC000000D)。我怀疑这也可能是因为我可能将参数的顺序错误。我关于如何使用系统调用接口的信息来自另一个 SO question,其中有人提到反编译 ntdll 中的函数,这使我发现我可以以类似于 Linux 的方式调用系统调用,即将幻数放入RAX,然后使用syscall指令(int 2e也可以)。这会产生与直接调用相同的结果NtCreateFile. 在阅读了这个Microsoft 文档后,我弄清楚了放入参数的顺序。for 的幻数NtCreateFile来自这里。这是程序:

我用这些命令组装并链接它:

我还编写了这个 C 程序,它正在尝试同样的事情并按预期工作:

这是用

如果有人可以提供帮助,我们将不胜感激。

0 投票
1 回答
118 浏览

wpf - Windows10 NT Shell ,使用 WPF Application 替换 Explorer.exe

我的程序开机后不能正常启动,但是Mark Text可以正常启动。

无论我是直接替换它还是通过 Eshell.exe 替换它。

标记文本

我错过了什么?


C++应用也能启动,WPF不能启动

是什么原因?

0 投票
1 回答
88 浏览

function - 我怎么能在不链接 NTDLL 或任何其他 DLL 的情况下从 NTDLL 加载函数?

我一直在尝试仅使用 NTDLL 导出的加载器函数从 Windows 系统 DLL 加载函数。这按预期工作。为了好奇和更好地理解基于 NT 的系统中的进程结构,我开始尝试通过执行以下步骤从 NTDLL 加载函数:

  1. 从 gs:[60h] 加载进程的 PEB
  2. 根据加载器遍历加载到进程中的模块,找到NTDLL的基地址
  3. 解析 NTDLL 的 PE 头
  4. 尝试解析导出表以查找LdrLoadDllLdrGetDllHandleLdrGetProcedureAddress

这在第 4 步失败。在调试器(VS2019 和 WinDbg 预览版)中单步执行后,似乎我尝试的偏移量产生了一个无效结构,当我的代码将当前函数名称与我正在寻找的其中之一。我的代码正在 Windows 10 Pro build 21364 的 64 位副本上编译和运行。请注意,我使用的是我自己的标头,其中包含用于此的结构的定义(这些定义来自winnt.h此处),因为 Windows 标头对我的其余代码不太好。试图做到这一点的功能是here. 作为记录,这是尝试实现我自己的 libc 的一部分(再次,为了好奇)。调用函数的代码在这里。非常感谢您对此的任何帮助。

0 投票
0 回答
157 浏览

c++ - WNetAddConnection2 返回错误 86,网络使用工作

我尝试c$通过WNetAddConnection2. 这是我使用的代码:

这只是给我86代表的错误代码:

指定的网络密码不正确。

如果我尝试net use像这样安装共享:

并在提示连接成功时提供相同的密码。

我的代码有问题吗?还是我错过了什么?因为对我来说,连接与函数一起工作net use但不与WNetAddConnection2函数一起工作很奇怪。