JolaSia 发表于 2017-6-9 09:18:35

KYTool简单破解教程

KYTool简单破解教程


初见
遇见.net程式自然是先请出de4dot了……简略又便利,直接用鼠标把KYTool.exe拖曳到de4dot.exe上即可
尝试搜索一下文本,成果发现还真的是一无所获,莫非是有了啥新姿态嘛?





另寻途径
横竖搜索失败文本没有收货的话……那就试试看定位这个按钮好了
找到按钮的话再慢慢怼也没差啊XD



很简单的就找到了开始激活……还好没有全文本加密什么的奇奇怪怪的东西
如图所示……很容易找到按钮事件名称,但是如果这么简单的话我还写这个干嘛




如图所示……这个按钮是空的

已然它只对注册有些进行了维护处理,那围观一下


功能的判别……其间那个Class45.smethod_2()明显的有些过分了
其他地方也是运用这个方位进行判别……讲道理如果是硬爆的话咱们现已处理了这个软件
让它恒回来就好

进阶怼
可是……那个注册框终究是没找到是不是?从另外一个地方我发现了古怪的东西……


为什么这里还有一个软件激活……看一下这个按钮先吧

如图所示很快判断出按钮事件btnActive_Click


等等……显现窗口?并且并不是显现刚刚那个kyActivate的窗口
跟进去看看吧……截图截图半响我才发现……直接复制代码不就好了嘛……


// PSetup
private void btnActive_Click(object sender, EventArgs e)
{
    Form form = Class45.smethod_0();
    form.Show();
}

// Class45
internal static Form smethod_0()
{
    return Class45.smethod_1();
}

// Class45
private static Form smethod_1()
{
    Form form = null;
    try
    {
      byte[] array = Resources.smethod_27();
      array = Class45.smethod_3(array);
      Assembly assembly = Assembly.Load(array);
      Module module = assembly.GetModules();
      Type type = module.GetType("ZipLib.Zip");
      MethodInfo method = type.GetMethod("AutoUnZipFile");
      object obj = method.Invoke(null, new object[]
      {
            Class17.smethod_1()
      });
      form = (Form)obj;
      Class45.string_0 = form.ToString();
      Class45.string_1 = form.Text;
      Class45.int_0 = (form.AutoSize ? 1 : 0);
    }
    catch (Exception ex)
    {
      Class19.smethod_13(ex.Message);
    }
    Class45.int_0 = -1;
    return form;
}
那个Assembly.Load……它居然是加载了其他程序集?

byte[] array = Resources.smethod_27(); //进入一个数组
      array = Class45.smethod_3(array);//数组经过smethod_3处理输出
      Assembly assembly = Assembly.Load(array);//加载程序集
先去smethod_27()看看好了……

// swtoolbar.Properties.Resources
internal static byte[] smethod_27()
{
    object @Object = Resources.ResourceManager_0.GetObject("SWIcon", Resources.cultureInfo_0);
    return (byte[])@object;
}
资源名称SWIcon……先去把它提取吧




可是这个鬼东西……并不是程序集啊……
经过处理后才是啊w


// Class45
private static byte[] smethod_3(byte[] byte_0)
{
    return Class27.smethod_8(byte_0);
}

// Class27
internal static byte[] smethod_8(byte[] byte_0)
{
    byte[] result;
    try
    {
      byte[] array = Class27.smethod_0("");
      byte[] rgbIV = array;
      DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
      MemoryStream memoryStream = new MemoryStream();
      CryptoStream cryptoStream = new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateDecryptor(array, rgbIV), CryptoStreamMode.Write);
      cryptoStream.Write(byte_0, 0, byte_0.Length);
      cryptoStream.FlushFinalBlock();
      result = memoryStream.ToArray();
    }
    catch
    {
      result = null;
    }
    return result;
}

// Class27
private static byte[] smethod_0(string string_0)
{
    while (string_0.Length < 10)
    {
      string_0 += "TKY";
    }
    string_0 = string_0.Substring(0, 8);
    return Encoding.UTF8.GetBytes(string_0);
}
有上面部分的代码就可以解开那个文件了……好像是个DES算法(



就这样子就好啦……例行把它拖到de4dot上面去
再次运用ilspy搜索……文本就出来了



想要过验证也很简单……if (actievCode == text)改成if (!(actievCode == text))就好
然后再把这个资本文件塞回去……塞回去的一起咱们不可能再去加密一次这么费事吧……
那就把解密的array = Class45.smethod_3(array);删除去好惹,04 05 06三个删了保存




破解成功










东方不破 发表于 2017-6-13 08:57:42

求大神分享破解的kytool文件{:じοじ:}{:dizzy:}

adminTT 发表于 2021-1-18 09:48:35

第一次进来学习一下,自己摸索了很久il,一步一步往前进{:tongue:}

adminTT 发表于 2021-1-22 11:36:48

大佬,数组提取出来我们解密和再塞回去?
页: [1]
查看完整版本: KYTool简单破解教程