悲剧小白 发表于 2017-7-15 23:57

自己做的一个CM,稍有难度

闲来无事,自己做一个CM,新手可以尝试挑战


由于不让上传exe,只能打个包

下载CrackMe是不花CB的,请放心下载

zbnysjwsnd8 发表于 2017-7-16 11:32

本帖最后由 zbnysjwsnd8 于 2017-7-16 11:40 编辑

简单的写了一下。。(看不懂我说的没事 反正代码说的很清楚了{:301_1001:})
private void ok_Click(object sender, EventArgs e)
{
    this.inputN++;
    this.input = this.inputText.Text;
    if (this.input.Equals(this.right))
    {
      MessageBox.Show("破解成功");
      this.flag = true;
    }
}
这段代码就是说 如果输入的注册码 = this.right 就是注册成功
private void CrackMe_Load(object sender, EventArgs e)
{
    this.date = this.GetSystemDate();//取出当前的时间(年 + 月 + 日 (比如2017年7月16日 取出来就是2017716))
    //取出当前的月份并转换成字符串 记为s1
    //取出当前的天数并转换成字符串 记为s2
    //a1 = StringToInt(s1 + s2)
    //取出当前的天数并转换成整数记为a2
    //则a = inputN * (a1 + a2)
    this.a = (int.Parse(DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString()) + int.Parse(DateTime.Now.Day.ToString())) * this.inputN;
    this.ok_Click("", null);
    if (this.flag)
    {
      this.right = null;
    }
    else
    {
      this.right = this.a + this.date + "52pojie";//正确的注册码是IntToString(a) + data + "52pojie"
    }
}

但是凭这些还不知道正确的注册码是什么 因为不知道inputN是多少。
然后就找 哪里给inputN赋值
public CrackMe()
{
    this.date = "";
    this.inputN = 1; //就在这里
    this.a = -1;
    this.input = "";
    this.right = " ";
    this.flag = false;
    this.components = null;
    this.InitializeComponent();
}

这样注册码应该清楚了。今天是2017年7月16日
从上面收集的信息可以得出:
s1 = 7
s2 = 16
则a1 = StringToInt(s1 + s2) = StringToInt(716) = 716
a2 = 16
则a = inputN * (a1 + a2) = 1 * (716 + 16) = 732
则right = IntToString(a) + this.data + "52pojie" = "732" + this.GetSystemDate(); + "52pojie" = "732" + "2017716" + "52pojie"= "732201771652pojie"
故注册码为732201771652pojie
这个注册码仅仅先于今天(除非改过系统时间)
过了今天注册码就变了。

悲剧小白 发表于 2017-7-16 06:39

黑龍 发表于 2017-7-16 00:33
我不会玩C#    不知道是不是   不知道怎么不能修改代码

都逆到源码了,这是什么软件?

痴迷仙剑 发表于 2017-7-16 00:22

10KB都不到的EXE。骚操作

黑龍 发表于 2017-7-16 00:33

我不会玩C#    不知道是不是   不知道怎么不能修改代码

zenaiwen 发表于 2017-7-16 00:41

zcp220010 发表于 2017-7-16 02:35

还没学会……

爱飞的猫 发表于 2017-7-16 03:45

黑龍 发表于 2017-7-16 00:33
我不会玩C#    不知道是不是   不知道怎么不能修改代码

都到这一步了... 把注册机搞出来呀 _(:3__

没记错 dnspy 可以下断点,你把 `this.right` 的值取出来追个码也好

黑龍 发表于 2017-7-16 03:58

jixun66 发表于 2017-7-16 07:45
都到这一步了... 把注册机搞出来呀 _(:3__

没记错 dnspy 可以下断点,你把 `this.right` 的值取出 ...

我不会C# 我只是看其他老师使用的dnspy所以想学习一下 截图是猜的

黑龍 发表于 2017-7-16 03:59

jixun66 发表于 2017-7-16 07:45
都到这一步了... 把注册机搞出来呀 _(:3__

没记错 dnspy 可以下断点,你把 `this.right` 的值取出 ...

还有 谢谢老师指点

wangsheng66 发表于 2017-7-16 04:20


嘿嘿。
页: [1] 2 3
查看完整版本: 自己做的一个CM,稍有难度