gawen 发表于 2014-6-10 15:29:56

一个.net程序,已去除混淆代码,用reflector 已找到关键代码,但不知道如何修改


已去除混淆代码,用reflector 已找到关键代码,但不知道怎么修改,还请高手帮忙

软件有试用限制,每次15分钟,只能发10个帖子。程序用de4dot去除了混淆代码。用reflector,找字符串:

private void MAIN_Shown(object sender, EventArgs e)
{
    try
    {
      try
      {
            if (!Functions.piv)
            {
                int num = this.method_3();
                if (Functions._Getstamp(DateTime.Now) > num)
                {
                  base.Invoke(new MessageHelper.de_showInfo(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("试用时间已满,请联系QQ{0}购买Vip权限。", Class34.string_4) });
                  base.Invoke(new Class33.Delegate22(Class33.smethod_0), new object[] { 1, this });
                }
                DateTime time = DateTime.Parse(Encryp.TripleDESCryptoDe(Class26.smethod_0("MyGod")));
                if (Functions._Getstamp(DateTime.Now) > Functions._Getstamp(time.AddDays(4.0)))
                {
                  base.Invoke(new MessageHelper.de_showInfo(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("试用时间已满,请联系QQ{0}购买Vip权限。", Class34.string_4) });
                  base.Invoke(new Class33.Delegate22(Class33.smethod_0), new object[] { 1, this });
                }
            }
      }
      catch (Exception)
      {
            Class26.smethod_1("MyGod", Encryp.TripleDESCrypto(DateTime.Now.ToString()));
      }
      if (Class30.serverCfgWS_0.get_LastestVer() != "5.1.140325")
      {
            this.barStaticItem_4.Glyph = Resources.info;
            this.barStaticItem_4.Caption = string.Format("检测到更新[{0}] {1}", Class30.serverCfgWS_0.get_LastestVer(), Class30.serverCfgWS_0.get_UpdateTime().ToShortDateString());
            this.barEditItem_0.Visibility = BarItemVisibility.Always;
            if (Class30.serverCfgWS_0.get_IsImportantUpdate() && !Functions.piv)
            {
                if (MessageHelper.showConfirm(this, string.Format("检测到重要更新[{0}] {1}\n是否现在下载最新版?", Class30.serverCfgWS_0.get_LastestVer(), Class30.serverCfgWS_0.get_UpdateTime().ToShortDateString())))
                {
                  Process.Start(Class30.string_5, Class30.serverCfgWS_0.get_DownUrl());
                }
                Environment.Exit(0);
            }
      }
      else
      {
            this.barStaticItem_4.Glyph = Resources.right;
            this.barStaticItem_4.Caption = string.Format("软件为最新版[{0}]{1} {2}", Class30.serverCfgWS_0.get_LastestVer(), "build0325", Class30.serverCfgWS_0.get_UpdateTime().ToShortDateString());
      }
      Class30.sortedDictionary_3 = new SortedDictionary<int, Taskbase>();
      ThreadPool.QueueUserWorkItem(new WaitCallback(fmWaitFormTask.Th_Func_LoadAllTasks));
      fmWaitFormTask.ShowDialog(this, "请稍后", "正在加载任务 ...");
      this.taskTreeList_0.FocusedNode = null;
      this.method_5();
      fmSecCheck._Start();
    }
    catch (Exception exception)
    {
      ExceptionLog._LogException(exception);
    }
}




private void MAIN_Shown(object sender, EventArgs e)
{
    try
    {
      try
      {
            if (!Functions.piv)
            {
                int num = this.method_3();
                if (Functions._Getstamp(DateTime.Now) > num)
                {
                  base.Invoke(new MessageHelper.de_showInfo(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("试用时间已满,请联系QQ{0}购买Vip权限。", Class34.string_4) });
                  base.Invoke(new Class33.Delegate22(Class33.smethod_0), new object[] { 1, this });
                }
                DateTime time = DateTime.Parse(Encryp.TripleDESCryptoDe(Class26.smethod_0("MyGod")));
                if (Functions._Getstamp(DateTime.Now) > Functions._Getstamp(time.AddDays(4.0)))
                {
                  base.Invoke(new MessageHelper.de_showInfo(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("试用时间已满,请联系QQ{0}购买Vip权限。", Class34.string_4) });
                  base.Invoke(new Class33.Delegate22(Class33.smethod_0), new object[] { 1, this });
                }
            }
      }
      catch (Exception)
      {
            Class26.smethod_1("MyGod", Encryp.TripleDESCrypto(DateTime.Now.ToString()));
      }
      if (Class30.serverCfgWS_0.get_LastestVer() != "5.1.140325")
      {
            this.barStaticItem_4.Glyph = Resources.info;
            this.barStaticItem_4.Caption = string.Format("检测到更新[{0}] {1}", Class30.serverCfgWS_0.get_LastestVer(), Class30.serverCfgWS_0.get_UpdateTime().ToShortDateString());
            this.barEditItem_0.Visibility = BarItemVisibility.Always;
            if (Class30.serverCfgWS_0.get_IsImportantUpdate() && !Functions.piv)
            {
                if (MessageHelper.showConfirm(this, string.Format("检测到重要更新[{0}] {1}\n是否现在下载最新版?", Class30.serverCfgWS_0.get_LastestVer(), Class30.serverCfgWS_0.get_UpdateTime().ToShortDateString())))
                {
                  Process.Start(Class30.string_5, Class30.serverCfgWS_0.get_DownUrl());
                }
                Environment.Exit(0);
            }
      }
      else
      {
            this.barStaticItem_4.Glyph = Resources.right;
            this.barStaticItem_4.Caption = string.Format("软件为最新版[{0}]{1} {2}", Class30.serverCfgWS_0.get_LastestVer(), "build0325", Class30.serverCfgWS_0.get_UpdateTime().ToShortDateString());
      }
      Class30.sortedDictionary_3 = new SortedDictionary<int, Taskbase>();
      ThreadPool.QueueUserWorkItem(new WaitCallback(fmWaitFormTask.Th_Func_LoadAllTasks));
      fmWaitFormTask.ShowDialog(this, "请稍后", "正在加载任务 ...");
      this.taskTreeList_0.FocusedNode = null;
      this.method_5();
      fmSecCheck._Start();
    }
    catch (Exception exception)
    {
      ExceptionLog._LogException(exception);
    }
}


