程序集包括多个模块以及其操作。
强名称验证 hash (去除强名称验证)
ilasm自带的反编译器 ilasm /resoure = 1.res 1.il 可以汇编成1.exe
guidbg
getpublickey(可能用于加解密)
SDK
signature :sig类型 参数个数 返回类型 (在#blob流中)
堆栈平衡 每一次代码执行后进行弹栈,从而去除一行代码应该用pop 而不是Nop
NET流
net反射 InvokeMember通过函数名反射相应的函数
JIT内部运作
XenoCode的反混淆
NET程序集到本机代码的MSIL代码,然后删除该大部分的MSIL代码,使其无法反编译。
代码的动态编译并执行
.NET代码混淆技术:
Symbol renaming (系统调用不可改变,应用是需要对应名字相同)
String encryption and compression
Resource encryption and compression
Constant literals pruning
Method signatures overload induction
Class hierarchy linerization
Code control flow obfuscation
Assemblies merging and embedding
XML documentation filter
免费的.NET代码混淆工具:
Eazfuscator.NET
http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx
Skater .NET Obfuscator Freeware Light Edition
http://www.rustemsoft.com/freeware_obfuscator.htm
VisualStudio2010中集成的Dotfuscator for .NET community版本
商业的.NET代码混淆工具:
Dotfuscator for .NET
.NET Reactor
CliSecure
Demeanor
DeployLX CodeVeil
Salamander .NET obfuscator
Skater .NET Obfuscator
SmartAssembly
Spices.Net Obfuscator