前言

尝试逆向macOS下的Typora,顺便记录一下。

成功案例

搜索相关文章看到成功破解 Win、Linux(Electron)的文章以及工具:

文章中分析(win|linux)addLicense 流程如下,macOS 上使用原生 webkit 开发,估计思路差不多:

Untitled

自己动手

直接打开 Hopper 分析搜索 License 找到了 LicenseManager 类:

Untitled

看到一个关键字为 activate 的方法,签名如下:

/* @class LicenseManager */
-(void)activate:(void *)arg2 with:(void *)arg3 force:(char)arg4 callback:(void *)arg5 {

/*
    - arg2  -> email
    - arg3 -> license
    - arg4 -> force
    - arg5 -> callback
*/

分析 LicenseManager.activate 其方法流程:

Untitled

但是我不知道传入的 callback 是什么,为了搞清楚整个流程,想使用 firda 来打印下activate传入的参数:

$ frida-trace -i "activate*" Typora
Attaching...
[1]    4229 killed     frida-trace -i "activate*" Typora

进程直接被杀掉了 emmm 算逑!继续静态分析吧。

(win|linux) addLicense 流程中的最后一步出现的 decrypt关键字,根据这个关键字搜索到了核心的加解密 Crypto 类:

Untitled

Powered by Kali-Team