gpt4 book ai didi

python - 有没有办法用 python pefile 检查 exe 是否是 dot NET?

转载 作者:可可西里 更新时间:2023-11-01 11:45:43 25 4
gpt4 key购买 nike

我正在尝试编写一个简单的 python 脚本;最好使用可以告诉我 exe 或 dll 文件是否编译为 .NET 的 pefile。我知道我可以查找字符串“BSJB”来查看该程序是否是用 .NET 编写的,但我正在尝试以比使用 grep 和字符串更 pythonic 的方式来执行此操作。运行 pefile.PE('my.exe').dump_info() 给了我一些很好的信息,但还不足以确定它实际上是 dot Net 还是什么版本的 dot Net。

谢谢!

最佳答案

您可以通过检查 IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 是否已填写(即其 VirtualAddress 和 Size 不为零)来识别 .NET 程序集。该条目的名称令人困惑,但它是用于 .NET 元数据的名称;见Names of PE directories .

如果你需要程序集所需的框架版本,那么你将不得不自己解析元数据结构,pefile 似乎不支持。如果你能做到这一点,那么根据 http://www.ntcore.com/files/dotnetformat.htm您会在那里找到名为 MajorRuntimeVersion 和 MinorRuntimeVersion 的字段,尽管我不确定应该如何解释这些字段。

关于python - 有没有办法用 python pefile 检查 exe 是否是 dot NET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45574925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com