问题标签 [smartassembly]

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.

0 投票
1 回答
33 浏览

smartassembly - SmartAssembly 控制台

有谁知道如何在构建后事件中写这一行

我一直在退出代码 1。

0 投票
1 回答
203 浏览

c# - 打包后ServiceStack许可错误

在我的 ServiceStack客户端应用程序中,一切都很好,直到我尝试使用 SmartAssembly 或 ILRepack 打包它。共有三个 DLL:(ServiceStack.Client.dll、ServiceStack.Interfaces.dll、ServiceStack.Text.dll)打包时会导致我的应用程序崩溃,无论我使用加密\混淆选项还是将它们打包到一个 EXE 中。我的应用程序面向 .NET 4.0(我想支持 win XP)。异常的堆栈跟踪是:

我无法安装补丁,因为安装程序说它被阻止或条件无效。此外,我不确定这个补丁是否对我有帮助。欢迎任何想法。
旁注:另一个 ServiceStack 应用程序,它使用除上述之外的其他 ServiceStack DLL,即使在打包时也能正常工作。

0 投票
0 回答
856 浏览

.net-core - .NetCore / .NetStandard 库混淆工具

目前我们正在使用 RedGate 的 SmartAssembly 来混淆基于 .Net Framework 的库,它工作得很好。

然而,在过去的几个月里,我们开始致力于支持 .NetCore 和 .NetStandard 以便能够扩展我们的产品,并注意到我们不能再混淆生成的库,因为 SmartAssembly 还不支持它。

据我所知,Dotfuscator 可以完成这项工作,但是它没有处理依赖关系之间的关系,所以它实际上并不是一个完全的混淆。

社区还使用哪些其他工具来实现此目的?我也对免费和商业工具感兴趣。

0 投票
0 回答
84 浏览

c# - 为什么 postsharp 会丢失调用方法的堆栈跟踪信息

在发布模式下,Postsharp 增强的方法只丢失调用方法的行号等。尽管提供了 pdb 文件,但仍然如此。如果我不使用 Postsharp,则包括行号等。

有解决方法吗?

编辑:

这是我在 OnMethodBoundry 方面捕获的堆栈跟踪记录器的输出:

TestStackTrace.PSOnEntryExit.OnEntry 在 file:line:column T:\My Projects\TestStackTrace\TestStackTrace\PostScript.cs:33:4 偏移量 104

TestStackTrace.Program.testMethod at offset 122 in file:line:column:16777215:0

TestStackTrace.Program.Main 在文件中偏移量 98 处:行:列 T:\My Projects\TestStackTrace\TestStackTrace\Program.cs:21:4

只有当项目由 SmartAssembly 处理时,文件:行:列号才会被“损坏”。SmartAssembly 不需要配置为实际执行任何特定操作。事实上,在我努力隔离问题时,我没有勾选所有 SmartAssembly 选项。

0 投票
1 回答
243 浏览

c# - Winform app 用智能程序集混淆后抛出实体框架异常

我开发了一个windows形式的软件。我使用实体框架(代码优先)方法。当应用程序开始与数据库通信时,通信实体框架会引发异常,我无法解释。(注意:它只发生在混淆之后。我使用的是 SmartAssembly 6.9).. 没有混淆,一切都是正确的。

我今天早上在下面的链接中发布了这个问题..但没有收到回复。我在下面给出链接 https://forum.red-gate.com/discussion/81758/entity-framework-code-first-exception-after-obfuscating-net-assembly#latest

谢谢

0 投票
1 回答
52 浏览

c# - 从具有不同名称的旧版本升级设置

我们使用 app.config 来存储用户设置,但是出于某种原因更改了 exe 的名称。我需要能够将设置从名为 name1.exe 的 1.4 版升级到现在名为 name2.exe 的 1.5 版。

我尝试了几种方法,第一种是在 Program.cs Main() 中添加代码,它将使用 System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath 来查找新设置的路径文件应该去,并搜索该设置的基本路径以在旧名称下找到 1.4 版本,然后将 1.4 文件夹复制到 Properties.Settings.Default.Upgrade() 正常工作的路径的正确部分。

我也试过用旧的替换新的 app.config 文件并调用 Properties.Settings.Default.Reload(); 并做同样的事情,但只是重新启动应用程序。

这些方法中的每一个都有效,即使在 ide 之外的发布模式下也是如此。但我们也使用 SmartAssembly 将其他一些 dll 合并到我们的 exe 程序集中。智能组装必须做一些未知的魔法,因为它在被 SmartAssembled 之后不起作用。

