0

根据我对数字签名的了解,当对 exe 进行代码签名时,“签名者”会修改 PE 本身。我注意到它将证书内容添加到 PE 的末尾,并且(显然)添加了对标头的某种引用。

我的问题是:这有多安全?能够对可执行文件进行逆向工程的人不能将其伪造到他自己的可执行文件上,从而伪造数字签名吗?

4

1 回答 1

7

代码签名是一种公私密钥操作。签名操作计算 .exe 文件的哈希值(减去存储签名的位),然后使用签名者的私钥加密哈希值。

在客户端验证时,客户端将重做哈希计算,并使用公钥解密存储的签名。如果两个哈希值匹配,则该 exe 未被篡改。

文件的唯一位被加密的是签名 - 其他所有内容都以明文形式存储。没有什么能阻止你撕开 exe 并将其(或其中的一部分)塞入另一个 .exe 中。

签名不是为了防止盗窃——它是为了检测篡改。

于 2012-08-07T20:31:08.630 回答