吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1892|回复: 5
收起左侧

[KeyGenMe] 一个简单的KeyGenMe,汇编写的

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

本帖子中包含更多资源

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

x

免费评分

参与人数 1热心值 +1 收起 理由
jaffa + 1 谢谢@Thanks!

查看全部评分

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

无名 发表于 2025-8-5 21:25
hash c语言算法
[C] 纯文本查看 复制代码
uint32_t hash(const char *s)
{
    uint32_t seed = 3735928559;//0xDEADBEEF
    uint32_t h = 3735928559;
    while (*s) {
        uint8_t c = *s++;
        h = (h * c + c) ^ seed; 
    }
    return h;
}


换成python:
[Python] 纯文本查看 复制代码
def hash_func(s):
    hash = 0xDEADBEEF
    for c in s:
        c = ord(c)
        hash = ((hash * c) + c) & 0xFFFFFFFF
        hash ^= 0xDEADBEEF
    return hash

print( hex(hash_func("xxxx")) == 0xA5C312F8)


貌似不能逆推出KeyGen(至少我不会,有大佬会的话希望能教教我)

只能暴力遍历
下面为暴力遍历的python代码:
[Python] 纯文本查看 复制代码
import string
import itertools

def hash_func(s):
    hash = 0xDEADBEEF
    for c in s:
        c = ord(c)
        hash = ((hash * c) + c) & 0xFFFFFFFF
        hash ^= 0xDEADBEEF
    return hash

TARGET = 0xA5C312F8
ALPHABET = string.printable.strip()      # 可打印字符全集(不含空白)
MAX_LEN  = 6                             # 先试 1~6 位,可以改大


if __name__ == '__main__':
    for length in range(1, MAX_LEN + 1):
        print(f"length : {length}")
        for s in itertools.product(ALPHABET, repeat=length):
            cand = ''.join(s)
            if hash_func(cand) == TARGET:
                print(f'Found: {repr(cand)}')
                return cand
    print('Not found in current range.')


好吧,发现KeyGen至少大于等于5位,我不想等了。

算了,直接改判断吧,
将.text:00401179(特征码:75 16 6A 00 68 53)改为 74 xxxx

结果展示:

本帖子中包含更多资源

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

x

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
wgz001 + 1 + 1 热心回复!
BrutusScipio + 1 + 1 用心讨论,共获提升!

查看全部评分

laos 发表于 2025-8-7 01:13
看了下 你这更倾向于CrackMe

没有任何参数参与计算, 只对输入的key进行类似哈希?然后和固定的结果进行比较~

要计算key, 只能进行碰撞了吧~ 或者对程序进行爆破
Lastwinter 发表于 2025-8-7 14:03
感觉这个好难

免费评分

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

查看全部评分

lxy105440550 发表于 2025-9-4 17:35
我有个密钥明文 能不能尝试帮我看下算法呢
M3351AN 发表于 2025-11-5 07:27
keygen有点难,或者说没有数学方法进行keygen

算法简单看了一下,带乘法和异或的非线性迭代,反推闭式解几乎不可能,一般也没法在可接受时间内爆破出来。
所以当成cm来做
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2026-2-14 18:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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