根据我对数字签名的理解,当代码签名执行时,“签名者”会修改PE本身。我注意到它将证书内容添加到PE的末尾,并且(显然)还向头部添加了某种类型的引用。
我的问题是:这有多安全?难道没有人能够对可执行文件进行反向工程,从而将其伪造到自己的可执行文件中,从而伪造数字签名吗?
发布于 2012-08-08 04:31:09
代码签名是一个公钥-私钥操作。签名操作计算.exe文件的散列(减去存储签名的位数),然后用签名者的私钥加密该散列。
在客户端验证时,客户端将重做散列计算,并使用公钥解密存储的签名。如果两个哈希匹配,则exe未被篡改。
文件的唯一位是加密的是签名-其他的都是明文存储的。没有什么能阻止你拆卸可执行文件并将其(或部分)放入另一个.exe中。
签名不是用来防止偷窃的--它是用来检测篡改的。
https://stackoverflow.com/questions/11853340
复制相似问题