1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

百万亚瑟王脱机挂原理

Posted on 2013-09-05 22:10  1957  阅读(2327)  评论(0编辑  收藏  举报

声明:仅供兴趣研究,切勿用于非法目的,一切于本文无关.

温馨提示:用外挂会被封号

--------------------------

最近沉迷于百万亚瑟王。。。

被里面的土豪吓尿了,作为休闲玩家,就是在实验室无聊了跑跑图而已,也不求满破,收集下卡牌而已T_T(其实就是穷逼)

最近听说有外挂了,还是脱机的。。。

真厉害!我从来就不会分析这些协议啊什么的。。。

不过呢,我还是抓了个包。。。

 

在Bluestacks虚拟机里面运行的,好像可以用什么app可以直接在里面抓,谁叫我不会呢。

直接在外面用wireshark抓就好了~

然后。。。然后。。。。尼玛,这个游戏用的http协议。。。

比如。。跑图的时候是

POST /connect/app/exploration/explore?cyt=1 HTTP/1.1
User-Agent: Million/100 (GT-I9100; GT-I9100; 2.3.4) samsung/GT-I9100/GT-I9100:2.3.4/GRJ22/eng.build.20120314.185218:eng/release-keys
Accept-Encoding: gzip, deflate
Content-Length: 129
Content-Type: application/x-www-form-urlencoded
Host: game2-CBT.ma.sdo.com:10001
Connection: Keep-Alive
Cookie: S=bbub1k9sfmdk7k9queo******
Cookie2: $Version=1

area_id=SHJURfU8bNi3%2FaneWmTF5w%3D%3D%0A&auto_build=HJQrxs%2FKaF3hyO81WS2jdA%3D%3D%0A&floor_id=HJQrxs%2FKaF3hyO81WS2jdA%3D%3D%0A

 

很明显了,Cookie是一个appkey,就像http的seesion一样来区分身份的。

真的就这么简单么。。。我写个Ruby脚本来验证下

跑了80%

脚本如下

require 'net/http'

url = 'http://game2-cbt.ma.sdo.com:10001/connect/app/exploration/explore?cyt=1'
uri = URI.parse(url)
http = Net::HTTP.new(uri.host , uri.port)
r =  Net::HTTP::Post.new(uri.path)
r['User-Agent'] = ' Million/100 (GT-I9100; GT-I9100; 2.3.4) samsung/GT-I9100/GT-I9100:2.3.4/GRJ22/eng.build.20120314.185218:eng/release-keys'
r['Accept-Encoding'] = 'gzip, deflate'
r['Content-Length'] = '129'
r.content_type = 'application/x-www-form-urlencoded'
r['Host'] = 'game2-cbt.ma.sdo.com:10001'
r['Connection'] = 'Keep-Alive'
r['Cookie'] = 'S=bbub1k9sfmdk7k9queo******'
r['Cookie2'] = '$Version=1'
# params = {}
# params['area_id'] = "area_id=SHJURfU8bNi3%2FaneWmTF5w%3D%3D%0A&auto_build=HJQrxs%2FKaF3hyO81WS2jdA%3D%3D%0A&floor_id=HJQrxs%2FKaF3hyO81WS2jdA%3D%3D%0A"
# puts params['area_id']
r.body = "area_id=SHJURfU8bNi3%2FaneWmTF5w%3D%3D%0A&auto_build=HJQrxs%2FKaF3hyO81WS2jdA%3D%3D%0A&floor_id=HJQrxs%2FKaF3hyO81WS2jdA%3D%3D%0A"
# r.set_form_data(params)
res = http.request(r)
puts res.code

执行输出200,表示http成功请求

好,游戏中返回,然后再进入这个地图发现

哈哈哈,成功的往前迈出了一步!!!

 

很简单吧,这个游戏好像操作也不多,都抓一下就能写出脱机挂啦.

不过有个地方要说下,就是请求的数据里面有&千万不要urlencode,不然&会被转意,就木有效果了,我被这个搞了好久T_T