吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5455|回复: 28
收起左侧

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

[复制链接]
悲剧小白 发表于 2017-7-15 23:57
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

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


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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 4吾爱币 +4 热心值 +3 收起 理由
785606235 + 1 + 1 我很赞同!
守护神艾丽莎 + 1 + 1 我很赞同!
1294279706 + 1 鼓励转贴优秀软件安全工具和文档!
浪迹v + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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

简单的写了一下。。(看不懂我说的没事 反正代码说的很清楚了)
[C#] 纯文本查看 复制代码
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 就是注册成功
[C#] 纯文本查看 复制代码
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赋值
[C#] 纯文本查看 复制代码
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

这个注册码仅仅先于今天(除非改过系统时间)
过了今天注册码就变了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 4吾爱币 +4 热心值 +3 收起 理由
本物天下霸唱 + 1 怎么能反汇编成源码?
byh3025 + 1 + 1 用心讨论,共获提升!
悲剧小白 + 1 + 1 很好,讲的很明白
Niuer + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

 楼主| 悲剧小白 发表于 2017-7-16 06:39
黑龍 发表于 2017-7-16 00:33
我不会玩C#    不知道是不是   不知道怎么不能修改代码

都逆到源码了,这是什么软件?
痴迷仙剑 发表于 2017-7-16 00:22
黑龍 发表于 2017-7-16 00:33
我不会玩C#    不知道是不是   不知道怎么不能修改代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
头像被屏蔽
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__

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

我不会C# 我只是看其他老师使用的dnspy所以想学习一下 截图是猜的
黑龍 发表于 2017-7-16 03:59
jixun66 发表于 2017-7-16 07:45
都到这一步了... 把注册机搞出来呀 _(:3__

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

还有 谢谢老师指点
wangsheng66 发表于 2017-7-16 04:20

嘿嘿。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表