日期:2014-05-17  浏览次数:20761 次

咨询一下现在.net流行的代码混淆模式
我用Reflector工具看了下别人的DLL,发现方法名和类名都一览无余.但是方法内容却看不见,只看见一个空方法挂在那.导出代码也没报错,但是还是和之前一样,只有一个空方法挂在那,从而...所有导出的.cs文件都只有1kb (我觉得这是他对方法进行了什么特殊混淆)

而我自己用.NET Reactor进行混淆后的DLL (仅选择obfuscation,不选加壳) 再用Reflector看的时候也能看见类名和方法名(很多方法名已被混淆成稀奇古怪的名字). 但是在双击我的方法名的时候出现报错:Expression stack is empty at offset 0006.  
同时.在我选择导出代码的时候也出现这个错误. 这样, 我确认自己是混淆成功,并且初步屏蔽了反编译工具对方法的窥探.

但是,我不明白为什么别人混淆了的DLL和我混淆了的DLL在反编译工具反编译的时候表现不一样.

为什么会这样, 到底混淆代码有多少种模式呢? 我所查看的那个别人的那个DLL所达到的效果 我能不能用.NET Reactor达到呢?

------解决方案--------------------
嗯                                                                                               .
------解决方案--------------------
引用:
嗯                                                                                               .

经典
------解决方案--------------------
啊????我就奇怪為什麼上面的能回覆一個字呢?我就回覆不了
------解决方案--------------------
引用:
啊????我就奇怪為什麼上面的能回覆一個字呢?我就回覆不了

明明就不止一个字,观察一点都不仔细
------解决方案--------------------
引用:
引用:啊????我就奇怪為什麼上面的能回覆一個字呢?我就回覆不了
明明就不止一个字,观察一点都不仔细

哦 知道了 原來是有空格啊 
------解决方案--------------------
你自己歪自己的楼啊
------解决方案--------------------
恩 看看你们公司的要求啊,基本上我没怎么用过
------解决方案--------------------
我是来看评论的。 哈哈
------解决方案--------------------
这到底是在讨论什么东西?
------解决方案--------------------
这不是加密,也不是混淆,只是核心代码不在托管代码里而已,它将核心代码全部编译到了非托管部分,托管代码只有函数入口(也叫函数名),所有方法都是执行的非托管代码,这个是由Unity游戏引擎自动完成的,无法干预。
------解决方案--------------------
确实经典啊  观察得不错