首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改已编译的.Net Exe

修改已编译的.Net Exe
EN

Stack Overflow用户
提问于 2013-08-26 05:10:35
回答 5查看 36.3K关注 0票数 15

我有一个用C#编写的应用程序(当然没有源代码),需要稍微修改一下。例如,我需要停止创建不必要菜单的几行代码。所以我想我应该把它们注释掉。

源代码不被混淆。我知道我可以使用Reflector/Reflexil这样的工具完全反编译、修改和编译。但是每个人都知道,通过这样做,许多代码部分就不会再编译了!在Reflector (或任何其他产品)中,是否有一种方法可以在没有此过程的情况下禁用/更改其一部分?

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-04-06 14:30:47

最后,我设法“禁用”了编译后的exe中的几行代码。

我用反光镜安装了Reflexil插件。Reflexil允许我编辑MSIL指令,然后将结果保存回exe文件。因此,它涉及到学习一些MSIL指令,特别是"no making“命令(让一行代码什么也不做)。要查看说明列表和教程,请参阅这里这里

希望它能帮到别人。

票数 4
EN

Stack Overflow用户

发布于 2013-08-26 05:32:35

如果您确实需要这样做,您可以使用Reflector (或类似的产品)解压缩它,然后使用它在.Net中重新创建一个解决方案,该解决方案将产生相同的可执行文件。

您可能会在以下几个方面遇到问题:

  1. 模糊码
  2. 反编译堆显示特定部分的精确代码的部分,但由于某种原因,它只是在新解决方案中无法工作(然后您要做什么?)

这更不用说与此有关的潜在法律问题了。如果可执行文件是在允许您这样做的许可下发布的,那么您很可能可以访问源代码。因此,您无法访问源代码这一事实意味着,执行您建议的操作可能是不合法的。

票数 6
EN

Stack Overflow用户

发布于 2013-08-26 07:26:21

为了完整起见:另一种可能的解决方案是使用ildasm反汇编程序,编辑http://msdn.microsoft.com/en-US/library/f7dy01k1%28v=vs.80%29.aspx并将其反馈给ilasm。

当然,这个解决方案的实用性取决于你。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18437031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档