我有一个C#应用程序。当它在打包前发布时,我使用的是IntelliLock加密。并使用startssl数字签名。(实际上我不知道如何使用它,可以用它来验证dll吗?)
但我仍然担心这一点:有1到2个dll使用检查使用身份,而且非常小。我担心它会被修改和替换为相同的名称。那么应用程序将不会检查身份。
所以我的问题是,有没有办法检查dll在IntelliLock和startssl数字烧录步骤之后没有被修改?
非常感谢。
发布于 2013-10-22 04:58:35
我相信你最好的方法是尝试从DLL加载字节并计算校验和.A校验和是基于预先计算的值表对文件中的字节进行的累积计算。可以使用库或您自己的实现来计算校验和。我会读取文件内容,然后计算校验和。
您需要通过web或引用本地存储的值来验证值。一种方法是运行你的应用程序,反编译并找出校验和是如何计算的,修改DLL,然后更改本地存储的校验和以匹配。在服务器上使用webAPI验证校验和可能是最安全的方法。
有些人使用MD5作为校验和,如下所示:Calculate MD5 Checksum
和足够的信息让你在这里入门:Generating a checksum for a file
https://stackoverflow.com/questions/18691651
复制相似问题