【问题标题】:Win32 ExceptionWin32 异常
【发布时间】:2011-11-04 23:41:07
【问题描述】:

我遇到了一个非常烦人的异常:

类型的第一次机会异常 System.dll 中出现“System.ComponentModel.Win32Exception”。

尝试了所有谷歌的东西,但徒劳无功。

foreach (Process p in Process.GetProcesses(Environment.MachineName))
{
    try
    {
        foreach (ProcessModule pm in p.Modules)
        {
            FileIOPermission f = new FileIOPermission(FileIOPermissionAccess.Read, pm.FileName);

            stack.Push(pm.FileName.ToString());    
        }
    }
    catch (Win32Exception w)
    {
        Console.Write(w);
    }
}

【问题讨论】:

  • 请修复您的代码,以便标记整个块,并告诉我们异常文本是什么。
  • 如果您提供一些上下文也可能会有所帮助。你的目标是什么?

标签: c# exception


【解决方案1】:

您正试图打开系统上每个进程中每个模块的句柄。你不仅没有权限这样做,你也不能枚举系统进程的模块(即内核)。

您应该跳过那些您无权访问的内容,因为无论如何您都无法对它们做任何事情。

【讨论】:

  • @Polynomial:Buddy 我正在尝试构建一个防病毒软件(我知道一件大事),并且我包含了 rootkit 扫描功能,它可以扫描进程的 dll 文件。有什么帮助吗?
  • 我比大多数人都更清楚 C# 中的 AV 项目有多大,因为实际上我自己为我的大学期末项目编写了一个。做任何有用的 AV 的唯一真正方法是使用 C 编写内核模式驱动程序,并使用互斥锁、DeviceIoControl 和 AllocHGlobal 与 C# 引擎交互。在用户模式下检查钩子和注入的 DLL 只会导致失败。在用户模式下,您受限于 Win32 API 允许您执行的操作,因此您面临与用户模式恶意软件相同的限制。在内核模式下,你不局限于任何事情。
猜你喜欢
  • 2016-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 2021-12-23
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多