吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1410|回复: 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] 纯文本查看 复制代码
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, 2024-12-15 03:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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