Typora 1.0.4版本破解

本帖最后由 Kvancy 于 2024-9-27 20:50 编辑

1. 找到app.asar文件解包得到License.js加密代码

根据火绒剑在系统日志里监控Typore的启动,找到可疑的asar文件,程序访问并读取了该文件,并启动了其中的main.node模块,疑似开发者对加密源代码的解密过程

 

 

找到app.asar文件,根据日志显示,可以猜测这个类似压缩包,问Bing得知

asar是一种用于打包Electron应用程序源代码的文件格式,它可以让应用程序更容易分发和运行。asar文件的工作原理是将所有文件连接在一起,不进行压缩,但支持随机访问。asar文件可以使用asar命令行工具或者electron-packager等工具来创建或解压

根据提示内容进行解压, asar extract app.asar unpacked

得到unpacked文件,貌似找到关于许可证的有关文件–License.js,Winhex打开看一眼

 

有种base64编码的感觉,难道只是base64编码加密?拖进CyberChef解密一下

 

可能还有一层或几层加密Typora 1.0.4版本破解插图

2. 从main.node文件找License.js的解密逻辑

根据火绒剑日志显示,在app.asar解包后运行了main.node模块,又根据前面License.js被加密了,可以推测main.node有可能运行时解密了License.js文件,先DIE看一眼main.node,DLL64位,IDA64打开,先不管其他的,shift+f12查找字符串

 

疑似有base64解密过程,交叉引用找到引用处伪代码 

根据Bing得知 

napi_get_named_property 是一个 Node-API 的函数,它的作用是从一个对象中获取一个指定名称的属性,并返回它的值。

 复制代码 隐藏代码
napi_status napi_call_function(napi_env env, napi_value recv, napi_value func, size_t argc, const napi_value* argv, napi_value* result);

其中,参数的含义是:

  • env: 当前调用 N-API 的环境。
  • recv: 要作为函数接收者的对象,通常是 this 的值。
  • func: 要调用的函数对象。
  • argc: 要传递的参数的个数。
  • argv: 要传递的参数的数组。
  • result: 用于接收函数返回值的指针。

分析得知,这段代码类似给v40进行解码,v40 =  base64.from(v38),v38又来自函数的第三个参数a3+8,猜测这个a3+8指向的就是密文的地址,动调验证下,x64dbg直接拖Typora,手动下一个main.node的断点,再根据IDA中给出的偏移计算出调试器里解密函数的地址,根据64位下寄存器默认传参顺序是ECX,EDX,R8,R9知道a3的值储存在R8中,所以R8+8指向密文地址,

本站资源来自互联网收集,仅提供信息发布
一旦您浏览本站,即表示您已接受以下条约:
1.使用辅助可能会违反游戏协议,甚至违法,用户有权决定使用,并自行承担风险;
2.本站辅助严禁用于任何形式的商业用途,若被恶意贩卖,利益与本站无关;
3.本站为非营利性网站,但为了分担服务器等运营费用,收费均为赞助,没有任何利益收益。
死神科技 » Typora 1.0.4版本破解

死神科技,因为专业,所以领先。

网站首页 24小时自动发卡
在线客服
24小时在线客服
阿里云自动发卡,购卡进群售后
12:01
您好,有任何疑问请与我们联系!

选择聊天工具: