Отключить eazfuscator JSON-шифрование

Когда я использую eaz и newtonsoft json, он шифрует все мои данные json. Есть ли способ расшифровать его в C# или отключить шифрование данных?

Я использую виртуализацию и шифрование с паролем

1 ответ

Я разговаривал с Eazfuscator еще в 2020 году и смог хорошо интегрировать это с помощью конструктора.

Однако одна вещь, которую вы ДОЛЖНЫ сделать, это использовать атрибут имени свойства json, поскольку запутанные свойства будут переименованы, вы не можете быть уверены, какое имя они получат, а также не можете гарантировать, что «следующая» компиляция/обфускация сгенерирует то же имя.

В любом случае достаточно легко исправить метод 1, используя имена из json для сопоставления через конструктор

      private class MyProprietaryData
{

   
   internal MyProprietaryData(string a1, int a2)
   {
      AccountNumber=a1;
      Code=a2;

   }
   
   [JsonProperty("a1")]
   public string AccountNumber{get;}

   [JsonProperty("a2")]
   public int Code{get;}
}

метод 2 использует json для заполнения полей, а не свойств

      private class MyProprietaryData
{
   [JsonProperty("a1")]
   string _accountNumber;

   [JsonProperty("a2")]
   int _code;
   
   internal MyProprietaryData(string accountNumber, int code)
   {
      AccountNumber=accountNumber;
      Code=code;

   }
   
   [JsonIgnore]
   public string AccountNumber  =>_accountNumber;

   [JsonIgnore]
   public int Code => _code;
}

Как и все комбинации, которые дает вам .net, единственное, что вы должны помнить, это то, что переименование полей повлияет на сгенерированные во время выполнения преобразователи, такие как сериализация json. Это работает как с новым .net json, так и с newtonsoft json.

Вы не спрашивали об этом, но это бесплатный совет: при исключении внешних данных, таких как json, xml, gRPC, всегда предполагайте, что данные манипулируются и проверяют данные, вы можете сделать это, имея поле контрольной суммы, которое вы сериализуете в данных и который вы проверяете, в случае json в аннотированном конструкторе [jsonconstructor].

Другие вопросы по тегам