热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

新版Eazfuscator.NET混淆器的使用

目录介绍环境Demo引入nugget包:给关键方法加特性:未开启虚拟化,反编译结果:开启虚拟化,

目录

介绍

环境

Demo

引入nugget包:

给关键方法加特性:

未开启虚拟化,反编译结果:

开启虚拟化,反编译结果:

优点:

缺点:

总结

疑问




介绍

Eazfuscator.NET是一款支持IL级混淆的强壳.

功能:


 重命名符号  字符串加密和压缩  代码和数据虚拟化 H 同态加密  自动代码优化  资源加密和压缩  控制流混淆  装配体合并和嵌入  XML文档过滤器  调试支持  XAML重命名  

20年更新中加入了同态加密(Homomorphic Encryption),大大加强了混淆强度。


同态加密参考:https://blog.gapotchenko.com/eazfuscator.net/homomorphic-encryption-of-code



环境

版本:2020.4版

 


Demo

.net 5 consoleAPP

using System;
using System.Reflection;namespace ConsoleApp1
{internal class Program{private static void Main(string[] args){Vertify("123");Console.ReadKey();}//[Obfuscation(Feature = "virtualization", Exclude = false)]private static void Vertify(string key){if (key.Length == 12345678){Console.WriteLine(key);}else{Console.WriteLine("Error!");}}}
}

引入nugget包:


给关键方法加特性:

[Obfuscation(Feature = "virtualization", Exclude = false)]

release时,自动加壳(只对有【obfuscation】特性的  模块 虚拟化IL和同态加密)


未开启虚拟化,反编译结果:

只是简单的控制流和命名混淆、资源加密:

 


开启虚拟化,反编译结果:

首先看到代码迅速膨胀;

同样在入口点断下,未加 [Obfuscation] 特性的方法如上不变,而需要虚拟化的方法已经被虚指令重写:

虚指令的原理是利用反射和opCode类代替原IL指令,参考大佬的文章:


https://www.52pojie.cn/thread-958680-1-1.html


简单使用de4dot还原一下:


虚拟化的部分de4dot无法还原,跟下去发现所有原语句都变为反射实现,参数都变为object数组。

逆向难度相对confuser壳还是高不少的!


 


优点:


  • 方便、release/publish自动混淆,不要像其他混淆工具需要先配置DLL加密,在替换回去;
  • 更新快,技术前沿;
  • 流程混淆非常好,适合加密核心算法;

缺点:

调试混淆后的程序时,直接对系统类库下断点,观察输入输出较为容易;

(根据大佬们的文章推测出虚拟方法与原IL的对应关系,可以写出脱壳机)

 


总结

IL混淆比较强,极大的提高了逆向难度,适合加密核心算法;

可搭配其他壳进一步提升逆向难度;

 


疑问

Q1:复杂算法性能会降低多少?

Q2:原先在代码中提示同态加密的语句,和不使用同态加密对比(即12345678改为123),编译后没有发现区别,

同态加密的程序数据化(Homomorphic encryption is enabled with virtualization since the latter naturally transforms a program into data)

如何观察到区别?

待进一步使用、观察;

 

知道的大佬请留步回复一下~

 

 

 


推荐阅读
author-avatar
iuang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有