今天朋友给我说游戏登录不上了,什么原因呢,提示说非法客户端, 问题来了,有无升级客户端呢,他说没有,好吧, 那应该是服务器的网络验证,客户端预留了一个判断的功能 使用工具 1. ProxyDroid 2. Charles 3. AndroidKiller 4. Reflector 先试试到底验证的啥,下载一个新的客户端,不做任何修改,直接重新编译打包签名。 把原包拉进AndroidKiller,点击编译
结束后,把安装包拉进手机中,安装运行,游戏提示非法客户端, 如下图 不用想了,签名验证呗。
在dex里先试试关键字符串搜索,普通和Unicode编码都搜索不到
好吧,那进入dll搜索看看,也搜索不到,怎么办呢,可能是网络验证,那就试试咯。 用ProxyDroid装到手机,PC端用 Charles抓包 抓个游戏进入时候的数据包,看看有无有用的信息
这个是个签名认证,发送的KEY如果是正版的,发送他服务器, 服务器返回的就是OK,如果不是正版,服务器就验证失败,反悔的值就是error 这下好办了,通过这个字符串找函数呗 进入Assembly-CSharp.dll 搜索字符串
找到这个函数,一眼明了,发送KEY以及接受服务器返回信息的函数, 不过是布尔值类型,那就简单啦,直接强制把他改为ture, 不让他返回false 用reflexil直接改
OK,保存,重新打包游戏
编译签名后,装入手机,进入游戏没问题,,好了,过验证了。 结束~
Windfeng风
2015.1.18
|