1. 反汇编 DLL

    ildasm /all /out:Assembly.il YourAssembly.dll
  2. 修改 IL 文件
    在生成的 Assembly.il 文件中添加强名称密钥引用:

    .assembly YourAssembly
    {
      .publickey = (生成的公钥令牌)
      .ver 1.0.0.0
    }

    如:

      .publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00   // .$..............
                 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00   // .$..RSA1........
                 17 51 79 E3 E5 00 53 AA 1D 7C 9D 09 31 0D D2 AE   // .Qy...S..|..1...
                 CD 6E 80 FF C7 33 14 9E CD 64 AA 2E F1 D0 A7 0C   // .n...3...d......
                 BF 92 D4 70 E1 7E 42 60 AF 61 21 63 5F 68 03 07   // ...p.~B`.a!c_h..
                 A2 A3 B3 96 AC BC 38 BC 46 19 33 D9 9D 30 07 21   // ......8.F.3..0.!
                 FC 8D FC 8F 89 C0 8A 33 80 69 59 3B 36 54 3F A2   // .......3.iY;6T?.
                 5F 1D CF 63 44 43 2C 40 E0 4D CB 1D 1C 18 DB C5   // _..cDC,@.M......
                 14 DC C9 A6 35 AF 28 3F 44 E1 E9 8B 06 6D 70 8B   // ....5.(?D....mp.
                 0F F5 7E 92 6C AB 3D 1B 0D 41 7E 34 E4 1A 45 E1 ) // ..~.l.=..A~4..E.
    
  3. 创建强名称密钥(如果没有):

    sn -k MyKeyPair.snk
  4. 重新汇编

    ilasm /dll /key=MyKeyPair.snk /output=YourAssembly_Signed.dll Assembly.il

标签: .NET Framework

添加新评论