实战记录:我跟午夜罪恶开发团队杠上了
我跟你们说,最近为了研究那个叫“午夜罪恶”的软件,我真是气得肝疼。每次它一出更新,那标题就写得像打了鸡血一样,《午夜罪恶\_立即下载\_更新日志》,搞得好像解决了什么世纪难题似的。但老用户都知道,它每次更新,都不是为了修复bug,而是为了把我们之前自己改出来的舒服功能,一股脑儿全给废了。
这回的更新日志我压根儿就没看。我心里清楚,这帮孙子就是又在藏东西。我决定,这回不再等别人放破解补丁了,我得自己动手,从头到尾扒一遍,看看他们到底玩什么花招。
实践过程:从文件对比到抓包拦截
第一步:锁定目标,先做备份。
我立马
把我现有的,也就是更新前那个能用的版本,整个目录都
打包压缩
了。这是教训,是血的教训。上次没备份,更新一覆盖,我花了好几个晚上才调好的配置和汉化文件,全没了。
第二步:下载更新,开始拆解。
我
点击了
那个“立即下载”。更新包贼大,下载速度还慢得要死。等它跑完,我
打开
了安装目录。我没有直接运行,而是用Beyond Compare
对比了
新旧两个文件夹。我主要
盯住了
几个关键文件:主执行文件、资源加载库,以及那个负责加密用户配置文件的DLL。
- 主程序文件:大小变了,时间戳变了。这是肯定的,他们肯定重新编译了。
- 资源库:变动不大,说明资源本身没动。
- 配置文件DLL:这个是重点。我
发现了
这个DLL文件变化最大,大小直接翻了一倍。
第三步:分析关键变动。
我
祭出了
我那个业余的逆向工具,直接
加载了
那个新的DLL。我主要
搜索了
关键字,比如哈希函数、校验、授权等等。果不其然,他们这回不是简单的换了个密钥,而是直接
换了一整套
用户验证流程。之前那个流程我早就摸透了,就是用一个简单的XOR异或加密。这回他们
升级成了
一个我叫不上名字,但看起来很复杂的SHA系列哈希验证。这意味着,任何非官方修改的配置文件,只要一运行,就会被程序发现,然后直接
重置
掉。
第四步:打补丁,绕开验证。
他们以为我看不懂那些代码,但我主要
找的就是
那个“判断”和“跳转”的位置。我花了一下午的时间,一步一步
调试
,终于
定位到了
那个判断程序是否合法的代码块。我的目的很简单:不求破解加密,只求让程序
以为
校验已经通过了。
我
在内存里改了几个字节
,让校验结果永远返回“真”。程序一跑,完美!我的那些自定义配置,又可以用了。
为什么我非要跟这个破软件死磕?
很多人可能觉得我为了一个游戏或者软件的配置,花这么大力气,是不是有点闲得蛋疼。我跟你们说,我做这些,不是为了省那几块钱,也不是为了显摆我的技术有多牛。我
坚持要自己解决
,是因为我讨厌那种被别人
掐着脖子
控制的感觉。
我为什么对这种事情这么敏感?
这要
扯回到
十年前了。那时候我刚毕业,进了一家做智能硬件的公司。我们那个产品,卖给客户之后,用户有所有的使用权对?但是公司为了控制成本,故意把核心功能
藏在了云端
有一次,老板为了逼走一个老员工,直接
停掉了
他负责的那个批次硬件的云服务。那位老员工找到我,说他投了所有的积蓄在那批货上,现在货全变砖了,客户天天上门骂。
我当时
吓傻了
。我
意识到
,我们卖出去的不是产品,是租期。一旦公司想收回权力,用户一点反抗的能力都没有。那位老员工3
倾家荡产
,老婆也和他离婚了。
这件事对我
打击太大了
。我当时就
下定决心
,凡是我能自己动手控制的东西,我绝不让别人随便
拿走权力
。那个硬件最终是我偷偷
改了固件
,让它脱离了云端控制,才算是救了他一条命。
当我
看到
“午夜罪恶”这回更新又在偷偷
加强控制
时,我心里那股火又
烧起来了
。我就是要
证明
,用户自己修改配置的权利,是任何公司都不能随便
剥夺的
这回的补丁我已经
做好了
,跑得非常稳定。实践记录到此结束。下一次,我打算看看他们那个所谓的“高级遥测功能”到底
偷走了
用户哪些数据。