.NET强签名及混淆解决方案
来源:互联网 发布:中国招标软件 编辑:程序博客网 时间:2024/06/08 08:52
.NET强签名及混淆解决方案
前提是程序已经开发完成。
(一)强签名处理:
1)生成公钥/私钥对
sn -k ObarKeyPair.snk
2)提取出公钥并存放在public.snk中。public.snk的目的是为了便于分发;在ObarKeyPair.snk中的私钥是无法提取出来的
sn -p ObarKeyPair.snk public.snk
3)对第三方组件进行强签名处理,否则无法编译通过
1.反编译第三方组件资源,目前项目中使用的第三方组件包括SmartThreadPool和log4net
反编译时可以先跳转到组件所在目录 cd /d {$dir}
ildasm SmartThreadPool.dll /out:SmartThreadPool.il
反编译之后得到SmartThreadPool.il和SmartThreadPool.res
2.为第三方组件增加强签名处理
ilasm SmartThreadPool.il /res:SmartThreadPool.res /dll /key:ObarKeyPair.snk /out:SmartThreadPool.dll
4)对当前项目中需要进行强签名的项目增加public.snk公开签名
1.勾选延迟签名,目的是为了在混淆之后进行重新签名
2.重新编译项目, 此时所有的项目都无法进行执行或者调试
(二)混淆处理
1)使用Dotfuscator Software Services社区版对组件或者可执行程序进行混淆
1.社区版不支持泛型,因此跳过对泛型的重命名操作
(三)再次强签名处理
1)对之前强签名时使用了公钥进行的组件进行再次签名,应该能做成批处理文件
举例:
sn -R BLL.dll ObarKeyPair.snk
sn -R CmdResultParser.dll ObarKeyPair.snk
sn -R ControlExtensions.dll ObarKeyPair.snk
sn -R DAL.dll ObarKeyPair.snk
sn -R IDAL.dll ObarKeyPair.snk
sn -R Model.dll ObarKeyPair.snk
sn -R ObarAPI.dll ObarKeyPair.snk
sn -R OBARUtil.dll ObarKeyPair.snk
sn -R XmlCmd.dll ObarKeyPair.snk
sn -R E-OBAR.exe ObarKeyPair.snk
2)完成强签名之后就可以正常的运行程序了
(四)利用反射工具或者反编译工具可以看到代码已经进行了混淆
1).结果代码得到了混淆了
2).发现强签名之后进行混淆操作,公开函数也被混淆了。这个有点奇怪
3).强签名后替换DLL会发生程序集版本调用异常
- .NET强签名及混淆解决方案
- .NET中的强签名
- apk签名及代码混淆
- NET程序集强签名
- .Net下的签名与混淆
- 程序集的混淆及签名
- Android 4.0以后代码混淆及签名
- Android 4.0以后代码混淆及签名
- Android 4.0 以后代码混淆及签名
- Android签名打包及代码混淆
- android应用的签名及混淆
- 什么是.NET 程序集强签名
- .net程序集强名称签名实践
- .net程序集强名称签名实践
- .NET程序集强名称签名实践
- 程序集强签名-.net版本问题
- NET程序集,强签名,强引用,程序集友元
- 如何.net 程序强签名与手工证书签名说明
- 关于Android的字体
- Java字符串各种连接方式性能比较
- mysql 出现 Cannot proceed because system tables used by Event Scheduler were found damaged at server
- MyReport报表引擎2.7.4.0新功能
- mysql 存储过程-动态表名
- .NET强签名及混淆解决方案
- WinCE如何使用PictureBox的Image属性通过图片路径显示图片
- LFS<0531-1>
- Ubuntu下为Firefox安装Adobe Flash Player
- 【2013】实习收获2:python的网络编程--client端与server端入门(client端)
- RTMP流媒体播放之red5
- HttpClient 4.x 执行网站登录并抓取网页的代码
- 根目录index.php->wp-blog-header.php->wp-load.php->wp-config.php
- My Perosonal Folders 在 DevTrack 产品里的妙用