Tag: 反编译

反编译VB.Net程序集会生成带有无效成员变量名的代码; 名称以$ STATIC $开头

我正在为一个丢失了其VB.Net WinForms应用程序源代码的客户端工作。 他们拥有的组件根本没有混淆。 我试图恢复尽可能多的源代码作为C#源代码,并尝试了几种用于反编译程序集的工具,包括Reflector,ILSpy和JustDecompile(所有最新版本),但它们都产生了大量错误的代码。他们。 由于生成的代码中存在大量错误,我将询问具体的错误(在不同的问题中),希望得到更直接的答案,并以这种方式尝试解释为什么所有工具都难以反编译这个集会。 这个问题涉及这样一个事实,即所有这些工具生成的代码总是有大量无效的成员变量(字段),如下所示: private short $STATIC$Report_Print$20211C1280B1$nHeight; private ArrayList $STATIC$Report_Print$20211C1280B1$oColumnLefts; private StaticLocalInitFlag $STATIC$Report_Print$20211C1280B1$oColumnLefts$Init; 有人可以解释为什么生成的代码有这些无效的成员变量以及我如何解决这些变量?

对象类型末尾的&符号是什么?

我不得不重新编译一些代码,我不知道这个语法是什么? 你可以帮忙,还是指点一下这是什么意思? 我用谷歌搜索并搜索了这个网站,找不到任何东西。 只需一行代码: Rectangle pageBounds; // ISSUE: explicit reference operation // ISSUE: variable of a reference type Rectangle& local = @pageBounds; Rectangle对象类型末尾的“&”符号是什么,pageBounds变量之前的“@”是什么? 这是我需要修复的最后一行代码,以便再次编译这个可执行文件。 这是使用此语法的方法,我可以删除它吗? protected override void OnPrintPage(PrintPageEventArgs e) { Application.DoEvents(); ++this._pageNum; float num1; if (this.Header != null) { num1 = this.Header.CalculateHeight(this, e.Graphics); this.Header.Draw(this, (float) e.MarginBounds.Top, e.Graphics, e.MarginBounds); } else num1 = 0.0f; float […]

如何防止任何C#应用程序的反编译

我们计划使用C#和MySQL开发客户端服务器应用程序。 我们计划像任何其他软件实用程序一样在货架上销售产品。 我们担心我们的产品反编译在可用性和捆绑function方面确实比竞争对手有一些优势。 我们如何防止我们的软件反编译,因此产品的业务逻辑仍然完好无损? 我们听说过Reflector和其他反编译器,它们使我们的代码非常容易被复制。 我们的客户群不是公司,而是自己可能不会这样做的医疗从业者,但我们的竞争对手可能想要复制/禁用许可,甚至复制代码/function,以便我们的产品价值在市场上下降。 任何阻止这种情况的建议都是受欢迎的。