【问题标题】:Obfuscar tool ForceStringHiding混淆工具 ForceStringHiding
【发布时间】:2015-11-07 17:18:16
【问题描述】:

经过几个小时后,我终于明白了为什么我的应用在被 Obfuscar 混淆后崩溃了。那就是 MyClass 中的 StringHiding。所以现在模块的设置是

    <SkipStringHiding type="Myspacename.MyClass" name="*" />  

现在我只需要隐藏 MyClass 中的一些字符串。例如

private const string TrialLicenseKey = "AEAF3-N4C7K-BWDTV-3CLZB-XXXXX";

我尝试了一些设置组合,但在 Reflector 中仍然可以看到字符串。

【问题讨论】:

  • 试用密钥不应该是秘密。同时,字符串混淆根据定义是可逆的,您应该意识到这一点。
  • 我知道公钥/私钥技术,例如试用密钥。如何强制一些字符串混淆?

标签: settings obfuscar


【解决方案1】:

是否支持 ForceStringHiding?什么是名称参数?字符串内容、变量名等?

<ForceStringHiding type="Myspacename.MyClass" name="???" />

【讨论】:

  • 在构造函数中找到 vars init static Debugging() { A = new object(); c = "AEAF3-N4C7K-BWDTV-3CLZB-XXXX"; __public = "AOMR0rFgbQxySAHrBpU3N8RF1i3rXkgSC79aXEgE="; }
  • C# 编译器将 const 撕掉,因此 Obfuscar 无法处理它。您可以切换到静态只读并重试。
【解决方案2】:

不明白为什么我在 Reflector 中看到未混淆的私有静态字符串

static Debugging() 
{
A = new object();
__public = "AOMRDQELD+0rFgbQxySAHrBpU3N8RF1i3rXkgSC79aXEgE=";
D = "ActivationHardwareId";
d = "LicenseKey";
E = "ActivationKey";
... 
}

Obfuscar 的设置

  <Var name="KeepPublicApi" value="true" />
  <Var name="HidePrivateApi" value="true" />
  <Var namr="HideStrings" value="true" />

【讨论】:

    猜你喜欢
    • 2010-12-12
    • 2017-11-07
    • 2011-11-08
    • 1970-01-01
    • 2011-10-11
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多