昨天和@angelic47 一起破解某程序时遇到的问题。


0x01 起因

昨天又开始破解某程序了,程序是什么暂且不谈,该程序是网络验证,通过请求服务器获得授权信息,我们萌萌哒的47动态调试找到了请求的内容,并确认了返回的数据结构,我去写伪造的服务端,改host,vps上测试安装成功,一切看起来如此顺利。

blob.png

于是就认为成功了,准备开始在自己的服务器上部署了,结果47却踩到了坑

blob.png

我惊异之,于是尝试在自己的另一个vps上部署,也遇到了同样的问题

0x02 发展

于是各种对比,以为是伪造服务端输出格式的问题,一阵折腾后无果,47决定开大,直接nop掉相关检测代码


blob.png

然而并没有什么卵用

于是各种怀疑,校准服务器时间,47疯狂找暗桩中。。。

一筹莫展之际,突然注意到了一个关键区别,所有调试都是在64位系统上进行的,而要安装的vps却是32位系统,于是在另一个64位的vps上尝试安装,一次成功。

0x03 结尾

盯着代码疑惑时,突然注意到了一个东西:授权过期时间2199-12-31

这时猛然想起曾经看到过的一个东西:2038年问题

于是赶紧修改伪造服务端的代码,授权截止日期改为2038-1-18,然后重新尝试启动软件,成功启动。

blob.png