尝试逆向macOS下的Typora,顺便记录一下。
搜索相关文章看到成功破解 Win、Linux(Electron)的文章以及工具:
文章中分析(win|linux)addLicense
流程如下,macOS 上使用原生 webkit
开发,估计思路差不多:
直接打开 Hopper 分析搜索 License 找到了 LicenseManager 类:
看到一个关键字为 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
其方法流程:
但是我不知道传入的 callback 是什么,为了搞清楚整个流程,想使用 firda
来打印下activate传入的参数:
$ frida-trace -i "activate*" Typora
Attaching...
[1] 4229 killed frida-trace -i "activate*" Typora
进程直接被杀掉了 emmm 算逑!继续静态分析吧。
(win|linux) addLicense
流程中的最后一步出现的 decrypt
关键字,根据这个关键字搜索到了核心的加解密 Crypto 类: