.net代码混淆 .NET Reactor 研究
为什么要混淆?
.net比较适合快速开发桌面型应用,但缺点是发布出来的文件是可以反编译的,有时候为了客户的安全,我们的代码或者我们的逻辑不想让别人知道,不想让别人绕过我们的流程,破坏或者非法得到一些数据,所以必须进行代码混淆,或者是代码加密,让别人看不出来代码是怎么写的。
.net源码查看工具.NET Reflector ,界面如下图,大家发现是可以看到源码的。
怎么混淆?
之前使用过Dotfuscator进行混淆,但是后来突然发现,并不能被混淆,还是可以通过.NET Reflector看到源码,真怀疑我之前是真的看错了,用了那么久,所以就再研究一种混淆方法。
本文介绍使用 .NET Reactor进行.net代码混淆的方法。
请在官网下载 .NET Reactor试用版本,具体安装过程不再说明。
安装完成后,请在path中添加环境变量
添加的目的是为了能够在批处理脚本中通过脚本来混淆。
安装包下有帮助文件。
帮助文件中有命令的使用方法。
配置界面如下
再使用.NET Reflector查看源码时,就会发现,已经无法再查看了。
批处理一键打包混淆打包脚本,将以下脚本保存为bat后缀,需要打包时,直接双击执行即可。直接输出安装包文件。
:::::::::::::::::::::::::::::::::::::::::::::::::::::: ::名称:制作 ::版本:1.0 ::功能说明: ::1、为保证此脚本代码通用,需要您添加环境变量,一个是安装打包程序的环境变量,一个是打包程序的环境变量 ::devenvC 对应路径 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe ::dotNET_Reactor.exe 对应安装路径 ::iscc 对应安装路径 ::创建标识:朱鹏飞 2018-5-2 ::修改标识: ::修改说明: :::::::::::::::::::::::::::::::::::::::::::::::::::: @echo off title 自动编译打包工具1.0(朱鹏飞) echo "欢迎使用朱鹏飞开发的自动编译打包工具1.0" devenv ../CheckStandSystem.sln /Build copy ..\build\CheckStandSystem.exe.config ..\build\secure\CheckStandSystem.exe.config @TITLE 加密 dotNET_Reactor.exe -project app.nrproj @TITLE 制作安装程序 iscc setup.iss @TITLE copy安装程序 rem 根据当前日期获取,年月日串 set yyyy=%date:~,4% set mm=%date:~5,2% set day=%date:~8,2% set "YYYYmmdd=%yyyy%%mm%%day%" rem 把年月日串中的空格替换为0 set "YYYYmmdd=%YYYYmmdd: =0%" rem 根据当前时间获取,时分秒串 set hh=%time:~0,2% set mi=%time:~3,2% set ss=%time:~6,2% set "hhmiss=%hh%%mi%%ss%" set "hhmiss=%hhmiss: =0%" rem 把时间串中的:替换为0 set "hhmiss=%hhmiss::=0%" rem 把时间串中的空格替换为0 set "hhmiss=%hhmiss: =0%" copy ..\build\setup\乐游智能收银管理系统1.0.exe ..\build\setup\乐游智能收银管理系统%YYYYmmdd%_%hhmiss%.exe @PAUSE
接下来也会去研究其他的混淆方法。
原文地址:https://www.cnblogs.com/zhupengfei/p/11814086.html
时间: 2024-11-29 07:42:57