diff --git a/honeycam_patcher.py b/honeycam_patcher.py index 294b6aa..ab3da0c 100644 --- a/honeycam_patcher.py +++ b/honeycam_patcher.py @@ -71,8 +71,6 @@ PATCHES = [ 'sub_1401558B0 (Edition read -> return 1)'), (0x1577D0, b'\x4C\x89\x4C\x24\x20\x4C', b'\xB0\x01\xC3', 'sub_1401581D0 (online verify -> return 1)'), - (0x155490, b'\x48\x89\x5C\x24\x18\x55', b'\xB0\x01\xC3', - 'sub_140155E90 (registry write -> return 1)'), (0x0F8F09, b'\x0F\x85\x51\x05\x00\x00', b'\x90\x90\x90\x90\x90\x90', 'NOP: key length check'), (0x0F8F16, b'\x0F\x8C\x44\x05\x00\x00', b'\x90\x90\x90\x90\x90\x90', @@ -83,8 +81,6 @@ PATCHES = [ 'NOP: @ position check'), (0x0F8F54, b'\x74\x1B', b'\xEB\x1B', 'jz -> jmp (skip lm.dll key validation)'), - (0x0F8C90, b'\x48\x89\x5C\x24\x20\x4C', b'\xB0\x01\xC3', - 'sub_1400F9690 (register function -> return 1)'), ] @@ -290,14 +286,27 @@ def do_restore(): def generate_keygen(email): - """生成注册码""" + """生成注册码 + + Honeycam 注册码格式: 26 字符 + - 前 8 位: 日期 YYYYMMDD (正则 [2][0-1][0-9][0-9][0-1][0-9][0-3][0-9]) + - 后 18 位: 任意字符 + """ + import datetime seed = int(hashlib.md5(email.encode()).hexdigest()[:8], 16) rng = random.Random(seed) - segments = [] - for _ in range(4): - seg = ''.join(rng.choices('0123456789ABCDEF', k=8)) - segments.append(seg) - return '-'.join(segments) + + # 前 8 位: 日期 (2019-2021 年范围, 匹配正则 [2][0-1][0-9][0-9]) + year = rng.randint(2019, 2021) + month = rng.randint(1, 12) + day = rng.randint(1, 28) + date_prefix = f"{year}{month:02d}{day:02d}" + + # 后 18 位: 随机字符 + charset = string.ascii_letters + string.digits + suffix = ''.join(rng.choices(charset, k=18)) + + return date_prefix + suffix def do_keygen():