问题标签 [dotfuscator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows-runtime - 我可以在 WinRT 中对已部署的应用程序包运行单元测试吗?
这个问题几乎解释了它。我们有一个 WinRT (Metro) 应用程序包,我们在每次构建后都使用 Dotfuscator 对其进行混淆。由于 Dotfuscator 重命名的方式,我们现在需要手动重命名我们从代码隐藏中按名称调用的任何控件。如果我们不这样做,我们会得到一个 NullReferenceException。这有点烦人,但我们已经成功地跟上了它并捕获了所有这种情况,但这非常耗时,而且我们总是有机会错过一个。
我想做的是能够创建一些单元测试来测试我创建的视图中的事件功能,但这只有在我可以在混淆版本中完成时才有效。我知道我们可以调试已部署的应用程序包,甚至可以调试混淆的应用程序包(因为我们在项目中有 .pdb 文件)。
如果有人对此或 Dotfuscator 有任何经验并且知道这样做的更好方法,我很想得到一些意见。从理论上讲,我还可以创建一个读取我们当前的“参考”Dotfuscator 项目的测试,并将其与代码隐藏中的所有命名控件进行比较,但这似乎是一个要编写的测试的恶魔,我不期待不得不这样做完全解析代码隐藏。它可能像在整个 XAML 文档中搜索 [x:Name"*"] 属性一样简单(对于简单的不同定义),然后在后面的代码和 Dotfuscator 项目文档中搜索加星标的值,幸好只是 XML。
您可以在这方面提供的任何帮助将不胜感激。我已经在 PreEmptive 支持论坛上创建了一个主题。我正在使用 Dotfuscator Professional(不是 App Store 版本),并且已更新到最新版本 4.10。
*编辑 25/4/13 所以最后,虽然@ianschol 的建议很有帮助,但现在我实现了上面概述的解决方案:-
枚举控件的字段
-确定哪些字段是属性,哪些是命名控件-读
入.xaml.cs
- 查找名称引用的所有字段,保存它们
注意:然后我使用了一些正则表达式来过滤掉 .cs 文件本身中声明的字段,因为它们是不必要的。
- 读入 Dotfuscator 项目文件
-Parse Descendants。如果控件的名称出现在引用列表中,则断言它有一个具有给定名称属性的后代元素。
c# - 当程序集被混淆时,JsonConvert.DeserializeObject() 返回未知对象
我有一个 C# 解决方案,其中包含两个项目,一个是主应用程序,另一个是许可证项目。项目进展顺利。我已经使用 json 序列化许可证详细信息。现在我需要对我的许可项目进行混淆,以使其免受欺诈或黑客的侵害。我已用于Dotfuscator
混淆目的。我已经使用下面的行来反序列化应用程序收到的许可证详细信息。
xmlDocument.LoadXml(xml);
details = xmlDocument.SelectSingleNode("/license/details");
licenseDetails = JsonConvert.DeserializeObject<LicenseDetails>(details.InnerText);
此行在混淆后返回未知对象I
,但在混淆之前它运行良好。
混淆前的返回值
licenseDetails == Shared.Licensing.Client.LicenseDetails
混淆后的返回值
licenseDetails = I
我的 XML 文件是
<?xml version="1.0" encoding="utf-8"?>
<license>
<details>{"Product":"Outlook Templates","ProductVersion":"1.0.0.0","Username":"Demo","Serial":"1fKxUCJylsm+qVUccjUn8gYNVgDc4pE5OuqYs48vkaQ=","RegistrationDate":"\/Date(1326202832909+0200)\/","ExpirationDate":"\/Date(1330387200000)\/","PayloadEntries":[{"ValueType":2,"EntryName":"MaxNumProviders","Operation":1,"EntryValue":"3"},{"ValueType":2,"EntryName":"MaxNumQuick","Operation":1,"EntryValue":"5"},{"ValueType":2,"EntryName":"ExpirationDaysOffset","Operation":1,"EntryValue":"30"}]}</details>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>c/BK0YOhnW8cXUGxTJx3mpWQj1U=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>gWYcpr3OBhUoiPEFyWskgoRcDw5rO2RWNbMulXSXg2tsKWebEFqgptCUfr7JRvvSjm4kALyvU7mZviJI/peJWmJC69gs7QDMEOWLvrOa0TL1qyO5K5onCBZopJUdrPE0PJCVYRacasI3DvTOSo+IDEOSFVpEWZNcERhB6ZkOFrU=</SignatureValue>
</Signature>
</license>
我不知道在混淆过程中出了什么问题。
dotfuscator - 如何使用 Dotfuscator 和 Analytics 社区版[版本:5.5.4521.29298] 混淆我的 dll?
使用 Dotfuscator 和 Community Edition ,我正在尝试使用以下过程来混淆我的 dll ,使用 Add Input-> added my dll 。在 Inputs Tab->Properties->Disabled 除了Honor Instrumentation 属性和 Strip Instrumentation 属性之外的所有属性,尽管它默认启用。在属性->构建设置->全局混淆设置->启用智能混淆。在分析选项卡->选项->分析配置中禁用了发送保质期通知消息和发送篡改警报消息。在重命名选项卡-> 内置规则-> 可用规则中禁用了通过属性属性和窗口工作流活动和水晶报告类对象访问的字段。保持全部处于启用状态。
控制流、字符串加密等剩余选项虽然对用户不是免费的,但并未突出显示
使用上述步骤我构建了 dll。我得到了新的 dll,我检查了混淆是否正确,所以使用 .Net Reflector 8.0 软件我尝试获取我的原始源代码,dll 中的某些类文件被正确混淆,即类名、方法名、字段名正确更改,但是很少有类名没有更改,我不知道问题是什么,我是否错过了其他选择?如何使用 dotfuscator 社区版 5.5.45 Any Ideas 使我的 dll 更加模糊?
wpf - 加快混淆过程
因此,我有一个中度到显着复杂的 WPF 应用程序,我需要通过 Dotfuscator 混淆输出程序集(专业版 - 客户端拥有许可证的版本)。
三个问题:
- 混淆过程在
OutOfMemoryException
大约 85% 的时间内崩溃 - 这需要很长时间 - 平均混淆通过大约需要56 分钟才能完成
- 从基于反射的查找到资源,有一大堆各种问题会导致应用程序因混淆程序集而崩溃。
第一个问题我可以通过命令行而不是 GUI 运行来缓解(至少它不会崩溃),如果我可以快速迭代,第三个问题就不会那么大了选项组合,而不是每个工作日进行 5 次尝试。
这真的是让我死去的总时间;有人知道任何“快速修复”的想法可以显着缩短混淆时间吗?是否有可能我所做的一些愚蠢的事情在此过程中导致某种“蒸汽锁”,从而增加了处理时间?我是否需要按客户端使用不同的混淆器?
一些细节:
- 大约。应用程序中有 38 个程序集/exe(其中可能有 5-10 个是标记为“工件”的第三方 dll,因此它们不会被混淆)
- 这个盒子是一个半强大的物理服务器,而不是虚拟机。
- 我使用配置文件来驱动混淆器,而不是单独处理每个程序集。
- 我已经在所述配置文件中标记了许多排除项,例如生成的资源
- 所有程序集都标记为“库”
任何想法和/或 SWAG 将不胜感激。
dotfuscator - 如何使用 Dotfuscator 社区版混淆我的 WCF 代理类 dll
我正在使用 Dotfuscator and Analytics Community Edition [Version-5.5.45]。我想混淆我的 dll ,该 dll 中的所有类都被混淆了,但是 wcf 代理类在 Dotfuscator 社区版中没有被混淆? 可以在 dotfucator 社区版中混淆 wcf 代理类吗?当我尝试正常混淆时,我在智能混淆页面中得到以下内容,属性:mypropertyname::ShouldSerializePrompt 被 Net30Rule 排除在元数据剥离之外,原因如下:mypropertyname 用 System.Runtime.Serialization.DataContractAttribute 装饰。方法:mymethodname::void .ctor(string, System.ServiceModel.EndpointAddress) 被 Net30Rule 排除在重命名之外,原因如下: mymethodname 被排除在重命名之外。用户类型:用户类型名称被 Net30Rule 排除在重命名之外,原因如下:用户类型名称被排除在重命名之外。
我能得到任何想法吗?
wpf - WPF 应用程序中的 Dotfuscating BAML
'又来了,
我的 Dotfuscation 工作仍在继续!因此,我目前正在混淆一个由约 38 个程序集组成的合理复杂的 WPF 应用程序。现在我已经克服了我的性能问题(加速混淆过程),我现在开始测试 Dotfuscator v4.10 的 BAML 混淆功能。
麻烦的是,它不起作用 - 生成的错误(嗯,警告)都是相同的形式,我在网上找不到任何讨论的内容:
任何人都遇到过这个并且有任何洞察力它想要我改变什么?
[编辑:]即使在它抱怨的属性上设置手动排除也不会删除警告......而且它看起来好像根本没有改变底层 BAML(至少不是通过反射器进行目视检查)。
[EDIT2:] 另外,应该说明 Dotfuscator 是这里的要求,所以替代工具可能对我没有帮助。
.net - 无法将 Dotfuscator 与引用 Microsoft.Bcl.Async 的应用程序一起使用
为了支持 XP,我的一个项目现在以 .NET 4.0 为目标,并将 Microsoft.Bcl.Async 用于 .NET 4.5 的异步功能。
问题是,我不再能够使用 Dotfuscator 混淆生成的应用程序(无论是专业版还是 VS 2012 中包含的社区版)。
尝试运行经过混淆的可执行文件时,程序崩溃并出现以下错误:
无法从程序集“System.Runtime”加载类型“System.Object”,版本 = 2.5.19.0
该错误似乎来自 Microsoft.Bcl.Async 所需的 app.config 设置,它们是:
似乎其他人使用由供应商修复的不同混淆软件遇到了类似的问题。
我能做些什么来解决这个问题吗?或者这是 Dotfuscator 的问题?(公平地说,所有的麻烦都源于微软在 XP 上不支持 .NET 4.5……)
vb.net - Dotfuscator : Error after obfuscation
I am using dotfuscator to obfuscate my vb.net application(myapp.exe). But i am getting error while running the obfuscated file.
Below is the error when i open the exe which is obfuscated.
"The settings property 'Import' was not found. ImportSetting"
My application uses .config(myapp.exe.config) file which has setting like below
If i don't obfuscate then application works fine. The error comes only if i obfuscate the my application.
Procedure i follow during obfuscation:
First i open create new project in dotfuscator.
In add input assembly i add myapp.exe and myapp.vshost.exe file from the bin folder of my project.
In build menu i select destination directory and click on build.
Now obfuscated file will be generated which i will use.
So please help me to solve this error.
.net - 如何使用 dotfuscator 合并多个本地化文件?
根据用户关于此问题的帖子:
您可以使用 dotfuscator 来执行此操作。我愿意,因为我在使用 ILmerge 时遇到问题。但是,当我尝试添加所有用于本地化的 resource.dll 并将它们与我的 exe 结合使用时,我收到以下错误:
.net - 抢先式Dotfuscator
我已经在以下帖子中看到了一个简短的答案:
“j8”的类型初始化程序抛出异常 Visual Studio 2012
我对注册表没有太多经验,所以有人可以指导我更多,或者如果有不同的解决方案,请解释。
非常感谢!!