Tag: 混淆

隐藏已编译应用程序的可执行代码的实践

反编译和反向工程.net程序集是标准做法。 我想发布一些将添加到现有应用程序的插件程序集,但我不希望其他人使用它们。 有什么方法可以隐藏这些组件的来源?

用于JavaScript混淆的.Net组件?

是否存在用于混淆JavaScript的.Net组件? 我正在动态生成JavaScript并通过ClientScript.RegisterClientScriptBlock发出。 我想让其他人更难以查看和修改该脚本。 注意事项: 是的,我知道JavaScript混淆只会给认真的开发人员带来不便。 我打算添加(非混淆)版权声明。 生成JavaScript的我的C#程序是我真正的增值。 该来源将无法供观众使用。 不过,我想模糊它创建的function和数据。 谢谢!

C#仅使用代码添加引用(没有IDE“添加引用”function)

我正在为一个程序编写一个插件,我想把我的代码放在一个DLL中,这样我就可以自由地共享插件而不暴露(赠送)我的代码。 这是我可以访问的基本结构: using System; public class Plugin { public void Initialize() { //do stuff here doWork(); } } 然后我只引用我的代码所在的.cs文件,程序“吃掉”这个插件。 现在,我已经在其中放置了几个逻辑,主要包括不直接绑定到“Initialize()”的函数,仅在启动整个系统的doWork()函数上。 现在,我想将所有代码放在DLL中,然后从Initialize(),myDll.doWork()(或类似的东西)中调用。 PS:这个dll将是一个已编译的C#库(它可以称为动态程序集导入吗?它不会真正动态,因为它会在执行前编译,对吧?) PS2:这样我还可以添加自定义资源,如表单,图片等,没有太大困难吗? PS3:是否有一个免费的工具来保护这种DLL内的代码? (即避免重新设计) 在此先感谢=)

.NET的.NET混淆:我如何保护我的代码?

我正在与一家小公司探讨合作关系。 该公司正在寻找一种可以提高利润的算法,我有一些可以帮助他们的原型软件。 我的软件的核心是非常机密的,如果公司掌握它,那么他们肯定不需要我。 我肯定会和他们签订合同,我会得到法律保护,但我仍然希望在他们之间加上尽可能多的保护层和我的“商业秘密”。 我可能必须与他们的开发人员密切合作,以自动化我的算法并将其集成到他们的系统中,但我想在DLL中提供核心function,这样我就可以保护我的“商业秘密”,但仍然有能力使用他们的开发人员。 鉴于我的情况,混淆是否值得? 还有其他合理的选择吗?

保护我的代码免受逆向工程

正如在这里和这里的类似问题中所讨论的,我想保护我的代码免受逆向工程。 我的情况就像Simucal在他的(优秀)答案中描述的那样: 基本上,它归结为唯一的机会是你有一个非常具体的,难以设计的,与你的领域相关的算法,让你在竞争中占据优势。 这是尝试对应用程序的一小部分进行逆向工程的唯一时间。 我确实有这种情况。 一种难以设计的算法,对我们的特定领域而言是优雅且有价值的。 经过数月的微调和开发后,最终结果非常紧凑(约100行代码)和优雅。 我想保护代码的这一特定部分免受逆向工程或至少使其合理困难。 该场景是一个用C#编写的富客户端应用程序,我必须部署这部分代码 – 我无法从Web服务执行它。 我认为,由于性能原因(以及跨边界问题),提取代码并在非托管本机二进制文件中重写代码不是一种选择。 最初我想做简单的混淆,但考虑到代码的小尺寸我不认为这会提供很多保护。 理想情况下,我想保护我的整个应用程序,但有两个主要问题似乎使普通的混淆器和第三方打包器难以使用: 该应用程序提供了一个插件接口,因此不应对某些程序集(和接口/类)进行模糊处理和打包 我们仍然希望能够在接收错误报告时获得真正的堆栈跟踪 – 这可能是我对映射模糊到真实代码的结果。 将这些问题放在一边(尽管我也很感激这方面的任何意见),保护我的一小部分代码免受逆向工程的好方法是什么? 我并不担心任何人改变或破解代码,而是想让它难以理解和逆向工程。

用户ID混淆

我希望之前有人问这个问题,但在这里没有找到合适的答案,也没有时间提出我自己的解决方案…… 如果我们有一个带有int identity主键的用户表,那么我们的用户在站点上注册时会有连续的ID。 我们在网站url上有用户公开个人资料页面: www.somesite.com/user/1234 其中1234是实际的用户ID。 没有什么容易看到用户的ID 本身 ,但它确实让任何人都能够检查我的网站上注册了多少用户…手动增加这个数字最终会让我找到无效的个人资料。 这是我将可逆ID映射到具有固定长度的看似随机数的主要原因: www.somesite.com/user/6123978458176573 你能指点我做一个这个映射的简单类吗? 当然重要的是这种映射是可逆的,否则我必须将映射与其他用户的数据一起保存。 我想避免GUID GUID索引搜索它们的速度较慢,因为它们不是连续的,因此SQL必须扫描整个索引以匹配特定的GUID,而不仅仅是特定的计算索引页面… 如果我有ID + GUID,那么我总是需要获取原始用户ID来进行任何有意义的数据操作,这又会导致速度下降…… 数学可逆整数排列似乎是最快的解决方案……

如何在.NET应用程序中隐藏加密密钥?

我正在开发一个内部网应用程序(C#),它使用我们想保密的一些数据(Web服务器本地)。 使用遗留数据存储库对此数据进行加密(AES)。 我们无法完全阻止对机器的物理访问。 显然,我们永远不会在这里拥有完美的安全性。 但是,我们希望尽可能让任何人都未经授权访问数据。 问题是如何最好地存储密钥。 可以选择基于某些机器特定ID对其进行加密,但是在机器上运行诊断工具的任何人都可以轻松获得该信息。 在应用程序中对其进行编码是一种选择(它是一次性应用程序)。 但是,.NET程序集很容易反编译。 那么,最好是混淆它,使用加密启动器,编译它? 或者有一个我缺少的选项? 正如我们清楚的那样,我知道如果某人有决心,这几乎是一个失败的原因,但我们希望在限制范围内尽可能地努力。

是否有任何程序混淆C#源代码?

我们的要求是能够将我们的DLL与ClickOnce集成。 Dotfuscator可以很好地完成混淆工作,但是无法在客户端使用ClickOnce部署混淆的DLL。 在我们这边,我们可以完美地处理它。 此外,混淆的程序集有时会崩溃我们的.NET CF应用程序。 事实certificate,这是一种创建临时源并在使用VS编译之前对其进行模糊处理的解决方案。 这可确保已编译的程序集可与ClickOnce集成,并与.NET CF完全兼容。 什么是混淆C#SOURCE CODE(不是程序集)的最佳工具?

如何创建自己的dotnet混淆器

我知道dot net dlls和exe包含它们的程序集,因此每个body都可以从中提取代码。 所以请告诉我如何创建自己的.net混淆器以及是否存在任何其他方法来保护我的应用程序以进行反汇编。 并且plez不给我任何付费混淆器的链接。 我更喜欢c#或vb.net中的代码示例

如何模糊字符串常量?

我们有一个包含敏感信息的应用程序,我正在尽力保护它。 敏感信息包括: 主要算法 加密/解密算法的关键 我一直在研究混淆代码,但它似乎没什么帮助,因为我仍然可以反编译它。 但是,我最担心的是,当您对代码进行反编译时,用于加密序列号等的密钥清晰可见,即使它是混淆的。 任何人都可以建议我如何保护这些字符串? 我意识到其中一种方法可能是从应用程序本身删除任何解密,虽然这可能部分可能,有一些function必须使用加密/解密 – 主要是为了保存配置文件和传递’授权’令牌到DLL执行计算。