【发布时间】:2017-01-03 01:13:15
【问题描述】:
我们有一个名为 DataObjectJsonLoader 的程序集。里面有一个类如下:
public static class DrillingFluidDataObjectJsonLoader
{
public static Result<DrillingFluid> Load(string strDrillingFluid)
{
....
var type = ConvertToMudType(...);
....
}
private static MudType ConvertToMudType(string strDillingFluidType)
{
....
}
}
在混淆之前一切正常。我们使用的混淆器是Net Reactor 5.0。我们已经禁用了字符串加密。但是经过混淆处理后,当我们调用上面的公共函数时,会出现runtime binder异常:
“DrillingFluidDataObjectJsonLoader”不包含“ConvertToMudType”的定义。
这个问题的根本原因是什么? 以及如何解决?
【问题讨论】:
-
网络反应堆支持不是问这个问题的更好地方吗?显然它正在重命名一个私有方法,但没有改变调用站点。
-
混淆和解释接口(几乎所有 JSON 工具都这样做)是一种冒险的方式。你确定,你的软件总有一天会被人反汇编吗?
标签: c# .net obfuscation net-reactor