热门标签 | 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)

如何观察到区别?

待进一步使用、观察;

 

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

 

 

 


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
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社区 版权所有