我有一个程序可以将每个模块加载到一个进程中并将它们与禁用的DLL文件数据库进行比较,这样可以正常工作,但是它太简单了(只需更改要注入的dll文件的名称)进入过程)。所以我问我怎么能区分DLL文件。是否有可以在C#中使用的唯一标识符?感谢。
编辑:我忘了提到我正在创建的程序检查我用C ++编写的另一个程序的dll文件。
答案 0 :(得分:0)
您可以遍历流程How do I list all loaded assemblies?中加载的每个模块,看看每个module是否正确,例如ModuleVersionId在文件名更改时是否会发生变化?< / p>
答案 1 :(得分:0)
我不确定这是否是远程处理它的一种不错的方式,但是可能尝试散列DLL文件并检查文件的已知可信哈希值?这将要求您已经拥有一个受信任的dll哈希列表,但应该防止简单地重命名以绕过当前的安全措施。