.net 强名称签名机制和防修改机制

签名机制
1. 用SN.exe 生成一个key文件, 这个key文件包括一个public key 和一个private key.
2. 用这个key文件签名assembly时, 编译器将用private key签名程序集, 并将public key嵌入manifest中
3. 编译器哈希manifest中所有的assembly内容, 并将此哈希值各自assembly的FileDef Talbe中.
4. 当如上3步处理后, 编译器将哈希PE文件的整个内容(除authenticode signature, 强名称数据, PE头), 然后将此哈希值用private key签名. 得到RSA数字签名.
5. 将此数字签名嵌入到PE文件的CLR头

防修改机制
1. 当签名后的assembly安装到GAC, 系统会哈希PE文件(同签名), 得到哈希值
2. 系统读取PE文件中CLR头中的RSA签名, 并用public key(包含在manifest中)解密
3. 比较第1步得到的哈希值和第2步得到解密值是否一致, 从而判断其是否被修改.

转载于:https://www.cnblogs.com/idda/archive/2007/10/14/923531.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值