不远千里询问大家有没有会弄插件授权的

Home Home
引用 | 編輯 cyxnzb
2016-08-14 01:09
樓主
推文 x0
 【在此申明,以下所有过程均经过作者允许,详情可以访问百度贴吧
"这个问题已经困扰了我3年,能解决的我不知道该怎么回报他"


不废话了,我这里有一套僵尸插件,然后他喵的作者加了个授权功能.
但是,他会让你正常一局游戏,然后下一把的话授权开始,失败后,你感染一个人后就无法杀死所有僵尸以及人类
我通过不知道多少途径对插件进行反编译,终于得到了大部分参数,但是不理解他是如何做到判断授权的--SQL读取方面
我通过反汇编工具硬改他授权IP为本地IP还是不行,怀疑是SQL库没搭建导致.



獻花 x0
引用 | 編輯 cyxnzb
2016-08-14 01:12
1樓
  
贴一段授权代码
public globalsettings()
{
  !!! Removed Phi
  host_Authentication = 6;
  sqlmakedbtuple1 = SQL_MakeDbTuple(host1, user1, pass1, Plugins_Authentication1, ZP_CUSTOMIZATION_FILE);
  sqlconnect1 = SQL_Connect(sqlmakedbtuple1, errorcode1, error1, 255);
  if (!sqlconnect1)
  {
    Authorization = 1;
    copy(Authorization_information, 63, 144268);
    copy(Authorization_Ip, 31, 144296);
    copy(Authorized_time, 31, 144324);
    Read_one_two_three = 2;
    set_task(13.70, "Repeat_Verify_one", 6000, "", 0, "b", 0);
    set_task(11.50, "Repeat_Verify_two", 6110, "", 0, "b", 0);
    set_task(7.30, "Repeat_Verify_three", 6220, "", 0, "b", 0);
    set_task(random_float(1.00/*1065353216*/ + 120, 1.00/*1065353216*/ + 180), "Licensing_restrictions", 6330, "", 0, "b", 0);
    return 0;
  }
  if (SQL_Execute(query) || SQL_NumResults(query))
  {
    if (SQL_MoreResults(query))
    {
        if (str_to_num(ctime) <= str_to_num(Authorized_time) && str_to_num(Authorization_switching) >= 1)
        {
          Authorization = 1;
          remove_task(6330, 0);
          remove_task(6000, 0);
          remove_task(6110, 0);
        }
        else
        {
          if (str_to_num(ctime) > str_to_num(Authorized_time) || str_to_num(Authorization_switching) < 1)
          {
            Authorization = 1;
            Read_one_two_three = 2;
            set_task(13.70, "Repeat_Verify_one", 6000, "", 0, "b", 0);
            set_task(11.50, "Repeat_Verify_two", 6110, "", 0, "b", 0);
            set_task(7.30, "Repeat_Verify_three", 6220, "", 0, "b", 0);
            set_task(random_float(1.00/*1065353216*/ + 120, 1.00/*1065353216*/ + 180), "Licensing_restrictions", 6330, "", 0, "b", 0);
          }
        }
    }
    else
    {
        Authorization = 1;
        copy(Authorization_information, 63, 145296);
        copy(Authorization_Ip, 31, 145324);
        copy(Authorized_time, 31, 145352);
        Read_one_two_three = 2;
        set_task(13.70, "Repeat_Verify_one", 6000, "", 0, "b", 0);
        set_task(11.50, "Repeat_Verify_two", 6110, "", 0, "b", 0);
        set_task(7.30, "Repeat_Verify_three", 6220, "", 0, "b", 0);
        set_task(random_float(1.00/*1065353216*/ + 120, 1.00/*1065353216*/ + 180), "Licensing_restrictions", 6330, "", 0, "b", 0);
    }
  }
  else
  {
    Authorization = 1;
    copy(Authorization_information, 63, 145728);
    copy(Authorization_Ip, 31, 145756);
    copy(Authorized_time, 31, 145784);
    Read_one_two_three = 2;
    set_task(13.70, "Repeat_Verify_one", 6000, "", 0, "b", 0);
    set_task(11.50, "Repeat_Verify_two", 6110, "", 0, "b", 0);
    set_task(7.30, "Repeat_Verify_three", 6220, "", 0, "b", 0);
    set_task(random_float(1.00/*1065353216*/ + 120, 1.00/*1065353216*/ + 180), "Licensing_restrictions", 6330, "", 0, "b", 0);
  }
  SQL_FreeHandle(query);
  return 0;
}

獻花 x0
引用 | 編輯 cyxnzb
2016-08-14 01:14
2樓
  
我把反编译的东西贴上来,希望有大神能帮帮我
我QQ969003955

本帖包含附件
檔名: txt zp43recomplie.txt   (2022-06-09 14:21 / 660 KB)  
请确认你会再下载..
下載次數:12


獻花 x0
引用 | 編輯 z1022001
2017-04-30 02:16
3樓
  
這人也真夠閒的...搞這鳥事
大略看了一下大概是由Authorization這個參數在管理授權情況
那把所有呼叫Licensing_restrictions的set_task都註銷掉就可以迴避掉授權失敗了
附帶一提傷害的函數在Authorization = 0的時候也會被擋掉

另外在welcome_msga()那邊可以看到授權條件
既然看到授權條件的判斷式了, 造假一個便是了

我個人是比較好奇這個反編譯的方法

獻花 x1