如果我手动将旧设置复制到新位置(替换 app.config)然后尝试运行我的应用程序甚至无法启动,它必须立即崩溃。同样,只有在使用 SmartAssembly 合并我们的 dll 之后。我已将崩溃范围缩小到 xml 中的这一部分...

xml“section name=ExeName.Properties.Settings...”的最后一部分不在旧设置文件中。我不确定为什么现在添加它,但是如果我在复制它时手动将它添加到旧设置文件中,它会起作用。

有没有办法使这项工作?

0 投票
1 回答
234 浏览

obfuscation - 使用 SmartAssembly 对针对 .NET Standard 的 Nuget 包进行模糊处理可在运行 .NET 4.7.1 的机器上运行,但在 .NET 4.5.2 上失败

我的 .net 4.5 项目正在引用一个 nuget 包(System.ValueTuple 4.3.0,针对 .netstandard)。代码使用 SmartAssembly 6.10 进行了混淆(我知道这个版本不支持 .NET Standard)。

该程序在运行 .NET 4.7.1 的机器上运行良好。当达到 Value Tuple 代码时,程序在运行 .NET 4.5.2 的机器上失败:

我理解为什么这在 4.5.2 上失败,但不清楚为什么它在 4.7.1 上工作。如果我的 SmartAssembly 版本不支持 .NET Standard,我希望在两台机器上都能看到异常,无论 .NET 版本如何。

不用说,当不使用 SmartAssembly 时,该程序在两台机器上都可以正常工作。

感谢您的想法。

0 投票
1 回答
63 浏览

c# - 在使用 SmartAssembly 合并之前和之后是否需要对合并的 C# 程序集进行单元测试?

我有两个 C# DLL:Main.dllPudding.dll。我也有涵盖Main.dll的行为和接口的单元测试。

当我发布 Main.dll时,我想将Pudding.dll合并到其中,这样用户就只有一个文件要处理(以及其他令人敬畏的原因)。我使用SmartAssembly进行合并。

在合并之前,我运行单元测试以确保Main.dll的行为并具有应有的接口。

但是在合并文件之后,我是否应该再次测试,是否值得?除了将Pudding.dll塞入其中之外,Main.dll中是否有任何实际变化?

有人知道吗?塔。

0 投票
1 回答
22 浏览

installation - 激活应用程序会出现错误“服务器无法运行”

早上好,

我正在尝试将 SmartAssembly 6.8 的安装移动到新的开发人员机器上。看起来它已经安装没有任何问题,它开始正常,我得到了“激活”和“继续”按钮的对话。我正在安装 SmartAssembly 的机器没有互联网连接,所以我一直在查看这里的说明https://documentation.red-gate.com/sa6/getting-started/licensing/activating

如果我单击激活按钮输入序列号,我会在对话框中看到以下内容:

我可以选择发送/保存错误报告,但这也不会保存。

如果我单击继续,然后尝试从应用程序内部激活,我会收到与上述相同的错误消息。如果我单击带有错误消息的表单上的调试按钮,我会得到更多信息:

我安装的机器规格如下:

我也尝试过以普通用户身份安装并使用管理员证明,但我得到了同样的错误。

我显然遗漏了一些明显的东西,因此我们将不胜感激地收到任何帮助。

谢谢

0 投票
1 回答
1939 浏览

obfuscation - Smart Assembly 7+ 字符串可以去混淆吗?

我计划使用 Smart Assembly 7+ 来混淆我的 .NET C# 库。但是当我浏览一些论坛时,我发现甚至有一些程序可以对受 Smart Assembly 保护的 DLL 进行反混淆,尤其是像de4dot这样的程序。

因此,我尝试使用 de4dot 对我的程序进行反混淆,令我惊讶的是,我的大部分逻辑都成功反编译了。但幸运的是,这些字符串没有被反编译。

他们的形式是Class24.getString_0(5050)

如果字符串不能被任何反混淆器正确反编译,那么保护我的核心逻辑就足够了。但我很偏执,也许我没有正确使用反混淆器,甚至有一些方法可以反混淆字符串(但我尝试为字符串运行反混淆器命令,如 repo wiki 中所述)。

基本上我的问题是,我能否确定被 SmartAssembly 混淆的字符串不能被市场上的任何反混淆器程序反编译。

此外,也欢迎任何关于混淆 .NET 库的好建议。

谢谢你们!