强名称保护

用Vs签强名称我会

SDK中

  1. sn -k key.snk
  2. csc keyfile key.snk *.cs

强名称的去除:

  1. CLR头中的flag项,去除COMIMAGE_FLAGS_STRONGNAMESIGNED标志
  2. CLR头中的StrongNameSignature, RVA与Size为0
  3. Assembly表中的Flags项,送去0X0001 (PublickKey标识),通常变后为0X0000(SideBySideCompatible)
  4. Assembly表中的PublicKey项,指向Blob的偏移,用0填充

利用工具

  1. Strong Name Remove工具
  2. Re-Sign工具

代码中读强名称

     Assembly e = Assembly.GetExecutingAssembly();

     byte[] publicKey = e.GetName().GetPublicKey();

     byte[] publicKeyToken = e.GetName().GetPublicKeyToken();     

posted @ 2009-02-14 11:39  南守拥  阅读(242)  评论(0编辑  收藏  举报