.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

接下来也会去研究其他的混淆方法。

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

  1. [原创]使用squish打包与混淆cocos2d-x的lua脚本

    squish是一个开源的用于打包lua脚本的小工具,它的主要功能是将多个lua文件整合成一个文件,并在此基础上做压缩和混淆等处理,混淆和压缩后的代码可以直接被执行而不需要先做解压还原等操作. 它的gi ...

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

    bat脚本:Java一键编译(Javac java) D:    是指D盘 javat是要编译的.java文件所在的文件夹 也就是D:\javat bat代码: :start COLOR 0A cls ...

  3. bat脚本:windows下一键启动zookeeper+kafka

    bat脚本:windows下一键启动zookeeper+kafka 把下面两行代码存为bat文件,双击执行即可.注意更改相应的目录 这里用ping来控制时间(先zookeeper,ping 4 次后 ...

  4. iOS使用shell脚本注入混淆内容

    背景 公司需要做一系列的壳版本,壳版本如果内容雷同提交到App Store会有被拒绝的风险,其中有一种解决方案是在壳版本中注入混淆的代码,防止被苹果检测到内容太过雷同而导致审核被拒绝,本文是针对这个场 ...

  5. 《zw版·Halcon-delphi系列原创教程》 只有2行代码的超市收款单ocr脚本

    <zw版·Halcon-delphi系列原创教程> 只有2行代码的超市收款单ocr脚本只有2行代码的超市收款单ocr脚本 发了这么多教程,有网友问,为什么没有ocr的.      的确,在 ...

  6. 对一致性Hash算法,Java代码实现的深入研究(转)

    转载:http://www.cnblogs.com/xrq730/p/5186728.html 一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读 ...

  7. 实践案例丨教你一键构建部署发布前端和Node.js服务

    如何使用华为云服务一键构建部署发布前端和Node.js服务 构建部署,一直是一个很繁琐的过程 作为开发,最害怕遇到版本发布,特别是前.后端一起上线发布,项目又特别多的时候. 例如你有10个项目,前后端 ...

  8. 使用expect脚本语言写一键发布服务(代码发布、所有服务重启)

    互联网服务有很多台服务,但是在上线的时候需要将这些服务版本都更新与个个都重启,下面的脚本语言,就是一键发布服务~ 1.在/home/weihu/deploy/ 目录下建下publish .publis ...

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

    使用 shell 脚本来实现 LANMP 系统的一键安装.使用的操作系统是 CentOS 6 ,不区分 32 位和 64 位,要求机器可以连通互联网.支持 LAMP 和 LNMP ,MySQL 支持 ...

随机推荐

  1. poj3691 DNA repair[DP+AC自动机]

    $给定 n 个模式串,和一个长度为 m 的原串 s,求至少修改原串中的几个字符可以使得原串中不包含任一个模式串.模式串总长度 ≤ 1000,m ≤ 1000.$ 先建出模式串的AC自动机,然后考虑怎么 ...

  2. Java之正则表达式来判断字符串中是否包含字母

    /** * 使用正则表达式来判断字符串中是否包含字母 * @param str 待检验的字符串 * @return 返回是否包含 * true: 包含字母 ;false 不包含字母 */ public ...

  3. C# 学习第二天笔记

    1. Convert 类型转换 数据类型不兼容的需要转换时,使用Convert转换.转成什么类型就to谁 例: string--> int string a=“b” Int  c= Conver ...

  4. (已解决)FVDI 2018“连接到服务器.....失败”“打不开设备”

    FVDI 2018 错误和解决方案来自网站:eobdtool.co.uk FVDI 2018发现以下错误: “连接到服务器.....失败” “设备未打开” 解决方案: 请下载FDVI 2018 V3. ...

  5. Python和Sublime的整合

    按照下面的方式也可以运行py代码,但是交互方式不是很好,主要简单介绍了一下Python和Sublime的整合 一  Ctrl + B 二 SublimeREPL 安装SublimeREPL 1.打开P ...

  6. jeecg中自定义dialog,实现窗体的弹出

    自定一个dialog,在子窗体中写一个方法,然后通过iframe进行调取function createwindowoktext(title, addurl,width,height,oktext,ca ...

  7. git命令行指南

    Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...

  8. JavaWeb-SpringSecurity自定义登陆页面

    系列博文 项目已上传至guthub 传送门 JavaWeb-SpringSecurity初认识 传送门 JavaWeb-SpringSecurity在数据库中查询登陆用户 传送门 JavaWeb-Sp ...

  9. 【知识库】-数据库_MySQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    简书作者:seay 文章出处: 关系数据库SQL之高级数据查询:去重复.组合查询.连接查询.虚拟表 回顾:[知识库]-数据库_MySQL之基本数据查询:子查询.分组查询.模糊查询 Learn [已经过 ...

  10. ETL-拉链算法-1

    参考链接:http://blog.csdn.net/nisjlvhudy/article/details/8559518 自己的理解: 主要针对数据的状态变化 表:原表:source 目标表:targ ...