新版Eazfuscator.NET混淆器的使用

本文介绍了Eazfuscator.NET 2020.4版的使用,包括其IL级混淆和同态加密功能。通过示例展示了混淆前后的反编译结果,指出其在混淆核心算法和自动化混淆方面的优势,同时讨论了混淆后程序的调试挑战和可能的脱壳方法。文章最后提出了关于性能影响和同态加密实际效果的疑问。
摘要由CSDN通过智能技术生成

目录

介绍

环境

Demo

引入nugget包:

给关键方法加特性:

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

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

优点:

缺点:

总结

疑问


介绍

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

功能:

 

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)

如何观察到区别?

待进一步使用、观察;

 

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值