尝试重新定位机器人时,空变量会发出错误

时间:2017-09-19 18:11:49

标签: c# asp.net-mvc

目前我有点陷入尝试使用visual studio编译机器人。由于机器人不能再使用,我以为我能够重新使用它。所以我在可执行文件上使用了dotpeek,并尝试测试它是否会再次编译。到目前为止,没有错误,但时间的错误。我想假设我没有正确的源文件,但即使Visual Studio和dotpeek同步使用符号,错误仍然会发生。

public static List<string> DecryptLicense(string path, string key)
    {
      string s1 = File.ReadAllText(path);
      while (s1.Length % 4 != 0)
        s1 += "=";
      string str1 = Decrypter.Decrypt(Encoding.UTF8.GetString(Convert.FromBase64String(s1)).Caesar((short) -8), key);
      string s2 = str1.Substring(0, 15);
      string str2 = str1.Substring(15);
      string format = "yyyyMMdd-HHmmss";
      // ISSUE: variable of the null type
      __Null local = null;
      DateTime exact = DateTime.ParseExact(s2, format, (IFormatProvider) local);
      if (Global.GetNistTime() > exact)
      {
        Console.WriteLine("License expired (" + exact.ToString("yyyy-MM-dd HH:mm:ss UTC+0") + "). Press one key to exit.");
        Console.ReadLine();
        Environment.Exit(0);
      }
      List<string> stringList = new List<string>();
      while (str2 != "")
      {
        string str3 = str2.Substring(0, 40);
        str2 = str2.Substring(40);
        stringList.Add(str3);
      }
      return stringList;
    }

我尝试将__Null更改为var,但我相信当尝试使用IFormatProvider进行更改时,这是一个格式化问题。任何有关如何解决这个问题的见解表示赞赏。

以下是发生错误以供参考的其他部分的实例:

 public static string SleepTime
    {
      get
      {
        return Global._sleepTime;
      }
      set
      {
        Global._sleepTime = value;
        string[] strArray = value.Split(' ');
        for (int index = 0; index < strArray.Length; ++index)
        {
          string s1 = strArray[index].Split('-')[0];
          string s2 = strArray[index].Split('-')[1];
          DateTime exact1 = DateTime.ParseExact(s1, "HH:mm", (IFormatProvider) null);
          string format = "HH:mm";
          __Null local = null;
          DateTime exact2 = DateTime.ParseExact(s2, format, (IFormatProvider) local);
          Global.SleepTimes.Add(new DateTime[2]
          {
            exact1,
            exact2
          });
        }
      }
    }

1 个答案:

答案 0 :(得分:2)

完全删除local的声明。它从来没有用过任何东西,所以花时间确定它的类型是浪费。

__Null类型可能只是为了模糊代码而插入,并阻碍了对代码进行反编译的任何尝试。

local的所有实例替换为null,如:

DateTime.ParseExact(s1, "HH:mm", (IFormatProvider) local);
                                                    ↓ ↓
DateTime.ParseExact(s1, "HH:mm", (IFormatProvider) null);