gagmeng 发表于 2016-12-1 21:13:49

[12周年礼物 第11弹] hotkeycontrol8单字节图文和谐教程

本帖最后由 gagmeng 于 2016-12-1 21:15 编辑

软件介绍:
Hotkey control is the award winning and easy to use solution for creating keyboard shortcuts for routine tasks like opening files, changing system volume, controlling display brightness, typing frequently used text, controlling active windows and recording macros. Volume and brightness level are shown smoothly on screen similar to OS X on Macbooks. And, a handy Hotkeypanel ensures that you never need to remember all your hotkeys by letting you execute them quickly from a single easily accessible window. In addition to normal combination hotkeys, you can use single keys such as function or number pad keys.Additionally, you can remap your keyboard layout at a system level and customize your keyboard's key configuration to improve your productivity.官方主页:https://inchwest.com/hotkeycontrol/
破解过程:
1、打开软件随便信息进行注册,得到错误信息“Please enter a valid username and serial number”;
2、dnspy加载Hotkeycontrol.exe,搜索错误信息字符串
private void a(object A_0, EventArgs A_1)
{
    //注册码总长度15,除"-"长度为12,比如"111111---111111"
        if (this.d.Text == "" || this.c.Text == "" || this.c.Text.Length != 15 || this.c.Text.Replace("-", "").Length != 12)
        {
                MessageBox.Show("Please enter a valid username and serial number.", "Hotkeycontrol", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
        }
        global::f.a(string.Concat(new object[]
        {
                "https://inchwest.com/logistics/ln.php?cat=hotkeycontrol&evtname=",
                this.c.Text,
                "&evtval=",
                o.a(),
                "&t=",
                new Random().NextDouble()
        }));
        base.Hide();
        Application.DoEvents();
        this.k.Visible = false;
        this.l.Visible = true;
        base.Width = this.l.Width;
        base.Height = this.l.Height + 20;
        base.Top += 60;
        base.Left += 20;
        base.ControlBox = false;
        base.UseWaitCursor = true;
        base.Show();
        Application.DoEvents();
        new Thread(new ThreadStart(this.c)).Start();
}
3、进入new Thread(new ThreadStart(this.c)).Start();
private void c()
{
      Application.CurrentCulture = new CultureInfo("en-us");
      //此处if必须为false,即o.a(this.d.Text, this.c.Text)需返回true
      if (!o.a(this.d.Text, this.c.Text))
      {
                base.DialogResult = DialogResult.Cancel;
                return;
      }
      this.m.Invoke(new k.a(this.b));
      MessageBox.Show("Hotkeycontrol has been registered successfully.", "Hotkeycontrol", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
      base.DialogResult = DialogResult.OK;
}
4、继续进入if (!o.a(this.d.Text, this.c.Text));
internal static bool a(string A_0, string A_1)
{
    //此处只是判断是否能正常连接服务器,跟破解点无关
      string text = f.a("https://inchwest.com/serial8/test.htm");
      if (text == "" || text.Length > 50)
      {
                MessageBox.Show("Cannot contact registration server. Make sure you are connected to the internet.\n\nIf you continue to face this issue, please contact [email protected] specifying \nyour username, serial number and your machine id: " + o.a() + ".\n\nWe will send your computer's specific license to you within 1-2 business days.", "Registration issue", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return false;
      }
      text = f.a("https://inchwest.com/serial8/" + A_1.Replace("-", "") + ".htm");
      bool flag = false;
      bool.TryParse(text.Split(new char[]
      {
                '\n'
      }), out flag);
      if (flag) //此处IL指令为brfalse.s--IL opcode为2C 修改为brtrue.s--IL opcode为2D即可破解
      {
                f.d.serialNumber = A_1;
                f.d.strType = text.Split(new char[]
                {
                        '\n'
                });
                f.d.strName = A_0;
                f.d.strId = o.a();
                //很明显在写注册信息
                try
                {                  
                        XmlSerializer xmlSerializer = new XmlSerializer(typeof(Inform));
                        DES dES = DES.Create();
                        ASCIIEncoding aSCIIEncoding = new ASCIIEncoding();
                        ICryptoTransform cryptoTransform = dES.CreateEncryptor(aSCIIEncoding.GetBytes("seTTings"), aSCIIEncoding.GetBytes("SEttINGS"));
                        FileStream fileStream = new FileStream(f.f + "indata.x64", FileMode.Create, FileAccess.Write);
                        CryptoStream cryptoStream = new CryptoStream(fileStream, cryptoTransform, CryptoStreamMode.Write);
                        xmlSerializer = new XmlSerializer(typeof(Inform));
                        xmlSerializer.Serialize(cryptoStream, f.d);
                        cryptoStream.Close();
                        fileStream.Close();
                        cryptoTransform.Dispose();
                }
                catch (Exception)
                {
                        MessageBox.Show("Could not save registration data. Make sure that the directory from which you are executing has write permissions.", "Hotkeycontrol error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
                return true;
      }
      //验证是否是版本7的注册码,与破解无关
      text = f.a("https://inchwest.com/serial7/" + A_1.Replace("-", "") + ".htm");
      flag = false;
      bool.TryParse(text.Split(new char[]
      {
                '\n'
      }), out flag);
      if (flag)
      {
                MessageBox.Show("This serial number is registered for Hotkeycontrol 7 which is not valid for this major release.\n\nPlease visit www.inchwest.com to purchase a Hotkeycontrol 8 license at a significant discount.", "Hotkeycontrol - Old license", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
      }
      else
      {
                MessageBox.Show("Incorrect username or serial number. Please contact [email protected] for assistance.", "Hotkeycontrol error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
      }
      return false;
}
5、根据代码分析进行修改,定位待修改处的IL代码;

6、brfalse.s修改为brtrue.s,单字节破解需通过直接修改hex模式进行修改(使用工具查找对应IL代码的opcode);


7、hex修改和保存



破解前后展示:(特别强调注册码总长度15,除"-"长度为12,比如"111111---111111")

破解文件就不提供了,表哥们动手解决吧。

我们都爱月姐姐

lijun520 发表于 2016-12-1 21:22:17

支持大表哥。好工具,谢谢。

月无影 发表于 2016-12-1 21:23:19

好多年都不动手了,嘿嘿。

dlzc 发表于 2016-12-1 21:35:45

这个要来支持一下的。

东海浪子 发表于 2016-12-1 23:50:51

表哥,想学这个工具的使用

sndncel 发表于 2016-12-2 05:34:27

谢谢分享教程。。。支持一下呀。。。。

风雪夜 发表于 2016-12-2 08:31:48

感谢楼主分享教程。祝:论坛生日快乐!!!

jgs 发表于 2016-12-2 08:41:22

谢谢楼主分享教程,表哥求带!

zxxiaopi 发表于 2016-12-2 10:00:37

感谢分享过程,辛苦了

ruanjian 发表于 2016-12-2 12:39:12

学校里 谢谢啊
页: [1] 2
查看完整版本: [12周年礼物 第11弹] hotkeycontrol8单字节图文和谐教程