1.负载均衡层查找游戏服务器
http://dogfight.z2live.com/api/game_servers/available?gameVersion=3.1.0&udid=我的UDID不告诉你&jailbroken=1&firmware=iPhone%20OS%204.2.1&bid=com.z2live.modernAirCombat&deviceType=iPad HTTP/1.1
{“game_server”:{“uri”:”zp://174.129.115.190:4234“,”name”:”gameserver”}}
偷偷上传机器是否越狱的数据,鄙视一下。
2.与游戏服务器通信(正题)
接下来通过ext-json over TCP与服务器通信,基本步骤:conntect, (getInappProducts,) getConfigFileNames,validateFiles, gameCenterLogin, getShareConfig, (getInappProducts,) (getPromoPoppuInfo,) logEvent,updateGameData,…游戏会在后台不停的getInappProducts和logEvent。直到游戏退出。
connect:
依然上报了是否越狱的数据,前六个字符是剩余包长度,下同。
000245{“req”:0,”ack”:-1,”to”:”rcpn”,”data”:{“gameVersion”:”3.1.0″,”udid”:”我的UDID不告诉你”,“jailbroken”:true,”firmware”:”iPhone OS 4.2.1″,”bid”:”com.z2live.modernAirCombat”,”deviceType”:”iPad”},”cmd”:”connect”,”ses”:”connect”}
validateFiles
…(这个数屈据包总是只有半个),”c189a4e6eee224463fdb1cf73311780092946f71″,”wep_gun_basic.xml”:”6f2a7765ad68937623bdd2e7c54e77051f687de5″,”wep_missile_CM_1.xml”:”6e329eeb7ccf40a0f8bd3ddf388ef4144e29beee”,”wep_missile_t1a.xml”:”3a51c0a396c047ed0cfe71f7347f3a4cb1bbcd0d”,”wep_gun_t3b.xml”:”50cd16edd3766ab6916d249fc5bb9c49adef7d7f”,”GameSettings.xml”:”6abe04633b7e4b3c1eacf6f623c618572134d303″,”jujuRemoteManifest.plist”:”9b8b635c11c7893c6a60ec35df4f1e4bcf27966b”,”wep_gun_t2a.xml”:”9134c81a48f4af313f44c2e548878bb6b6276aa7″,”GameSettings.json”:”a96bf707de72a4f7ae43d41e59c1563bcef7581c”}},”cmd”:”validateFiles”}
gameCenterLogin (gamelogin前已经通过iOS API与游戏中心通信获取ID和昵称信息)
00012{“req”:6,”ack”:5,”to”:”auth”,”data”:{“gameCenterId”:”G:我的ID”,”nickname”:”我的昵称”},”cmd”:”gameCenterLogin”}
logEvent 每日优惠窗口关闭事件,记录得还真细,发射导弹你咱没记录呢。
000205{“req”:17,”ack”:17,”to”:”clientEvents”,”data”:{“timedEvent”:false,”SkillRating”:”1600+”,”Total Time Played”:”First 60 Minutes”,”eventName”:”ItemOfTheDayFullScreenMenu_Close“,”Level”:”25″},”cmd”:”logEvent”}
logEvent 哇咔咔,打到108波了,其实没打,我把服务器骗了。
000205{“req”:24,”ack”:24,”to”:”clientEvents”,”data”:{“timedEvent”:false,”SkillRating”:”1600+”,”Total Time Played”:”First 60 Minutes”,”eventName”:”ReachedSurvivalWave“,”Level”:”25″,“wave”:”108″},”cmd”:”logEvent”}
结束语:
游戏协议基本上是明文文本协议,没有数据加密和数据合法性校验。在涉及到购买的地方有记录日志,但是在游戏关键事件如击落飞机等没有记录和加密数据包。
近期评论