首页 > 其他分享 >.net 混淆工具

.net 混淆工具

时间:2023-05-29 21:46:26浏览次数:56  
标签:混淆 ConfuserEx ConfuserEx2 https net obfuscar com 工具

obfuscation tools

.net 社区有很多混淆工具, 比如这个清单: https://github.com/NotPrab/.NET-Obfuscator
比较有名的商业工具有 .NET REACTOR https://www.eziriz.com/,

开源软件中, 最受欢迎的有:

obfuscar 验证 (弃用)

obfuscar 使用很简单, 但 github 上没有预编译的版本, 需要通过源码编译 Obfuscar.Console.exe 程序.

参考官方文档定制我们的混淆设置, 比如下面就是一个简单的示例.

Obfuscar.xml 文件

<?xml version="1.0" encoding="utf-8" ?>
<Obfuscator>
	<!--输入路径-->
	<Var name="InPath" value="." />
	<!--输出路径:加密混淆过的路径-->
	<Var name="OutPath" value=".\Obfuscator_Output" />
	<!--混淆代码的参数-->
	<Var name="ReuseNames" value="false" />
	<Var name="HideStrings" value="false" />
	<Var name="KeepPublicApi" value="false" />
	<Var name="HidePrivateApi" value="true" />
	<!--要混淆的模块-->
	<Module file="$(InPath)\test.exe">
		<!--SkipType跳过指定的类 Program是Main所在的类名-->
		<SkipType name="Program" />
		<!--SkipMethod 跳过指定的方法-->
		<SkipMethod type="Program" name="Main" />
	</Module> 
</Obfuscator>

混淆使用命令:

net48\Obfuscar.Console.exe  Obfuscar.xml

测试效果, 我的项目大量使用 dapper ORM, 经过 obfuscar 混淆后, 总是 crash.

ConfuserEx2 验证(推荐)

首先说明的是, 我的程序是Winform 程序, 用的是 .net framework 4.8, 经过验证 ConfuserEx 和 ConfuserEx2 效果都很好, 这里仅介绍 ConfuserEx2 的使用.

保护手段:

  1. ConfuserEx2 支持压缩 pack, 可以提高反编译的难度, 但经常被杀毒软件误报, 所以不建议使用.
  2. ConfuserEx1 也支持压缩 pack, 在我的电脑不会被杀毒软件报警, 但不确定其他杀毒软件是否会报警, 所以不建议使用.
  3. 不得不说混淆很有可能会引起程序异常, 尤其是对于匿名类的支持, 所以我仅仅选择了必要的保护措施, 经过实验和参考该项目的wiki , 分别是 ctrl flow, anti debug, anti ildasm, harden, 另外去除了 ConfuserEx 的 watermark , 这里最关键的是 ctrl flow.
  4. anti debug 保护是通过启动监控debug的线程实现的, 所以文档中建议不要对所有的assembly 进行 anti debug 保护, 仅仅对 main assembly保护, 已避免性能损失.

项目文件

ConfuserEx2 提供GUI和CLI两种工具, 可以将混淆任务保存为项目文件, 下面就是我使用的项目文件.

<project outputDir="D:\my_workspace\test\src\bin\Debug\Confused" baseDir="D:\my_workspace\test\src\bin\Debug" xmlns="http://confuser.codeplex.com">
  <rule pattern="true" inherit="false">
    <protection id="ctrl flow" />
    <protection id="anti debug" />
    <protection id="anti ildasm" />
    <protection id="harden" />
    <protection id="watermark" action="remove" />
  </rule>
  <module path="test.exe" />
</project>

GUI设置截图如下:

标签:混淆,ConfuserEx,ConfuserEx2,https,net,obfuscar,com,工具
From: https://www.cnblogs.com/harrychinese/p/obfuscation.html

相关文章

  • Kubernetes GoRoutineMap工具包代码详解
    1、概述GoRoutineMap定义了一种类型,可以运行具有名称的goroutine并跟踪它们的状态。它防止创建具有相同名称的多个goroutine,并且在上一个具有该名称的goroutine完成后的一段退避时间内可能阻止重新创建goroutine。使用GoRoutineMap场景:使用协程的方式运行函数逻辑,如果函......
  • [CVPR23 Highlight] Side Adapter Network for Open-Vocabulary Semantic Segmentatio
    **摘要本文提出了一个用于开放词汇语义分割的新框架SAN,将语义分割任务建模为区域识别问题,提取maskproposals并使用CLIP对mask进行识别。SAN可以重新利用CLIP的特征,因此其本身可以非常轻量;同时网络可以端到端地进行训练,从而使SAN适应冻结的CLIP模型。本文方法需要很少的参数量,且......
  • 文献阅读-Inferring Networks of Diffusion and Influence
    Authors: ManuelGomez-Rodriguez, JureLeskovec, AndreasKrause AuthorsInfo&ClaimsACMTransactionsonKnowledgeDiscoveryfromDataVolume5Issue4ArticleNo.:21pp1–37https://doi.org/10.1145/2086737.2086741  Abstract......
  • IG5236固件下载,梵想S770固态硬盘固件升级工具,IG5236固件版本3.W.J.1t
    回想自己购买的第一块固态硬盘还是在2013年,放到现在,差不多可以买1块14T或16T的机械硬盘,再或者可以买2至3块2T的固态硬盘了。近期正好又赶上存储颗粒供大于求,固态硬盘零售价一路走低,即使没有很强的购买需求,也让我忍不住出手购买。我选择了梵想S7702TB版本。产品主控IC是来自于InnoG......
  • 原型设计工具--Axure
    本周课程中,老师向我们初步介绍了在软件开发中的常用工具--原型设计工具。其在软件开发过程中主要用于原型的开发与展示,可更清晰的展现出产品设计布局和模拟产品大致的交互逻辑。在此,将对部分主流原型设计工具进行介绍:1、AdobeExperienceDesign(XD)作为Adobe家出产的......
  • Java中多个pdf合并为一个pdf文件工具类
    Java中多个pdf合并为一个pdf文件工具类方案一:引入依赖<dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.7</version></dependency>工具类importcom.lowagie.text.Document;impo......
  • Kubernetes 入门实战
    Kubernetes入门实战DockerDocker的安装安装docker.io为了方便,你还可以使用-y参数来避免确认,实现自动化操作:sudoaptinstall-ydocker.io#安装DockerEngineDockerEngine不像DockerDesktop那样可以安装后就直接使用,必须要做一些手工调整才能用起来,所以你还要......
  • 【一步步开发AI运动小程序】九、姿态辅助调试桌面工具折使用
    随着人工智能技术的不断发展,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让云上运动会、线上运动会、健身打卡、AI体育指导等概念空前火热。那么,能否将这些在APP成功应用的场景搬上小程序,分享这些概念的红利呢?本系列文章就带您一步一步从零开始开发一个AI运动小程序......
  • 源代码管理工具——Bitbucket
    Bitbucket    Bitbucket是一个由Atlassian公司开发的代码版本控制与代码协作平台,它帮助开发者和团队更快完成代码开发和交付工作。Bitbucket向开发者提供了可在其内部构建和分发管道的工具,并遵循IT持续集成/持续交付(CI/CD)流程,以快速交付高质量的软件和服务。无论是大规模......
  • git团队协作_network
    Git教程:https://www.runoob.com/git/git-tutorial.htmlGit大全:Git大全-Gitee.comGit分支管理一种适合小团队的Git协作流程-知乎(zhihu.com)[GitHub的Fork是什么意思?-知乎(zhihu.com)](https://www.zhihu.com/question/20431718/answer/74250205?utm_campaign=s......