吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2506|回复: 15
收起左侧

[KeyGenMe] C#算法新手破解

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

无壳无混淆,验证模块与主程序分开

本帖子中包含更多资源

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

x

免费评分

参与人数 2吾爱币 +5 热心值 +2 收起 理由
SakuraOuKa + 1 + 1 我很赞同!
涛之雨 + 4 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

零下八度 发表于 2021-3-28 12:31
本帖最后由 零下八度 于 2021-3-28 12:38 编辑

这强度还有待提升。。。。
随便说说:
IsCorrectSN 方法取决于求模表达式:result = (201919192329L % (long)AsciiSum(stringBuilder.ToString()) == 0L),
也就是:201919192329 % AsciiSum(s) == 0,由于 201919192329 = 349*263*3*733289,
那么只要 AsciiSum 返回 349、263、3、733289,其中一个数就ok,
我直接拿349做结果来构造:
因为IsCorrectSN 里面有个 ToUpper(),所以为了简单,全部用大写字母得了,
大写字母的ASCII码为:65-90
随便构造:349 = 65(A)+65(A)+65(A)+65(A)+89(Y)
演示注册码:AAAAY
过多的细节,什么横杠啊,大小写啊,数字啊,特殊字符啊,统统不管,完事儿~~

免费评分

参与人数 3吾爱币 +6 热心值 +3 收起 理由
chaifengbox + 1 + 1 我很赞同!
涛之雨 + 4 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wwh1004 + 1 + 1 我很赞同!

查看全部评分

zz100179 发表于 2021-3-29 07:26
c#对程序的保护很弱,不管怎么样都能把代码弄的清清楚楚,商业软件很少用
zlbwasd 发表于 2021-3-28 12:41
学到了很多!!!

免费评分

参与人数 1吾爱币 -1 收起 理由
涛之雨 -1 此为违规行为,请遵守论坛版规!

查看全部评分

大王大王 发表于 2021-3-28 12:58
看看学学

免费评分

参与人数 2吾爱币 -2 收起 理由
落红护花 -1 请勿灌水,提高回帖质量是每位会员应尽的义务!
涛之雨 -1 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

樱花劫 发表于 2021-3-28 15:18
学到了很多!!!

免费评分

参与人数 2吾爱币 -11 收起 理由
落红护花 -3 请勿灌水,提高回帖质量是每位会员应尽的义务!
涛之雨 -8 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

ps122 发表于 2021-3-28 15:18
零下八度 发表于 2021-3-28 12:31
这强度还有待提升。。。。
随便说说:
IsCorrectSN 方法取决于求模表达式:result = (201919192329L % (l ...

分析的很透彻
weikun444 发表于 2021-3-28 18:06
顶一下零下八度,本人不太懂算法,很羡慕懂算法的人
[C#] 纯文本查看 复制代码
		private void button1_Click(object sender, EventArgs e)
		{
			if (SNValidate.IsCorrectSN(this.textBox1.Text))
			{
				MessageBox.Show("注册成功");
			}
			else
			{
				MessageBox.Show("注册失败");
			}
		}



[C#] 纯文本查看 复制代码
	public static class SNValidate
	{
		// Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250
		public static bool IsCorrectSN(string s)
		{
			bool result;
			try
			{
				string[] array = s.Trim().ToUpper().Split(new char[]
				{
					'-'
				});
				StringBuilder stringBuilder = new StringBuilder("");
				foreach (string value in array)
				{
					stringBuilder.Append(value);
				}
				result = (201919192329L % (long)SNValidate.AsciiSum(stringBuilder.ToString()) == 0L);
			}
			catch
			{
				result = false;
			}
			return result;
		}

		// Token: 0x06000002 RID: 2 RVA: 0x000020F0 File Offset: 0x000002F0
		private static int AsciiSum(string s)
		{
			char[] array = s.ToCharArray();
			int num = 0;
			foreach (char c in array)
			{
				num += (int)c;
			}
			return num;
		}
	}
wildfire_810 发表于 2021-3-28 19:35
鼓掌,解释的很清楚
sina0022 发表于 2021-3-28 23:42
C#的功能很强大,正好要学习一下,感谢你
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 13:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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