我们知道可以用Microsoft de makecert.exe 和cabarc.exe 对一个 扩展名为.exe 
.ocx .dll .cab .vxd的文件进行数字签名 经过签名后的文件在文件属性页内可以看到该签名 ,如果文件被改动则签名便无效。  我要说的是 怎么作这样一个东西
比如说 一个被签名的ocx控件如何在代码里如何判断自身的数字签名是否有效,从而判断自身是否被改动过 ,达到防止Crack的目的 。 希望高手不断赐教,大家多来讨论!!!!!!!可惜 最大分只有100 不然我就多给一些

解决方案 »

  1.   

    其实具体加密/解密算法我们不必去管,除非你想研究算法,因为真实的数字签名过程体系是允许使用不同的加/解密算法提供商的。
        我们所需要关心的是签名的过程和API控制以及具体实施的方法。    经过签名后的文件是经过源二进制文件+客户私匙+客户唯一ID号(后两者是需要通过官方或可信赖第三方论证获得,换句话说是需要银子去换的^_^)。
        在该二进制文件需要运行是,将使用发布的共匙进行边解密边运行。
        我试过反汇编经过数字签名的文件,对任何一个字节(包括数据段)的改动,均会引起该文件的失效。