Tag: 混淆

Dotfuscator中的Reflection Bug的解决方法?

问候所有, 我正在调用Type.GetProperties(),但是在运行Dotfuscator之后,它返回零项,之前它返回的值大于零。 public class Test { public int Number { get; set; } public void ShowInfo() { Type type = this.GetType(); PropertyInfo[] props = type.GetProperties(); Console.WriteLine(“type [” + type.Name + “] props count: ” + props.Length); } } 如果我在Dotfuscator中重命名排除“Number”属性,那么它可以正常工作,但不会。 但是,我不可能对我的项目中的所有属性执行此操作,因为这会导致可能的错误。 这种方法有没有变通方法? 甚至可以使用其他“免费”混淆应用程序? 我已经尝试在他们的网站上查找提交错误,但我只使用社区版,所以似乎没有那么多的支持。

在源代码中存储加密密钥有多安全?

此加密类是否足够安全? 或者有人可以反汇编我的二进制文件来找到密钥和IV吗? 我正在使用它来删除许可证文件,因此它不容易被破坏是非常重要的。 internal static class Encryptor { // Actual values are put here in my source private static readonly byte[] Key = { 0, 0, 0, 0, 0, 0, 0, 0 }; private static readonly byte[] Iv = { 0, 0, 0, 0, 0, 0, 0, 0 }; internal static String Encrypt(string source) { […]

保护交付给客户端的源代码

我最近了解到,处理我们某个核心产品安装的公司此前曾试图以恶意目的对供应商的工作进行逆向工程。 因此,我想了解更多关于如何保护我们的工作,到目前为止,我已经想到了以下内容: 1)显然使用混淆器。 问题是哪一个。 2)尽可能加密配置文件(尤其是端点信息)。 3)尽可能多地将逻辑移动到Web服务。 4)使用SSL进行数据传输。 该项目是用C#/ WPF编写的,并连接到IIS 7上托管的一组Web服务。我们用WIX打包我们的交付,WIX有什么要提供的吗? 据我所知,最终所有二进制文件都可以被黑客入侵,作为一个小公司,我们应该专注于编写代码而不是保护代码。 但这些小步骤将使其变得更难。 还有什么可以做的? 社区是否对此有任何建议? 将非常感谢内部/外部资源的链接。

Confuser .NET Obfuscator。 安全吗?

我目前正在开发一个应用程序,让用户不要反编译代码。 现在,我知道大多数.exes如果由经验丰富的程序员执行,则可以解压缩。 但是,我的目标只是为了保护其免受具有基本编程知识的“常规”用户的影响。 我遇到过几个混淆器,我现在使用的是Codeplex Confuser,你可以在这里找到它。 由于我不是混淆大师,或者在任何高级编程中经历过的,我问你是否知道这个混淆器的安全性。

哪个C#方法名称不应该被混淆?

我正在研究一个C#混淆程序,我想知道是否有方法名称“硬连接”到框架中,因此不应修改。 想到的是.ctor,.cctor和Dispose。 还有其他我应该避免修改的吗? 编辑:要精心制作,并受到Paul Alexander的启发(感谢您的回答),我是通过修改IL源代码来实现的。 以下是一些典型的(?)。方法语句: .method family hidebysig virtual instance void Dispose(bool disposing) cil managed .method private hidebysig instance void InitializeComponent() cil managed .method public hidebysig specialname rtspecialname instance void .ctor(class [mscorlib]System.Collections.Generic.List`1 twoLetterWords) cil managed .method private hidebysig static string[] CreateStringArray() cil managed 我可以看到构造函数(.ctor)有一个“rtspecialname”选项,而Dispose有一个“family”选项。 这是我应该注意的事情吗?

我可以对已编译的.NET可执行文件/程序集进行模糊处理吗?

所以我试图在我的程序编译后对其进行模糊处理。 我很确定你是怎么做的(?) 我正在使用一个非常流行的名为EazFuscator的免费软件,它有一个很好的小命令行工具。 所以,如果我去: Eazfuscator.NET MyProgram.exe 它会成功地混淆它,当它完成后,我会尝试运行我的程序并崩溃! (给我一些运行时exception) 我尝试的另一件事是混淆我的程序使用的DLL之一: EazFuscator.NET SomeDLLMyProgramUses.dll 它会成功地混淆它,但是当我运行我的程序崩溃时…… 我首先想知道,无论这个EazFuscator程序如何,是否有可能混淆.DLL和.EXE文件? 它通常不应该打破它们吗? 注意:我的程序中确实有一些反映,也许这就是造成问题的原因..但我不是百分百肯定的。

方法名称是否编译到EXE中?

在将 Windows应用程序项目编译为EXE后,类,方法和变量名称是否包含在MSIL中 ? 对于混淆 – 更少的名称,更难逆向工程。 而对于性能 – 更短的名称,更快的访问。 例如 ,如果通过名称调用方法: 保持名称简短 ,更好的命名查找性能。 保持名称神秘 ,反编译更难。

Json.NET和Obfuscation,反序列化不起作用

我想分享我的团队和我发现的解决方案,以解决当您尝试将Json.Net和Obfuscation联系起来时出现的问题。 我的配置:VS2013,C#,.NET 4.0,Json.Net 7.0.1,CodeWall / Crypto Obfuscator。 一切正常,直到我混淆了我的代码。 之后,我无法反序列化我的json文件(已正确序列化!)。

混淆是可能的混淆

自从上一周以来,我一直在努力解决这个问题。 我混淆了我的应用程序的exe。 我们的应用程序是在线Web应用程序的离线工具 客户端将安装此应用程序并连接到Internet,应用程序将下载相关信息并存储在客户端计算机上的xml文件中以供进一步显示。 出于安全考虑,我们正在加密这些xml文件。 不幸的是,我们在exe内部有一个方法GetCryptXML,它将读取客户端机器上的加密settings.xml并在解密后返回它。 此setting.xml也包含其他xml的加密密钥。 我面临的问题是,即使在混淆之后,人也可以通过传递混淆的名称来调用GetCryptXML方法。 有什么方法可以解决这个问题吗? 这是我解决问题的想法,但我不确定如何实施。 我的想法:只有通过使用InvokeMember()函数进行reflection才能调用我的函数。 在可以调用此函数之前,他/她需要使用此函数来加载程序集。 Assembly.LoadFrom(“myapplication.exe”) 如果myapplication.exe中的代码可以识别哪个应用程序试图加载我,那么我们可以限制它们加载,如果它不是应用程序。 我不知道怎么解决。 任何帮助是极大的赞赏。 谢谢。

对于单个开发人员而言,c#代码保护的最佳价值是什么?

什么是物超所值的c#代码保护? 有些人只是使用混淆,有些人则添加win32包装,有些则需要花钱。 到目前为止,我已经提出了http://www.eziriz.com/ ,他的Intellilock看起来很有前途。 还有其他建议吗? 为什么这不是一个好主意的任何原因? 我知道它不可能完全保护,但我更喜欢保护我的代码的能力,以便需要付出很多努力来恢复它。 我希望最终能够销售我的产品,同时也免费发布一些产品。