.net代码混淆 .NET Reactor 研究 脚本一键混淆一键发布

.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

.net代码混淆 .NET Reactor 研究 脚本一键混淆一键发布的相关文章

通过Git WebHooks+脚本实现自动更新发布代码之shell脚本

前文讲述了<通过Git WebHooks+脚本实现自动更新发布代码>,里面提供了一种自动更新发布代码的脚本编写思路.本文的脚本与前文中的思路不太不同.本脚本以capistrano中的一些思想和理念为依据,用简单好理解的shell脚本实现capistrano原本实现的自动化部署部分. 脚本的一些特点和功能: 解决脚本的符号链接问题,准确获取脚本工作目录(从tomcat脚本中学到): 颜色显示,不同级别的信息用不同的颜色显示(共两种方案,前一种从一位不知名的国外工程师处得到,后一种从lnmp1.2

统计代码行数的实用脚本

每次快到年底的时候各种的审计工作都在进行中,而最近应为部门需要统计个人写的代码有多少为此,为了方便统计就写了一个脚本用于统计代码的行数,脚本如下: #!/bin/bash #count.sh #Use Count the number of lines of code #writer jim #history #2016.12.27 if [ $# -lt 1 ];then         echo "please enter argc!"         echo "ex&

通过Git WebHooks+脚本实现自动更新发布代码之Shell脚本(二)

依据前文<通过Git WebHooks+脚本实现自动更新发布代码>的解决方案编写的shell脚本,此脚本专门用于更新补丁文件,例如对项目中的文件实现增(add).删(remove).改(update),并且执行相关的命令,如清除缓存.重启服务等. 此Shell脚本目前设计成在本地执行,目前不适合分布式执行的情况.也就是说,此脚本最好与项目在同一个机器上,这个缺陷已经标注在脚本中了,参见脚本中的多个TODO. 脚本完成的工作: 检查配置文件合规性 备份与恢复 增删改文件 执行命令 失败回滚 除上

bat脚本:Java一键编译(Javac java)

bat脚本:Java一键编译(Javac java) D:    是指D盘 javat是要编译的.java文件所在的文件夹 也就是D:\javat :start COLOR 0A cls D: cd javat set /p file=请输入待编译文件名: :re cls javac %file%.java java %file% set /p bool=是否重复运行(输入y,n): if %bool%==y (goto re) goto start 写好后,存为bat格式,然后双击打开.输入H

字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串

原文:字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串 关于字符串的研究,目前已经有两篇. 原理篇:字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串  实践篇:字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来讲第三篇,如何应用上面所学内容,设计一个字符串混淆程序. 先设计一个控制台程序,它是将要被我混淆的程序集文件: public static void Main() { try { RunSnippet(); } cat

【微信混淆】微信新的jar混淆无法分享问题

场景:最近公司需要做微信支付,引用新的jar包,发现混淆后无法分享. 思路:1.开始以为是支付的jar包和分享的不一致,最后换了一个统一的,使用微信Sample分享没有问题 2.将Sample改为正是包名,正是签名,也没问题 3.加上混淆就出错,于是断定混淆出错. 4.将新的jar引用项目,发现引用类有变化 5.微信官方安卓接入指南发现混淆没有变化 6.实际项目中,WXMediaMessage在 xxx.modelmsg.*下 7.最终在文档中心中的常见问题中找到了解决方案: 结果:将原始的微信

SWF混淆工具(智能提取需要混淆的字段)

这里介绍一个SWF混淆工具,现在是开源中国git上的开源项目MixSWF 前几天想混淆一下自己的项目,但是网上找来的混淆工具要自己填写需要混淆的字段,而且混淆后运行不起来也不知道是哪里的问题,于是就去研究这些混淆工具的原理.网上的中文资料比较少,硬是啃了两天那两本有关SWF文件格式的官方资料(avm2overview.pdf 和 swf_file_format_spec_v10.pdf),再分析了SWFWireDecompiler的源码才算是弄明白了.混淆原理就是找到doABCTag里的字符常量

使用 shell 脚本实现 LANMP 一键安装

使用 shell 脚本来实现 LANMP 系统的一键安装.使用的操作系统是 CentOS 6 ,不区分 32 位和 64 位,要求机器可以连通互联网.支持 LAMP 和 LNMP ,MySQL 支持 5.1 和 5.6 两个版本, php 支持 5.3 和 5.6 两个版本, apache 2.2 ,nginx 1.8. 代码如下: #!/bin/bash echo "It will install lamp or lnmp." sleep 1 # get the archive of

对一致性Hash算法,Java代码实现的深入研究

一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法和一致性Hash算法的算法原理做了详细的解读. 算法的具体原理这里再次贴上: 先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放置在这个Hash环上,然后根据数据的Key值计算得到其Hash值(其分布也为[0, 232-1]),接着在