C#反编译? [英] C# Decompilers?

查看:261
本文介绍了C#反编译?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是这样吗? 有人可以反编译一个code,我用C#写的MSIL? 从该.exe文件?

Is it true? Can someone decompile a code that I wrote in C# from MSIL? From the .exe file?

推荐答案

这是通常的情况。一个名为卢茨罗德非常聪明的程序员写了一个名为反射一个很好的反编译器(现在的展鹏)。这是在IL转换回C#或者VB.NET code相当不错。这是不完整的魔力,它不能

It's mostly true. A very clever programmer named Lutz Roeder wrote an excellent decompiler named Reflector (now owned by redgate). It's quite good at translating IL back to either C# or VB.NET code. It isn't complete magic, it cannot

  • 在转换常量回到他们常量标识符
  • 在恢复局部变量的名字
  • 在反编译匿名除了在他们的中间形式方法
  • 在反编译的迭代器,如上面
  • 在反编译lambda表达式,如上面
  • 在反编译使用所承诺的C#5异步和等待关键字,如上面
  • 的code
  • 恢复在code中的注释。
  • translate constants back to their constant identifier
  • recover the names of local variables
  • decompile anonymous methods except in their intermediate form
  • decompile iterators, as above
  • decompile lambdas, as above
  • decompile the code that uses the promised C# 5 async and await keywords, as above
  • recover the comments in your code.

和有一些bug,使得它求助于goto语句或翻倒。其实不然的非常的作为调试的有用工具,帮助你发现并诊断在code你没写错误。还有用它来开始从通过反编译获得的盗版源$ C ​​$ C一个成功的企业的任何人没有任何记载病例。它的工作原理太清楚了点。

And has a few bugs that makes it resort to goto statements or fall over. It is otherwise very useful as a debugging aid, helping you discover and diagnose bugs in code you didn't write. There are no documented cases of anyone using it to start a successful business from pirated source code obtained through decompilation. It works too well for that.

据以其他方式展开了热烈的细分市场的模糊处理,工具,重写程序集的内容,使之难以反编译。典型的策略是改写标识符,使他们变得非常难除pret和/或鼓捣组件的结构,使反编译器会崩溃,但CLR不会。展鹏,反射器的当前所有者,也卖了混淆。有一个随Visual Studio支付牌照,被称为Dotfuscator社区版。不知道它有多好,这永远不会被考验。

It has otherwise started a lively market segment for 'obfuscators', tools that rewrite the contents of an assembly to make it hard to decompile it. Typical strategies are to rewrite identifiers so they become very hard to interpret and/or to tinker with the structure of the assembly so a decompiler will crash but the CLR will not. Redgate, the current owner of Reflector, also sells an obfuscator. There is one included with Visual Studio paid licenses, called 'Dotfuscator Community Edition'. No idea how good it is, this never gets put to the test.

只需使用大量的lambda表达式和迭代在code已经是优秀的的方式来混淆你的code。逆向工程它原来的code是非常困难的。我不怀疑卢茨能做到这一点,但他是pretty的忙于其他项目现在。微软雇用了他。

Just using lots of lambdas and iterators in your code is already an excellent way to obfuscate your code. Reverse-engineering it to the original code is very difficult. I don't doubt that Lutz could do it, but he's pretty busy with other projects right now. Microsoft hired him.

这篇关于C#反编译?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