本帖最后由 侃遍天下无二人 于 2022-7-20 20:00 编辑
注:https://www.52pojie.cn/forum.php ... 31&pid=43326634 给出了一种更好的方法,欢迎前往查看
论坛中各路大佬貌似都在通过分析算法、替换rsa密钥等实现激活Typora,我不一样,我手里还留着个beta版,只要不升级就能一直用下去
但最近发现beta版用不成了,会提示版本已经过期,请到官网下载新版
调整系统时间后,程序可以正常启动
于是有了以下思路:
写一个C程序,通过它获取系统时间并保存到变量中,然后调用命令行设置系统时间到2021/01/01,再调用命令行启动Typora,最后再次调用命令行恢复系统时间
代码如下:
[Asm] 纯文本查看 复制代码 #include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
void get_format_time_string(char *str_time) //获取格式化时间
{
time_t now;
struct tm *tm_now;
char datetime[128];
time(&now);
tm_now = localtime(&now);
strftime(datetime, 128, "%Y/%m/%d", tm_now);
// printf("now datetime : %s\n", datetime);
strcpy(str_time, datetime);
}
int main(int argc,char** argv)
{
char date_now[128] = {0};
get_format_time_string(date_now);
char cmd[128] = {0};
char* date_fmt = "date %s";
if(argc>=2){
sprintf(cmd,date_fmt, argv[1]);
} else{
sprintf(cmd,date_fmt, "2021/01/01");
}
//将系统时间回调
system(cmd);
//启动程序
if(argc >= 3){
sprintf(cmd,"start %s", argv[2]);
system(cmd);
} else {
system("start Typora.exe");
}
sprintf(cmd,"date %s",date_now);
_sleep(3000);
//恢复系统时间
system(cmd);
printf("%s", cmd);
// printf("timestamp:%lld, format time:%s", curr_time, date_now);
return 0;
}
程序需要管理员权限才能正确运行,应当放到和Typora.exe相同的目录,开发使用的全部都是标准库,理论上兼容所有windows系统
Typora(beta) + 已编译好的启动器: https://wwd.lanzouj.com/b00pv72de 密码:3vwb |