[FFXIV]通过hook启动器的日志来辅助分析

近期的半个月,白天有空闲时间学习,晚上直接拿程序练手。

最近在玩FFXIV,发现国服某sdo的登陆器是真的J2的烦。

每次都给你安装XX卫士,玛德,安装也就算了,这玩意跟个泰迪一样,见exe就注入。

就拿你这zz下手好了,你不是喜欢注入吗?

那我只好强上干掉这玩意自己实现登陆了。

 

结果打脸了,分析整个过程硬是用了半个月,最后也只用猥琐的办法实现了半脱离启动器进行双开。

 

通过抓包分析,发现这玩意是走http登陆的!我起初还不信,断了下ws32,结果堆栈一回溯真的就是http。。。

启动器登陆->令牌发送给游戏

算法逆向了一下,是手写的RSA(1024,兼容2048)+DES

这部分其实还是比较复杂的,因为考虑到以后可能会发布我的启动器,所以干脆直接走了扫码协议,随便日了他的令牌(这部分就不放了),不得不感叹下移动端就是简单,3分钟就搞定了。

但获取到令牌的流程就比较复杂了,这鬼东西用了极其弱智的IPC机制进行通信,在IDA分析的时候,发现了大量的日志函数,可实际上打开log文件夹,并没有看到几条日志,这是为什么呢?

 

通过调试发现这个dword_578810是3,显然这是个日志等级的判断。

 

那么我们只要把里面的两个条件nop掉就可以了。

再打开日志看是不是清晰多了呢?

只是抛砖引玉,小弟对成熟端游的逆向不精,完整的分析整个游戏的协议也没那么容易。

PS:本萌新在静语庄园,求大佬带啊(x

“[FFXIV]通过hook启动器的日志来辅助分析”的一个回复

  1. 其实对那个dword进行list xref,可以找到这个值是在程序里面被一个函数设定的,而且那个函数会读取相同文件夹下面的log.config文件里面的内容,所以只需要在log.config文件里面写个trace就可以给所有的程序修改log level,无需hook

发表评论

电子邮件地址不会被公开。 必填项已用*标注