检查文件是否是 .NET 程序集

2024-05-06

我见过一些方法通过检查二进制结构来检查 PEFile 是否是 .NET 程序集 http://www.anastasiosyal.com/archive/2007/04/17/3.aspx.

这是测试多个文件最快的方法吗?我假设尝试加载每个文件(例如通过Assembly.ReflectionOnlyLoad http://msdn.microsoft.com/en-us/library/0et80c7k(VS.80).aspx)文件可能会非常慢,因为它将加载文件类型信息。

注意:我正在寻找一种以编程方式检查文件的方法。


我想 Stormenet 的答案在技术上并不重要程序化的,所以我将把我的回应分成一个答案。

为了获得最佳性能,没有什么比使用StreamReader,读取前 (n) 个字节并检查字节流中的 .NET 文件签名数据结构。

与验证某个东西是否为 DOS 可执行文件的方式几乎相同:

http://en.wikipedia.org/wiki/DOS_executable http://en.wikipedia.org/wiki/DOS_executable

寻找“MZ”头字节,这也恰好是 MS-DOS 开发者之一 Mark Zbikowski 的名字缩写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查文件是否是 .NET 程序集 的相关文章

  • 如何使用 google test for C++ 来运行数据组合

    我有一个单元测试 需要针对 200 种可能的数据组合运行 生产实现在配置文件中有要测试的数据 我知道如何模拟这些值 我更喜欢为每个组合编写单独的测试用例 并使用某种方式循环数据 有没有使用 Google test for C 的直接方法 您
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 如何重新解释或转换具有已知内存布局的对象而不出现未定义的行为

    我有一个矩阵类transposedView 我多年来一直使用该方法作为行向量和列向量之间的 零开销 转换 template
  • 第一次机会异常 - 在内存位置长?

    这是什么 我该如何处理 修复它 First chance exception at 0x756fb727 in Program exe Microsoft C exception long at memory location 0x0018
  • c中的奇异值分解简单代码

    我正在寻找 C 语言的奇异值分解 SVD 代码 你能帮我吗 我找到了很多来源 但我无法运行它们 我正在寻找一个为我提供 S V 和 U 3 个矩阵的 SVD 代码版本 您可以使用数字食谱代码svdcmp c 参考 http tumic wz
  • C++ 中什么被视为语句?

    我的教授通常会问我的班级给定程序中有多少条语句 但我无法确定他将什么定义为语句 似乎 if else 是一个语句 而 for 循环也是一个语句 无论其中是否还有其他假设的语句 对于这个问题是否有任何管理规则或者他对自己的发明的定义 Than
  • 在 JsonConverter 中递归调用 JsonSerializer

    我正在写一个JsonConverter要执行一些我需要在读 写时完成的转换任务 特别是 我采用现有的序列化行为 并在写入 读取时添加一些附加属性 在 的里面JsonConverter 我想利用通过的JsonSerializer实例来执行大部
  • WPF:Prism 对于小型应用程序来说是不是太过分了?

    如果我不将我的应用程序分成不同的模块 否则我会认为 Prism 确实是可行的方法 我应该使用 Prism 吗 我知道 Prism 提供了一个方便的实现ICommand 我可以自己在一页代码中完成 并为我们提供IEventAggregator
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • 使用 CreateProcessAsUser 和 CreateEnvironmentBlock 创建进程后未设置 Clientname

    我编写了一个在本地系统帐户下运行的 C 服务 当用户登录终端服务器时 我用它来生成一个进程 该服务实现了OnSessionChange方法并接收SessionChangeDescription具有相应SessionID的消息 我使用此 Se
  • STL Map 或 HashMap 线程安全吗?

    我可以在多线程程序中使用映射或哈希图而不需要锁吗 即它们是线程安全的吗 我想同时在地图中添加和删除 那里似乎有很多相互矛盾的信息 顺便说一下 我在Ubuntu 10 04下使用的是GCC自带的STL库 编辑 就像互联网的其他部分一样 我似乎
  • jQuery Datatable:分页和过滤器显示不正确

    我不知道如何解决这个问题 尝试了一整天但没有成功修复分页 我正在使用 jQuery 数据表 并且为了显示我的大量数据 我正在使用服务器端 作为测试 仅调用表中的 10 行数据 然后在传递到表之前 我重组了里面的数据dataSrc 使用这个解
  • 自定义代码访问安全属性

    我创建了以下属性 Serializable AttributeUsage AttributeTargets Class AttributeTargets Method AllowMultiple true Inherited true pu
  • ASP.net C#,采用不同参数类型的同名方法[重复]

    这个问题在这里已经有答案了 可能的重复 可以在 ASP Net MVC 中重载控制器方法吗 https stackoverflow com questions 436866 can you overload controller metho
  • decltype 中的可变参数模板包

    我可以写为 template lt class T0 gt struct Last0 using type decltype T0 OK compiles type T0 template lt class T0 class T1 gt s
  • EF4如何在多对多关系中公开联接表

    假设我有以下表格 Essence EssenceSet 和 Essence2EssenceSet 其中 Essence2EssenceSet 仅保存前 2 个表的 ID 以形成 M M 关系 在 EF 中 由于 Essence2Essenc
  • 如何计算最低系统要求?

    对于我用 Visual C 编写的应用程序 Testing 不 真的 这就是全部
  • 在 Postman 中连接 ECONNREFUSED

    我试图通过邮递员测试我的 REST API 但收到以下错误 这是我编写的第一个 REST API 我对邮差很陌生 所以不确定我做错了什么 下面是我尝试使用此 URL 在邮递员中调用的代码 我在 URL 中传递两个日期参数 https loc
  • 如何在运行时添加到 TreeView 目录

    我有一个TreeView我想允许用户添加和删除子项目 在探索基本功能时 我使用button and a textbox添加此子项 当用户点击button a new TreeViewItem需要创建并设置为我的父项的子项TreeView与t

随机推荐