【软件逆向-【最新】Typora最新版的逆向过程分析】此文章归类为:软件逆向。
很少写教程,没写清楚的话请留言讨论
逆向分析准备
- 从typora的目录可以看出是electron开发的,
- 到resources目录中可以看到app.asar
- 使用asar命令进行解包,
- 解包后,出现atom.js,此js是加密的
- 存在一个main.node,用pe查看是dll
正式开始逆向
- IDA载入main.node,接着使用findcrypt搜索加密特征
- 出现3个加密特征,最后一个是aes的s逆盒信息
- 交叉引用最后一个,直接可以找到其调用处,
![](http://resources.yxfzedu.com/images/article_images/906543_DS6MNRSJHDYVYQV.webp)
- 继续向上查找交叉引用,最终很容易定位这里,记录下代码偏移
![](http://resources.yxfzedu.com/images/article_images/906543_CKXJPBD39D96HUJ.webp)
- 先打开typora ,之后x64dbg附加主进程,然后就可以看到main.node模块
- 定位AES解密处,然后下断点,
- 重新运行调试,此时F9运行到断点处,最终确定key和iv
1 2 3 4 | / / key
0D 8E 84 1E B8 3A C8 10 62 08 F4 57 70 BC 39 B9 D8 B8 AB 60 B2 FB 46 13 28 4F B4 97 B6 8B 0C 6A
/ / iv
47 A9 1A C7 3C FA A5 AF 60 E1 E1 D5 43 01 E8 48
|
8.接着就可以随便找到工具,然后解密atom.js,
有了js代码,其他的都好说了,不过我发现有个问题,目前没解决
我无论使用什么工具,包括自己写的也是一样,我只要不去修改解密后的atom.js,然后原封不动的加密回去,typora可以正常运行,另外修改几个字符也能正常运行,而若是改动比较大,就直接报错,
动态调试,发现其解密后的内容前面多了一些乱码,且根据改动大小有所不同,所以猜测应该不是完整性校验,可能是typora使用的AES算法有bug吧,具体我没继续研究了,因为也没啥必要,
要是有知道的我也请教下,是不是typora的问题。
好了先写到这里,有新情况再写出来。
-
更多【软件逆向-【最新】Typora最新版的逆向过程分析】相关视频教程:www.yxfzedu.com