当前位置: 首页 > news >正文

.net wpf混淆

混淆要求

1、把exe所用到的依赖dll都合并到exe中
2、使用反编译工具无法得到源代码

混淆方式

1、.net Reactor
优点:可以dll到exe中,也能防止反编译,但是要注意Quick Settings尽量勾选完毕
缺点:争对WPF程序无法使用Native EXE File,但是Winform可以

2、Confuser
优点:可以防止反编译,也能防止反编译工具查看程序集名称
缺点:无法把依赖的dll合并到exe中

3、Costura.Fody
优点:可以合并dll到exe中,也能防止反编译,和.net reactor类似,但是可以使用nuget包安装到exe项目中,只需要重新生成一下,就能把其他依赖的dll放到exe中
缺点:反编译不够彻底,反编译工具能看到exe项目的代码,但是不能看到依赖的dll的代码,这个也不错了

总结

推荐使用Costura.Fody+.net Reactor或者Confuser,先合并后混淆exe

部署

主要目的是为了部署,去除多余的.pdb .config .xml文件
1、在sln同级目录下创建Directory.Build.targets文本文件
2、内容如下

   <Project><PropertyGroup Condition="'$(Configuration)'=='Release'"><DebugType>None</DebugType><DebugSymbols>false</DebugSymbols><GenerateDocumentationFile>false</GenerateDocumentationFile><DocumentationFile></DocumentationFile></PropertyGroup><Target Name="StripDllConfig" AfterTargets="Build" Condition="'$(Configuration)'=='Release'"><ItemGroup><_CfgToDel Include="$(OutDir)**\*.dll.config" /></ItemGroup><Delete Files="@(_CfgToDel)" /></Target><Target Name="StripSymDoc" AfterTargets="Build" Condition="'$(Configuration)'=='Release'"><ItemGroup><_SymToDel Include="$(OutDir)**\*.pdb" /><_XmlToDel Include="$(OutDir)**\*.xml" /></ItemGroup><Delete Files="@(_SymToDel)" /><Delete Files="@(_XmlToDel)" /></Target></Project>

3、重新生成
4、注意,一定是Release,debug包需要这些调试文件
5、在使用Inno SetUp软件打包成安装包给客户就好了(百度一下)
6、这样一来,从混淆到部署,应该可以了,如果有软件加密,则采用非对称加密方式,私钥在自己手里面,程序安全性就得到了保障
6、一定不要大意,总有小人搞破坏

http://www.lryc.cn/news/579386.html

相关文章:

  • uniapp 使用ffmpeg播放rtsp
  • QT常用类和模块
  • Qt宝藏库:20+实用开源项目合集
  • Java——初始guava(1)
  • 【python】OOP:Object-Oriented Programming
  • Linux基本命令篇 —— tar命令
  • Redis缓存架构实战
  • 微算法科技(NASDAQ MLGO)基于量子图像处理的边缘检测算法:开拓图像分析新视野
  • 中国户外品牌全球竞争力榜单发布:科技突围与文化赋能重塑行业格局
  • 扫地机产品--电池是否存在类似充电宝自燃问题?
  • 【JS笔记】JS 和 noodjs 的常见操作(十)
  • 依赖属性附加属性
  • 从混沌到澄明,AI如何重构我们的决策地图与未来图景
  • CSS `@scope` 实战指南:开启局部样式隔离新时代
  • NVIDIA Spectrum-3 SN4000 系列SN4000 SN4000 系列速度高达 400Gb/秒的现代横向扩展分布式数据中心应用提供支持。
  • React 学习(3)
  • http、SSL、TLS、https、证书
  • KMP(Kotlin Multiplatform)改造(Android/iOS)老项目
  • java8 Collectors.mapping 使用 例子 学习
  • 学习开发之数组和集合的相似与不同
  • Boss:玩家摄像机系统
  • Python干涉仿真
  • 快速搭建大模型web对话环境指南(open-webUI)
  • 12. grafana-Dashboard的Variable(过滤)使用
  • vbox 虚拟共享文件夹 创建以及权限问题
  • 多模态AI Agent技术栈解析:视觉-语言-决策融合的算法原理与实践
  • [特殊字符] 从图片自动生成 Excel:Python 批量 OCR 表格识别实战
  • 高压电缆护层安全的智能防线:TLKS-PLGD 监控设备深度解析
  • Redis 消息的发布和订阅
  • C++11 shared_ptr 原理与详细教程