游戏是某易的某飞,申明水平很菜,帖子也很水,
是基于一个开源的逆向自己来瞎折腾的,我其实也没啥进展,只是觉得找对了方向,分享一下经验。算不算原创了,我也不好说,这个开源的项目是10年以前了,作者早就没
弄了我猜测要么某易给了封口费,要么被制裁了。项目github上有:SSchnitzler/XinFeiFei,另外一个作者改了给mySql的版本新飞飞模拟器-老飞飞公益网
版本都比较老,VS2012版本的。高版本运行需要把里面的加密动态库重新生成一下,原作者的要有老版本VS,我就用的是另外一个作者的包。
说说我为啥来研究了个残端了,这个游戏说真的被渣渣后端给玩废了的,对不起前端做的UI,侮辱了我的青春。最近想进去看看,注册账号,上来就给我整破防了。
上图官方。
2017年2.1.466版本,还在裸奔状态,这就是为什么挂漫天飞的原因
查一条大佬分享的知乎(非常建议新手看,清晰明了,就不试了VMP不是我等凡人能碰的)
对VMProtect_v3.x加壳后的软件进行脱壳
我只能说欺负下我这种小白还行,稍微有点经验的,没一点用,我看别人是勾一堆,他这个查出来只勾了一个,可能是膨胀了会影响游戏运行,他们也不想大改,貌似是没啥挂了,
可能是人气低没人玩,别人懒得研究了。
声明我对破解最新端不感兴趣,老端是不需要破解的只需要修改server.ini(这个文件本身是不会生成的只有启动游戏才会生成,我自己放一个进去,用游戏的启动EXE直接启动)
我就图个乐呵,换换时装,换换装备,带带宠物,要是能飞行也可以,慢慢研究。NPC, 怪物,任务,我都不太感兴趣,就为了看看风景。这个Q萌的UI真不错。放在现在看也还行
抓包,密钥种子1087355680,不要问我为啥知道,跟10多年前一样的配方。为啥抓包,后面说的原因。
第一虐,开发环境,VS2012太老了,用了17 19 22 最终明白了就是把加密解密的动态库重新生产一下就好了,当然装给12的环境,其他版本也就能正常用了
这个端服务器设计很不友好,文件夹套娃,看的真心累,我想着学习个框架,重构下,大约在冬季。第一个问题是数据有Item的表,但是背包里面的物品不能加载,进入游戏功能
正常。那就说明数据结构没有大的问题。我仔细分析最终找到数据的ID是实际物品itmeID,数据库tiemID其实是数据表的索引,所以加载不成功,找出这个问题到没多困难,
难得是他套娃的文件夹管理把人整的没脾气。主要是我菜IDE跳转用不好。当时哪个开发者为啥没继续了有没有种可能被这种低级的错误搞心态了,此处,大佬们需要一个我这
样的小弟。这个就解决了部分物品加载的问题。
第二虐,装备属性attr看lua脚本里面是字节数组。就自己试着改了好几个版本就是都不行,贴出源码,大佬也可以帮我分析下
第三虐。这就是我为啥去抓游戏的包了,抓到这个包,解包,然后分析出来就行了。这个坑就有点大了,为了抓包我也是煞费苦心,抓了得会解密,的写个加解密脚本,写脚本是
指导元宝写的,惨痛的经历,贴加解密的接口,算法太长了就不贴了,感兴趣的可以去看看,大模型都说很不安全,某易的新版本用了AES加密,我不不太懂AES,反正他这个就
是Socket服务器拿到一个种子,种子都明文了,我觉得至少加点盐啥的吧。结果是惨败,他改了封包,有了新的加密,我脚本是花费了好多口水让AI写好了,但是没达到效果,
这个里面的坑是种子给动态库生成密钥,加密解密密钥看着是一样的。加密解密的算法也是一样的,AI分析说会影响到key 但是我没找到key的作用,好像也没被用到,反正我的
第一个脚本失败,方法是自己new byte[]{},放到脚本解密。
恭喜成功。搁在两年前我现在已经成功了,就用Wireshark进游戏里面,把需要的玩法,玩一遍,解密数据,再照着数据,再结合客户端解包的lua脚
本,一点点堆积木,服务器就慢慢的被逆向出来了。
反给垂耳,我把你的反作弊相关的代码去掉,服务器你问我作弊了没,我说没做就哦了,也不要虚拟机器,一台电脑来个白开不过分吧,当然实现
很难很难,加个复杂的应答机制就挂了。
反作弊的究极形态就是云游戏,我给你播放视频,你上传操作指令,算法啥的跟你没关系,你也不用DMA了,你作弊得分析我传输的视频流,然后
再做程序,要是发现你老小子作弊,压根就不会封号,我就给你延迟发包,给你试点坏,你收到的包就是有问题的,让你老小子被虐的死去活来,
你顺着网线来打我吧,我VIP10大佬,都是主角光环,谁让他不爽我就按他,你没证据说我不公平。哈哈,有问题我就说网络问题。
最后抓包官方游戏数据,解密失败,更新了我Xdbg了下用了AES加密。应该是用得不伦不类,我实在是不想研究WMP,AES。
第四虐,没办法了,没办法了,没办法了,爱盘的工具再下一遍吧,从明天起好好学破解,PE Xdbg IDA 整活,说实话我没用认认真真的练习过脱壳,
解密,汇编也基本是0基础,但是我有AI不是了,先xdbg新客户端,我感觉我又行了,上来就VMP,绕过反调试,还真绕过了,也没完全吧,用
的是插件,没绕过是调试你节奏慢了,还是会报调试,跑飞。一统操作猛如虎,自己是个二百五。得到的唯一有用消息就是加解密用了AES。老老实
实的Xdbg没壳的老版本,反正我也是没准备折腾新版本,改了封包后,不修改不能直接连非官方的服务器了。
这个地方就是有点经验分享了,我用xdbg,为啥不OD不会英文呗。程序加载首先修改设置,把线程入口对勾勾上,没人教我,也没查,自己瞎翻
出来的,血的教训就是在那狂点步进几个钟头,别问为啥,为啥就是二百五呗,原因就是游戏不像其他的软件,其他的软件是注册一次,之后就可
以一直用,游戏是我输入了账号,密码点击登录,就加载你的个人数据进入了,到登录界面时,他基本上把能加载的资源都加载了,你要手动
到登录界面,只能说手疼。(有个二货条件步进20000行,点了两个小时,我也不认识他,你们笑话他吧)这里我们先用线程入口来找到游戏
加载的界面,然后再这个附近位置分析进程,查看字符,搜索能确定的信息,附近打断点。也很麻烦,因为不同的事情可能再不同的线程处理,有
的已加载,分到到具体还得去打断点,打完断点,你重新加载的时候又可能要不停的跳。上来就又给自己加难度啊,多线程。
有中文最最最让我喜欢的是有流程图,快捷键别的没记住这个记住了G,外挂?框图的作用是能让我这种小菜鸡简单的理清楚跳转的脉络。对哪
个地方分析的越细,流程图就越复杂。这个觉得是对新手非常友好的功能。
些断里面。在加解密的位置肯定会有个断开的,数据一定是加密了发送出去,解密了传递到程序。
还需要一个DeepSeek帮我们写代码。
我接下来就是好好学学习一下Xdbg,有看到这里的大佬,给你准话,这次这条路能通不了。
· 今 日 推 荐 ·
本文内容来自网络,如有侵权请联系删除
原文始发于微信公众号(逆向有你):PC逆向 -- 逆向一个网络游戏的痛苦经历
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论