这里是试用时间限制,每次15分钟,请高手指点,这里怎么改。


private void method_7()
{
    if (base.InvokeRequired)
    {
      base.BeginInvoke(new MessageHelper.de_showWarn(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足" });
    }
    else
    {
      MessageHelper.showWarn(this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足");
    }
}




private void method_7()
{
    if (base.InvokeRequired)
    {
      base.BeginInvoke(new MessageHelper.de_showWarn(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足" });
    }
    else
    {
      MessageHelper.showWarn(this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足");
    }
}


这里是顶贴限制,只能发10个
请高手指点下,怎么修改,谢谢


软件在这里下载:

http://pan.baidu.com/s/1dDH1Csx

明媚安生 发表于 2014-6-12 13:58:21

看着好乱,下载一个看看吧

明媚安生 发表于 2014-6-12 14:05:05

if (Functions._Getstamp(DateTime.Now) > num)
                {
                  base.Invoke(new MessageHelper.de_showInfo(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("试用时间已满,请联系QQ{0}购买Vip权限。", Class34.string_4) });
                  base.Invoke(new Class33.Delegate22(Class33.smethod_0), new object[] { 1, this });
                }
                DateTime time = DateTime.Parse(Encryp.TripleDESCryptoDe(Class26.smethod_0("MyGod")));
                if (Functions._Getstamp(DateTime.Now) > Functions._Getstamp(time.AddDays(4.0)))
                {
                  base.Invoke(new MessageHelper.de_showInfo(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("试用时间已满,请联系QQ{0}购买Vip权限。", Class34.string_4) });
                  base.Invoke(new Class33.Delegate22(Class33.smethod_0), new object[] { 1, this });
                }


这个方法整个删除试试,如果报错的话

把这个重新赋值一个最大时间值试试 DateTime time = DateTime.Parse(Encryp.TripleDESCryptoDe(Class26.smethod_0("MyGod")));

软件测试起来不方便啊。。。。。要不多改几次试试就应该行了

gawen 发表于 2014-6-12 21:47:13

删除代码后,虽然程序不会出错,但仍然不能运行,没有反应。
DateTime time 又如何修改呢?

gawen 发表于 2014-6-12 22:08:39

发现两个函数都会出错:
method_13,method_7
在reflector里,怎么查看是哪里调用了这两个函数?
method_13代码如下:
private void method_13()
{
    if (base.InvokeRequired)
    {
      base.BeginInvoke(new MessageHelper.de_showWarn(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足" });
    }
    else
    {
      MessageHelper.showWarn(this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足");
    }
}




private void method_13()
{
    if (base.InvokeRequired)
    {
      base.BeginInvoke(new MessageHelper.de_showWarn(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足" });
    }
    else
    {
      MessageHelper.showWarn(this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足");
    }
}




method_7代码如下:
private void method_7()
{
    if (base.InvokeRequired)
    {
      base.BeginInvoke(new MessageHelper.de_showWarn(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足" });
    }
    else
    {
      MessageHelper.showWarn(this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足");
    }
}




private void method_7()
{
    if (base.InvokeRequired)
    {
      base.BeginInvoke(new MessageHelper.de_showWarn(null, (IntPtr) MessageHelper.showWarn), new object[] { this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足" });
    }
    else
    {
      MessageHelper.showWarn(this, string.Format("非V*i*p用*户限*制每*个论*坛顶*贴数为{0}。\r\n需*要购*买V*i*p联*系Q*Q:3*17*5*850*7*1", Class30.serverCfgWS_0.get_LimitReplyMaxPerFm()).Replace("*", ""), "权限不足");
    }
}
页: [1]
查看完整版本: 一个.net程序,已去除混淆代码,用reflector 已找到关键代码,但不知道如何修改