我找不到合适的头衔。我将用例子来表达我的疑问。
考虑以下软件:
对我来说,这些软件似乎是奇迹。我想知道这些甚至是如何制作的。来吧,用户进程如何知道其他进程的详细信息?谁告诉这个软件,正在运行什么进程以及利用了哪些资源?使用哪些dll?等。
Windows操作系统是否向这些软件提供了这些信息?我的意思是(显然是最低级别的api)WIN32API。是否有一些函数,在调用时返回这些值
抽象地说:
等。
其他类似的应用程序
如果是WIN32API。我发誓,我要掌握它。
我不想创建多线程应用程序。我想获得有关其他多线程应用程序的信息。 我不想创建一个使用套接字进行通信的程序。我想学习如何学习如何捕获所有通信包。
我实际上想要在 较低级别 工作。但我不知道,我应该学什么。请指导我正确的方向。
答案 0 :(得分:1)
这真是一个非常开放的问题。对于像运行进程列表这样的内容,请查找“PSAPI”或“Toolhelp32”。有关特定进程的内存信息,可以使用VirtualQuery。
通常通过安装设备驱动程序来捕获网络数据包。如果你看,你应该能够找到关于如何编写设备驱动程序的相当数量,但不要期望在一夜之间创建奇迹,并且确实会在此过程中使机器崩溃几次(设备驱动程序在内核模式下运行) ,所以很难让错误的机器很难崩溃。
我对抗病毒的确定性并不是很清楚,因为我从来没有尝试过编写反病毒。我的直接猜测是他们的主要技术是API挂钩。可能还有更多,但是从来没有花足够的时间看着他们知道什么。
答案 1 :(得分:1)
马克·鲁西诺维奇的经典作品Windows Internals,如果你想深入了解这类东西,那就是最好的书。我注意到刚刚发布的第5版包括Vista。这是一个sample chapter来偷看。
如果您喜欢Process Explorer,那就是编写它的人,并且书中有很多使用它的例子。
另外,在1232个精装页面上,你可以用它来按你的衣服。