(3)网游千炮捕鱼OL签名网络验证分析
今天朋友给我说游戏登录不上了,什么原因呢,提示说非法客户端,问题来了,有无升级客户端呢,他说没有,好吧,那应该是服务器的网络验证,客户端预留了一个判断的功能使用工具1. ProxyDroid2. Charles3. AndroidKiller4. Reflector先试试到底验证的啥,下载一个新的客户端,不做任何修改,直接重新编译打包签名。把原包拉进AndroidKiller,点击编译
结束后,把安装包拉进手机中,安装运行,游戏提示非法客户端,如下图不用想了,签名验证呗。
在dex里先试试关键字符串搜索,普通和Unicode编码都搜索不到
好吧,那进入dll搜索看看,也搜索不到,怎么办呢,可能是网络验证,那就试试咯。用ProxyDroid装到手机,PC端用 Charles抓包抓个游戏进入时候的数据包,看看有无有用的信息
这个是个签名认证,发送的KEY如果是正版的,发送他服务器,服务器返回的就是OK,如果不是正版,服务器就验证失败,反悔的值就是error这下好办了,通过这个字符串找函数呗进入Assembly-CSharp.dll搜索字符串
找到这个函数,一眼明了,发送KEY以及接受服务器返回信息的函数,不过是布尔值类型,那就简单啦,直接强制把他改为ture,不让他返回false用reflexil直接改
OK,保存,重新打包游戏
编译签名后,装入手机,进入游戏没问题,,好了,过验证了。结束~
Windfeng风
2015.1.18
原帖地址:http://blog.sina.com.cn/s/blog_5755b93d0102vjf2.html
看一下我是坐sofa{:5_117:} 老师转了一手好帖子,谢谢。 新手一问,
为什么在dex和 dll 里搜查不到,就直接判断是伺服器验证, 而检测验证的部分在DLL里?
有没有可能在so文件做判断呢? 楼主你这么给力你爸妈知道吗?: 5 啥也不说了,顶楼主!: 5 感谢分享 感谢分享!!!! 太有天赋了,分析真快 casogrta 发表于 2015-1-29 16:34
新手一问,
为什么在dex和 dll 里搜查不到,就直接判断是伺服器验证, 而检测验证的部分在DLL里?
有没有可能 ...
我也有这样的疑惑,一般验证不在DEX里就在SO里 效率真高
页:
[1]