使用nodejs在Windows中读取过程的内存值

Read memory values of a process in windows using nodejs

本文关键字:过程 内存 读取 nodejs Windows 使用      更新时间:2023-10-16

摘要

我想知道是否可以使用 nodejs

我有一些C 代码可以做到这一点。出于某些原因,我想使用nodejs做到这一点。


Q1:是否可以为nodejs使用的C 代码创建一个插件?

Q2:是否可以从C 异步提取数据并在我的Nodejs应用中使用它们?

Q3:我可以使用JavaScript(nodejs and Modules)重写程序?

每个问题(如果可能)被认为是解决我问题的方法。
如果您选择回答其中1个或更多,请

  • 给我一个过程的概要
  • 将我指向正确的方向(例如,文档,指南,答案等。)

任何答案都是对"困难",苛刻的问题的好答案。

是的,这可能是可能的,但这实际上取决于您要读取的内存值以及OS是否允许外部过程读取它们。

nodejs本身没有代码可以从另一个过程中读取内存,因此您需要编写和运行自己的本机代码。要从nodejs运行本机代码,您将需要使用nodejs api文档编写nodejs模块,以直接从nodejs内部调用本机代码,或者您可以在本机代码中编写可执行的独立执行权,然后使用 child_process module执行该代码并使用它并拥有它向您返回一些数据。如果您具有自己的本机代码可以读取所需内存的能力,并且不会因操作系统中的过程边界而阻止,则任何一个选项都可以正常工作。

Q1:是否可以为要使用的C 代码创建一个插件 nodejs?

是的,在Nodejs API文档中,Nodejs已对此有很好的记录。

Q2:是否可以从C 异步提取数据并使用 它们在我的nodejs应用中?

如果您希望该操作是异步的,则必须异步执行本机代码(在OS线程中或其他过程中),并通过一些回调将结果传达。Nodejs的许多功能都是以这种方式构建的。

Q3:我可以使用JavaScript(Nodejs和模块)重写程序 ?

您无法完全从nodejs读取外部进程的内存值(因为NodeJS没有内置功能)。您将需要一些自己的本机代码,这些代码可能是从Node.js。

执行的插件或外部进程。

由于您已经拥有可以执行您想要的本机C 代码,因此听起来最简单的方案可能只是将该代码包装到其自己的C 应用中,并通过stdout或通过写入传递给Essher的结果来回传递结果在文件名或类似的内容中。然后,您可以只使用Node.js中的child_process模块执行您的C 应用并检索其提供的结果。从另一个过程中执行并使用适当的child_process方法执行的本质,您可以异步地检索结果。CHILD_PROCESS模块文档包含有关如何使用其各种方法的多个示例。

这是一个基本的插件,用于阅读另一个窗口的过程。