吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1744|回复: 9
收起左侧

[Android KeyGenMe] 刚出炉的Android KeyGenMe

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

小白第一次发,大家可以练练手

本帖子中包含更多资源

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

x

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

 楼主| wzp1995 发表于 2024-7-29 23:19
本帖最后由 wzp1995 于 2024-7-30 07:26 编辑

我来理一下思路
1.直接搜关键字:注册

2.看到成功之后还有一个判断,成立才显示成功,否则失败


3.直接复制粘贴

4.再往上看,到这里基本可以看出注册码是由getFingrtPrint+日期(其实不是日期)组成,这里app就会有时间限制,
还有一种,就是不需要日期判断,trim长度不长于6位,可以无限制使用


5.跟进来看看


(这里str变量我提供一个固定数值“20251111”,有兴趣可以尝试用代码写出来)



5.再往上看,到了解密环节了,点进去看看


6.这是它的解密代码,我们是要给未加密的字符串进行加密


7.这就是加密代码了

8.这里提供一组 (机器码:812177 注册码:52c1573cfb33af3b9d03d8ea8e2c8d45)

本帖子中包含更多资源

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

x
wfghim 发表于 2024-7-26 18:05
虽然看不懂,但是逻辑是这一块了。

本帖子中包含更多资源

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

x
怜渠客 发表于 2024-7-26 23:49
本帖最后由 怜渠客 于 2024-7-26 23:51 编辑

该函数中DESede解密的密钥长度须为24,你软件中恒为16,会一直解密失败

本帖子中包含更多资源

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

x
LXGZJ237 发表于 2024-7-28 11:49
瞎搞搞定了,但不是楼主想要的KeyGenMe

本帖子中包含更多资源

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

x
 楼主| wzp1995 发表于 2024-7-30 07:30
怜渠客 发表于 2024-7-26 23:49
该函数中DESede解密的密钥长度须为24,你软件中恒为16,会一直解密失败

我解密和加密都是用的一个密钥,并没有出现你说的情况
头像被屏蔽
q75962619 发表于 2024-7-30 21:45
提示: 该帖被管理员或版主屏蔽
WXjzc 发表于 2024-8-2 11:50
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from hashlib import md5
from Crypto.Cipher import DES
from Crypto.Util.Padding import pad
from datetime import date
import re
 
machine_code = input('请输入机器码:')
while True:
    end_date = input('请输入注册码截止日期(如2024-1-1):')
    pattern = r'[0-9]{4}-[1]{0,1}[0-9]-[1-3]{0,1}[0-9]'
    ret = re.findall(pattern,end_date)
    if ret != []:
        break
 
def get_finger_print(s1,s2):
    _md5 = md5()
    _md5.update((s1+s2).encode('utf8'))
    return _md5.hexdigest()[:6]
 
def set_date(_date:str):
    date_split = _date.split('-')
    year = int(date_split[0])
    month = int(date_split[1])
    day = int(date_split[2])
    start_date = date(2019,12,1)
    end_date = date(year,month,day)
    time = (end_date-start_date)*23
    return hex(time.days)[2:]
 
def encrypt(trim,end_date):
    salt = 'yao123456'
    key = salt[:8]
    _3des = DES.new(key.encode('utf8'),DES.MODE_ECB)
    padded_data = pad((trim+end_date).encode('utf8'),DES.block_size)
    cipher = _3des.encrypt(padded_data)
    return cipher.hex()
 
salt = 'yao123456'
trim = get_finger_print(machine_code,salt)
end_date = set_date(end_date)
print(f'你的注册码是:{encrypt(trim,end_date)}')

你使用desede加密,实际是3des,但是由于密钥的两个8字节是相同的,退化成了des,我不知道为什么java对这个不报错?反正在python里就得改成des才行
 楼主| wzp1995 发表于 2024-8-2 20:13
WXjzc 发表于 2024-8-2 11:50
[mw_shl_code=python,true]from hashlib import md5
from Crypto.Cipher import DES
from Crypto.Util.Pa ...

不好意思,我对python不是很熟,无法解答你的问题,等待有缘人
WXjzc 发表于 2024-8-5 14:50
wzp1995 发表于 2024-8-2 20:13
不好意思,我对python不是很熟,无法解答你的问题,等待有缘人

我贴出来的脚本是可以正常运行的注册机。
其实最主要的就是你使用3des这个加密方式,但是密钥却是由两个相同的8字节组成,这是不对的,只是不知道为什么你那边能正常跑
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-3-30 20:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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