Typora注册表分析以及简单粗暴的无限免费试用

查看 144|回复 14
作者:chanmao   
关于这篇文章
昨天 Typora 给我推送了一个更新,更新完无限免费试用的 bug 被修好了。
于是现在不能免费用 Typora 了。
本文没有从加密方面永久激活 Typora ,在后续版本中仍有可能被修复。
本文将分享破解 Typora 的过程。
需要直接用的也可以直接看文末链接(GitHub储存库)
破解过程
Typora 一定需要什么东西来标注安装时间。首先怀疑 APPDATA。发现删除原有的 APPDATA 文件夹后,Typora 实重置了。但是这样一点也不好,每次都要重新配置。
这时,恢复原有的 APPDATA 文件夹,发现 Typora 仍然在试用期。说明 Typora 并没有用 APPDATA 标注安装时间。
接下来怀疑注册表。推测 Typora 会根据 APPDATA 判断是否是第一次打开,并且直接重置安装时间。
先移除 APPDATA,然后用火绒安全分析工具抓取 Typora 写注册表的行为。


c26f688d-b2cf-4c8c-a7bb-5b18bbb43629.png (89.67 KB, 下载次数: 0)
下载附件
2025-2-25 17:30 上传

筛选 typora.exe 和 REG_setval 后只剩下这么一点。
直接进 regedit 查看,发现 IDate 值为 2/25/2025,SLicense 为空。
怀疑 IDate 表示安装时间,SLicense 可能与许可证有关。
存在直接修改 SLicense ,直接激活的可能,但是多此一举了,还得逆向代码。
尝试直接修改 IDate,最终得出结论:
[ol]
  • Typora 确实根据这个值判断试用期
  • Typora 会判断时间是否合法,例如不能通过设置为未来的时间,长时间激活,只能每 15 天手动修改
    [/ol]
    制作工具
    直接使用 Python 修改注册表,开机自启,即可定时重置试用期
    代码实现不难,可以参考开源仓库:https://github.com/zzsqjdhqgb/RenewTypora

    时间, 注册表

  • chanmao
    OP
      

    以防有人没看到,储存库里是有编译过的版本的,可以拿来直接用
    sunye88888   

    感谢楼主的思路,
    楼主提供的软件感觉略有不方便,所以自己根据楼主的思路写了一个
    软件每次打开都会修改成今天的时间,这样就不用隔段时间再去特意打开修改了
    软件运行后,修改完注册表会自动启动 Typora 软件,启动后会自动关闭
    使用时,要将软件放在 Typora 统一目录下,以后直接启动这个工具就可以了


    001.png (53.4 KB, 下载次数: 0)
    下载附件
    2025-2-27 08:03 上传



    02.png (76.39 KB, 下载次数: 0)
    下载附件
    2025-2-27 08:03 上传

    hackgsl   

    试了下确实可行,也可以使用bat脚本
    [Asm] 纯文本查看 复制代码@echo off
    setlocal enabledelayedexpansion
    :: 获取当前日期并格式化为MM/DD/YYYY
    for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (
        set month=%%b
        set day=%%c
        set year=%%a
    )
    :: 检查日期格式是否正确
    echo Current date: %month%/%day%/%year%
    :: 检查注册表路径是否存在
    reg query "HKEY_USERS\{修改为您电脑上对应的路径}\SOFTWARE\Typora" >nul 2>&1
    if errorlevel 1 (
        echo The specified registry path does not exist. Please check the path.
        goto end
    )
    :: 更新注册表中的值
    reg add "HKEY_USERS\{修改为您电脑上对应的路径}\SOFTWARE\Typora" /v IDate /t REG_SZ /d "%month%/%day%/%year%" /f
    if errorlevel 0 (
        echo Successfully updated the registry value to %month%/%day%/%year%.
    ) else (
        echo Failed to update the registry value.
    )
    :end
    pause
    jafck   


    Carinx 发表于 2025-2-26 09:55
    看到楼主用火绒监控分析typora的行为,我在想还有没有类似这种单独功能的软件?或者在线的网站?

    微软的 SysinternalsSuite, 新出的 YDArk 。以前还有款 用VB写的,比火绒剑要早 PCHunter
    crystalZ   

    我的破解版的不能导出pdf,大佬有办法解决吗
    shaunkelly   

    最新激活流程
    步骤一:部署基础环境
    ‌下载指定版本‌
    获取安装包
    安装时取消勾选 ‌自动更新‌ 选项‌1
    步骤二:篡改注册表数据
    ‌修改试用截止日期‌
    打开注册表编辑器(Win+R → 输入 regedit)
    定位至 计算机\HKEY_CURRENT_USER\SOFTWARE\Typora
    双击 IDate → 修改数值为 2099-01-01(无此键值需手动创建‌REG_SZ‌类型)‌12
    ‌锁定注册表权限‌
    右键 Typora 注册表项 → 选择 ‌权限‌ → 选中 Administrators 用户组
    勾选 ‌完全控制‌ 为拒绝 → 应用设置并忽略警告弹窗‌23
    步骤三:验证与加固
    ‌功能验证‌
    重启 Typora → 查看帮助菜单中显示 ‌试用期剩余:99999天‌
    若失败,检查注册表路径是否包含空格或特殊字符‌3
    ‌防升级加固‌
    在防火墙中禁止 Typora 联网(通过高级安全规则拦截 typora.exe)‌1
    使用批处理脚本定期重置注册表值(参考‌4的自动化逻辑)‌4
    chanmao
    OP
      


    shieep 发表于 2025-2-27 10:50
    写个version.dll
    hook,自动修改注册表不是更爽

    是的,但是不会
    自己也懒得学这么复杂的,能用就行
    不过这确实是个好方法,会更好用
    shieep   

    可能这部分算法还有问题
    [Python] 纯文本查看 复制代码import random
    def generate_valid_string():
        # 定义允许的字符集
        char_set = "L23456789ABCDEFGHJKMNPQRSTUVWXYZ"
        # 生成前 22 位随机字符
        base_part = ''.join(random.choice(char_set) for _ in range(22))
        check_code = ""
        # 计算校验码
        for n in range(2):
            total = 0
            for i in range(0, 16, 2):
                total += char_set.index(base_part[n + i])
            total %= len(char_set)
            check_code += char_set[total]
        # 拼接完整字符串
        full_string = base_part + check_code
        # 插入连字符进行格式化
        formatted_string = '-'.join([full_string[i:i+6] for i in range(0, len(full_string), 6)])
        return formatted_string
    # 生成一个符合标准的字符串
    valid_string = generate_valid_string()
    print(valid_string)
    johnversion   

    厉害的,我还停留在1.0之前的版本
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部