gpt4 book ai didi

c# - 签署 exe 会使通信变慢吗?

转载 作者:太空狗 更新时间:2023-10-29 23:47:36 25 4
gpt4 key购买 nike

场景

我有一个 C# 可执行文件,使用强 key 签名。从这个 C# 应用程序,我正在调用 C++ 可执行文件(未签名),使用“pinvoke”。我观察到 C++ 可执行文件的执行有明显的延迟。这有什么原因吗?

最佳答案

请在 How do I strongly name an Unmanaged C++ Dll 引用邻居的回答

一般来说,程序集的强名称只是一个校验和,没有人更改/入侵/注入(inject)您的代码(注入(inject)可能是病毒或木马应用程序之类的东西)。它不是很安全的代码保护,这就是为什么它不需要很多时间来完成所有的汇编测试。当然,与简单的汇编相比,签名的代码将需要更多的时间来加载。

另一方面,PInvoke 就像一个 Web 服务调用,其中 .Net 代码不关心该代码是否安全。只有当你有很多参数时才会出现延迟,并且参数类型来自一些大型签名程序集的一些第 3 方结构。在这里你可能会看到一些小的时间延迟,因为那些大的程序集被加载到内存中,类型被检查,并且 PInvoke 被创建。

也许,您应该尝试将所有类和结构从许多程序集中移动到一个程序集中,并在那里使用 PInvoke。因此,在这种情况下,您不需要加载很多程序集。

关于c# - 签署 exe 会使通信变慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9171715/

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