吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1223|回复: 8
上一主题 下一主题
收起左侧

[CrackMe] Crackme

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

本帖最后由 TobyLee 于 2025-7-2 13:12 编辑


windows 32位,无壳


本帖子中包含更多资源

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

x

免费评分

参与人数 1热心值 +1 收起 理由
AG6 + 1 我很赞同!

查看全部评分

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

推荐
冰茶荼 发表于 2025-7-2 17:44
本帖最后由 冰茶荼 于 2025-7-2 17:52 编辑




[Asm] 纯文本查看 复制代码
v7 = VirtualAlloc((LPVOID)0x10000000, Size, 0x3000u, 0x40u);
申请一块内存,地址为 0x10000000,大小为 Size

memcpy(v7, Src, Size);
把 Src 的内容拷贝到 v7

for ( i = v3 + 1; v9 < strlen(v3); i = v3 + 1 ) v8 += v3[v9++];
计算输入密码每个字符的ASCII值之和,存到 v8;

for (v11 = 0; v11 < Size; v11++) v7[v11] ^= v8;
用 v8 对 v7 的每个字节做异或。
if ( *v7 != 77 || v7[1] != 90 )
检查 v7[0] 是否为 77,v7[1] 是否为 90

逆推密码
v7[0] == 77
v7[1] == 90
由于
v7[0] = Src[0] ^ v8
v7[1] = Src[1] ^ v8
所以 v8=Src[0] ^ 77 = Src[1] ^ 90
要让这个等式成立,必须Src[0] ^ 77 = Src[1] ^ 90
即 Src[0] ^ Src[1] = 77 ^ 90 = 23
所以,只有当资源的前两个字节异或等于23时,才有解。

src 指向资源 DLL_DATA 的内容,Src[0] 和 Src[1] 就是资源的前两个字节,使用Resource Hacker查看这资源的前两个字节

Src[0] = 0xEA,Src[1]= 0xFD



计算:0xEA ^ 0xFD = 0x17 = 23 满足条件

计算密码的ASCII和
v8 = 0xEA^0x4D = 167
构造密码
只需要输入ASCII和为167的字符串,长度不超过6。
比如:
a(97)+ F(70)= 167
b(98)+ E(69)= 167
c(99)+ D(68)= 167
可以用任意组合,只要ASCII和等于167,且字符数≤6。
所以答案可以是aF,bE,cD等任意相加ASCII和等于167的字符串
3#
 楼主| TobyLee 发表于 2025-7-3 08:32 |楼主
冰茶荼 发表于 2025-7-2 17:44
[mw_shl_code=asm,true]
v7 = VirtualAlloc((LPVOID)0x10000000, Size, 0x3000u, 0x40u);
申请一块 ...

对的 ,如果成非对称加密是否仍有解?
4#
薛定谔消失的弦 发表于 2025-7-3 10:37
冰茶荼 发表于 2025-7-2 17:44
[mw_shl_code=asm,true]
v7 = VirtualAlloc((LPVOID)0x10000000, Size, 0x3000u, 0x40u);
申请一块 ...

怎么做到的?
5#
薛定谔消失的弦 发表于 2025-7-3 10:39
本帖最后由 薛定谔消失的弦 于 2025-7-3 10:42 编辑
冰茶荼 发表于 2025-7-2 17:44
[Asm] 纯文本查看 复制代码
v7 = VirtualAlloc((LPVOID)0x10000000, Size, 0x3000u, 0x40u);
申请一块 ...[/quote]
[mw_shl_code=c,true]  if ( (int)Size > 0 )
  {
    do
      v7[v11++] ^= v8;
    while ( v11 < v10 );
  }
  if ( *v7 != 77 || v7[1] != 90 )
  {
    printf("\r\npassword err!\r\n");
    getchar();
    getchar();
    exit(-1);
  }

我只知道将分配的内容与v8进行异或运算,并判断第一和第二个元素不为77和90
6#
geesehoward 发表于 2025-7-3 10:55
密码不唯一,只要输入的字符串ascii相加的低字节值为0xA7即可。A7推导2楼已经给出,这里就不重复说了。至于楼主3楼说的非对称加密是否有解,理论上来说,非对称大概率是要爆破了,只要私钥足够长,都是相对安全的,但不是绝对安全。理论上可破,只是时间要多久的问题
7#
 楼主| TobyLee 发表于 2025-7-3 11:01 |楼主
geesehoward 发表于 2025-7-3 10:55
密码不唯一,只要输入的字符串ascii相加的低字节值为0xA7即可。A7推导2楼已经给出,这里就不重复说了。至于 ...

是的这里采用的异或加密,用于交流,而且给出了两个值用于验证。0XA7是key。非对称的发出来,浪费大家时间的会
8#
shuguang2121 发表于 2025-7-3 15:48
感谢分享

免费评分

参与人数 1吾爱币 -15 违规 +1 收起 理由
bian96 -15 + 1 警告:CM区禁止回复『与主题无关非技术内容』,违者重罚!

查看全部评分

9#
mxkgb 发表于 2025-7-7 07:41
感谢大佬 学习一下

免费评分

参与人数 1吾爱币 -15 违规 +1 收起 理由
bian96 -15 + 1 警告:CM区禁止回复『与主题无关非技术内容』,违者重罚!

查看全部评分

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

本版积分规则

返回列表

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

GMT+8, 2025-7-20 18:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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