最终版 Reflector v1.0 (+简单的反流程混淆)

简介:

(0415增加简单的反流程混淆功能,满足日常使用需要,不再更新,转向ILSpy,见12点后面)

Reflector过期?这可不行!自己动手吧!

看雪上拿到Reflector 7.0的源码,根据自己需要稍作修改,自己编译,就这么简单!

 

为了便于使用,自己做了一些修改:

1,移除所有授权相关代码和资源

2,移除所有报告错误相关代码和资源

3,移除ReflectorInstaller相关代码和资源,大小由4.3M(混淆压缩)变成2.8M(未混淆压缩)

4,增加代码着色,原来只有黑色和深绿色,看起来要命。类名红色,方法名绿色,类字段浅黄色,参数浅绿色,本地变量黑色(若不喜欢自己修改代码)

image

5,改善if语句,只有一个语句时不换行,不加大括号,增加代码可读性。下图第一行

image

6,改善表达式圆括号。原来为了严禁,几乎每一个子表达式外面都套一层圆括号,如果一个条件表达式有多个子表达式组成,最后将会看到非常多的圆括号。这里引入运算符优先级,不需要的时候不加圆括号

image

7,人工对上百个类进行反混淆,增加Reflector代码可读性,这次发布的版本也没有进行任何混淆

9,解除Reflector对部分产品反编译的限制,里面居然有国产的Dv_News

10,针对名称混淆,如果出现不可见字符,一律使用斜杠\加ASCII码的方式

11,解封所有隐藏功能。那个路径,是vs所在路径,选择需要的功能,然后Extract……

imageimageimage

 

12,增加简单的反流程混淆功能

imageimage

 imageimage

    一般的流程混淆(如SmartAssembly),都是通过增加很多跳转指令,打乱IL指令的顺序,而Reflector采用的是栈式分析,遇到这种最简单的调整,直接因为栈不平衡而崩溃。我找到问题所在后,发现根本无法补救,因为Reflector可以说压根就没有AST!做了一个尝试,把多余的跳转全部干掉,结果Reflector的分析过程相当脆弱……最后,在进行指令分析之前,增加一块功能,根据强跳转给指令来一个排序,排序后,每一个强跳转,实际上就是下一句,然后再花最小的代价增强Reflector的分析功能(因为它还是脆弱得立马崩溃……)

    写到最后,忽然间想起来,我在08年做过反名称混淆和反流程混淆的工具,基于Cecil,离开上海后不知道代码丢哪里去了。当然,我的工具还有一些非常具有特色的功能,移植到Reflector是不可能了,因为Reflector的架构真的很糟糕!

    同根生与Cecil,我很看好ILSpy!并且我发现ILSpy有很棒的AST和专门的反流程混淆!

 

下载地址改为:http://xcode.codeplex.com/releases/view/64499

 

最后,为了辨别不同的修改版,把版本号给改了一下!

最最后,Reflector的反流程混淆能力依然很差,这里推荐新生的ILSpy,它的开源和规范化,有取代Reflector的趋势!

 

 

修改版 Reflector v1.0.2011.0408

源代码(密码是:NewLife+群号码,7个字母和8个数字,别偷懒o(∩_∩)o )



我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
分类: C#

本文转自大石头博客园博客,原文链接:http://www.cnblogs.com/nnhy/archive/2011/04/14/2016021.html,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Dart 数据安全/隐私保护 Swift
iOS代码混淆工具推荐:IPA Guard详细介绍
iOS代码混淆工具推荐:IPA Guard详细介绍
56 0
|
1月前
|
移动开发 安全 数据安全/隐私保护
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
|
3月前
|
安全 Java 图形学
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
30 0
|
3月前
|
移动开发 前端开发 数据安全/隐私保护
【工具】iOS代码混淆工具-iOS源码混淆
【工具】iOS代码混淆工具-iOS源码混淆
42 1
|
1月前
|
Shell 数据安全/隐私保护 iOS开发
iOS代码混淆教程
iOS代码混淆教程
15 0
|
3月前
|
移动开发 安全 前端开发
iOS代码混淆工具
iOS代码混淆工具
61 1
|
4月前
|
Java
提高代码质量的秘诀:类、方法、字段和包注释
提高代码质量的秘诀:类、方法、字段和包注释
31 0
|
8月前
|
Swift iOS开发
iOS 逆向编程(二十一)代码编译过程(以及什么阶段可反编译)
iOS 逆向编程(二十一)代码编译过程(以及什么阶段可反编译)
108 0
|
iOS开发
iOS开发 - 打包静态framework后,引用时必须做的一件事,否则崩溃
iOS开发 - 打包静态framework后,引用时必须做的一件事,否则崩溃
158 0
|
安全 fastjson Unix
《IntelliJ IDEA 插件开发》第七节:通过Inspection机制,对静态代码安全审查
一、前言 二、需求目的 三、案例开发 1. 工程结构 2. 伪随机数检测 3. FastJson检测 4. 提醒模板 5. 检测配置 四、测试验证 五、总结 六、系列推荐
1084 0
《IntelliJ IDEA 插件开发》第七节:通过Inspection机制,对静态代码安全审查