61阅读

永恒之塔登录系统障碍-《永恒之塔》狩猎系统

发布时间:2017-09-10 所属栏目:免费

一 : 《永恒之塔》狩猎系统

  狩猎系统

  AION狩猎很简单,跟大部分网络游戏差不多,使用物理和魔法攻击怪物。

  杀死怪物后,点选怪物便可观看怪物物品掉落列表,可以自己选择捡取某些物品,也可利用SHIFT+左键直接捡取全部物品。

  游戏中可使用鼠标左键或者TAB键查找并锁定目标。当目标锁定后,目标下方将出现红色的圆圈。

《永恒之塔》狩猎系统

  锁定目标后,双击鼠标左键或者技能快捷键进行攻击

《永恒之塔》狩猎系统

  狩猎动作 / 眼神变化

  基本上天魔两族都有战斗动作的变化,而魔族部分还多了眼神变化

《永恒之塔》狩猎系统

  上图左边为非战斗状态,右边为战斗状态,装备与武器拿法也不同。

《永恒之塔》狩猎系统

  眼神部分,非战斗时魔族眼神是黑色,而战斗时会发光(非常酷)

二 : 玩转12306之系统登录

【申明:本文所涉及的技术和分析的目的都是为了学习和交流,任何人使用文中所提的技术或成果做出的违法事情与我无关,大家购买火车票还是去12306官网上去购买。(www.61k.com)】

从今天起,我开始分析12306网站的Http请求,以及编写一个客户端工具,废话不多说,这篇文章的重点是分析登录。

常规的登录思路:账号+密码,稍微有点防范意识的:账号+密码+验证码,高级点的:账号+密码+验证码,其中密码加密。我们看看12306他是采用了哪些策略。

首先进入12306的官网,尝试下登录,然后抓包,这里有个技巧,最好登录的时候用错误的密码或者验证码进行登录。

12306登录 玩转12306之系统登录

如上图,发起了两个Post请求(一般提交的动作,跟踪post类的请求)

我们先不管第一个请求是干嘛的(肯定是用的~),看看第二个请求,第二个请求显然提交登录的动作,继续抓包看看它到底提交了哪些参数。

12306登录 玩转12306之系统登录

 我们分析下参数的意义和来源:

longinRand:969这个目前不得而知,refundLogin:N 这个写死就行了,refundFlag:Y 这个不得而知,loginUser.user_name:用户名,user.password:密码,randCode:验证码,

NzYxNDgz:N2RlNzU1YWQ0ZTE5M2NiYg== 这个不得而知,动态参数。

这个时候我们回头看看第一个请求,看他返回的是什么:

{"loginRand":"969","randError":"Y"}

至此,我们知道了longinRand,refundFlag是通过第一个请求得到的,soga...

那么动态参数我们怎么取得呢?

继续观察,https://dynamic.12306.cn/otsweb/loginAction.do?method=init的源码(这个是初始化登陆页面,不要问我怎么知道的,观察,你懂的)

发现里面有这么一段:

<script src="/otsweb/dynamicJsAction.do?jsversion=5022&method=loginJs" type="text/javascript"></script>

这段脚本是干嘛的呢。。。果断下载下来,研究下,发现了奥妙:

var inputObj=$('<input type="hidden" name="'+keyVlues[0]+'" value="'+encode32(bin216(Base32.encrypt(keyVlues[1],keyVlues[0])))+'" />');

这个type为hidden的文本框,它的name为value度是动态取值的,注意到这句脚本里面gc()的方法 里面有一句var key='MzUyNzc0NQ==';

这个显然就是我们的key了,那么value值了,通过阅读源码知道 ,原来这个方法是检测是否存在刷票插件,如果存在value=value+'0',否则value=value+'1';

那么它是如何检测存在刷票插件的呢,接着看脚本

var cssArr=['selectSeatType',' ev_light',' ev_light ','fishTimeRangePicker','updatesFound','tipScript','refreshButton','fish_clock','refreshStudentButton'

,'btnMoreOptions','btnAutoLogin','fish_button','defaultSafeModeTime','ticket-navigation-item'];

var idArr=['btnMoreOptions','refreshStudentButton','fishTimeRangePicker','helpertooltable','outerbox','updateInfo'

,'fish_clock','refreshStudentButton','btnAutoRefresh','btnAutoSubmit','btnRefreshPassenger'

,'autoLogin','bnAutoRefreshStu','orderCountCell','refreshStudentButton','enableAdvPanel','autoDelayInvoke','refreshButton','refreshTimesBar','chkAllSeat'];

var keywordArr=[{
   key:".enter_right",values:["亲","抢票","助手"]
  }
  ,{
   key:".cx_form",values:["点发车","刷票"]
  }
  ,{
   key:"#gridbox",values:["只选","仅选","checkBox","checkbox"]
  }
  ,{
   key:".enter_w",values:["助手"]
  }
  ] ;

原来,这个脚本作用有2个,一个是检测页面是否挂载了刷票的脚本工具,一个是动态生成一个密钥。看来12306的确被刷票工具搞得够惨,不得不应对了,因为这个脚本是动态生成的,所以12306可以定期生成这些关键词库,来防止,这个对于一般的刷票工具可以起到一定得作用,但是昨天我看了下猎豹的刷票的源码(仅举一例):

<button id="FriSep272013100801GMT08001" type="button">♣ 刷  票</button>

猎豹也够牛的,估计是上次12306更新了防刷脚本后,猎豹直接把自己的脚本上的控件ID都动态化了。。。。

言归正传,刚才我们看到了动态key的产生,实际就是去请求https://dynamic.12306.cn/otsweb/loginAction.do?method=init,然后得到<script src="/otsweb/dynamicJsAction.do?jsversion=5022&method=loginJs" type="text/javascript"></script>,进一步得到那个js的地址,然后从脚本中提取到var key=的值,这个就是动态key,那么动态value呢,刚才说过value值是检测刷票插件用的,咱直接无视,value为1111(因为它检测了4次)。

继续看这句, value="'+encode32(bin216(Base32.encrypt(keyVlues[1],keyVlues[0])))+'",显然动态密码是经过加密的,传进的值就是动态key,动态value。怎么调用这个加密方法呢,我的做法是直接提取它的脚本加密函数为放到一个文件,然后用C#调用(详见:)

提取到的密码脚本如下:

12306登录 玩转12306之系统登录12306登录 玩转12306之系统登录

function bin216(s){  var i,l,o = "",n;  s += "";  b = "";  for(i = 0,l = s.length;i < l;i ++ ){  b = s.charCodeAt(i);  n = b.toString(16);  o += n.length < 2 ? "0" + n : n;  }  return o;  };  var Base32 = new function(){  var delta = 0x9E3779B8;  function longArrayToString(data,includeLength){  var length = data.length;  var n = (length - 1) << 2;  if (includeLength){  var m = data[length - 1];  if((m < n - 3) || (m > n))return null;  n = m;  }  for(var i = 0;i < length;i ++ ){  data[i] = String.fromCharCode(data[i] & 0xff,data[i] >>> 8 & 0xff,data[i] >>> 16 & 0xff,data[i] >>> 24 & 0xff);  }  if (includeLength){  return data.join('').substring(0, n);  }  else{  return data.join('');  }  };  function stringToLongArray(string, includeLength){  var length = string.length;  var result = [];  for (var i = 0;i < length;i += 4){  result[i >> 2] = string.charCodeAt(i) | string.charCodeAt(i + 1) << 8 | string.charCodeAt(i + 2) << 16 | string.charCodeAt(i + 3) << 24;  }  if (includeLength){  result[result.length] = length;  }  return result;  };  this.encrypt = function(string, key){  if (string == ""){  return "";  }  var v = stringToLongArray(string, true);  var k = stringToLongArray(key, false);  if (k.length < 4){  k.length = 4;  }  var n = v.length - 1;  var z = v[n], y = v[0];  var mx, e, p, q = Math.floor(6 + 52 / (n + 1)), sum = 0;  while (0 < q -- ){  sum = sum + delta & 0xffffffff;  e = sum >>> 2 & 3;  for (p = 0;p < n;p ++ ){  y = v[p + 1];  mx = (z >>> 5 ^ y << 2) + (y >>> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z);  z = v[p] = v[p] + mx & 0xffffffff;  }  y = v[0];  mx = (z >>> 5 ^ y << 2) + (y >>> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z);  z = v[n] = v[n] + mx & 0xffffffff;  }  return longArrayToString(v, false);  };  };  var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  function encode32(input){  input = escape(input);  var output = "";  var chr1, chr2, chr3 = "";  var enc1, enc2, enc3, enc4 = "";  var i = 0;  do{  chr1 = input.charCodeAt(i ++ );  chr2 = input.charCodeAt(i ++ );  chr3 = input.charCodeAt(i ++ );  enc1 = chr1 >> 2;  enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);  enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);  enc4 = chr3 & 63;  if (isNaN(chr2)){  enc3 = enc4 = 64;  }  else if (isNaN(chr3)){  enc4 = 64;  }  output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);  chr1 = chr2 = chr3 = "";  enc1 = enc2 = enc3 = enc4 = "";  }  while (i < input.length);  return output;  };

View Code

OK,至此,我们需要的参数都搞定了,我们就可以模拟登陆了,最后捋一下登陆用到Http请求(按照顺序):

1.加载验证码,用于获取图片和cookie

https://dynamic.12306.cn/otsweb/passCodeNewAction.do?module=login&rand=sjrand(get)

2.加载https://dynamic.12306.cn/otsweb/loginAction.do?method=init (get),用于获取动态生成key的请求地址,得到的地址是https://dynamic.12306.cn/otsweb/dynamicJsAction.do?jsversion=123123&method=loginJs

3.请求https://dynamic.12306.cn/otsweb/dynamicJsAction.do?jsversion=123123&method=loginJs (get),得到动态key,然后调用加密js得到动态value

4.请求https://dynamic.12306.cn/otsweb/loginAction.do?method=loginAysnSuggest(post),得到loginRand,refundfLag,

5.构造参数,请求https://dynamic.12306.cn/otsweb/loginAction.do?method=login(post),然后解析返回的html。

最后上一张我写的登录的图:

12306登录 玩转12306之系统登录

敬请期待下一篇,玩转12306之购票查询。 

三 : 媒体称Google TV面临障碍或将改动系统

【赛迪网讯】1月4日报道,据国外媒体报道,Google TV系统首发受到市场评论家的强烈攻击后,美国媒体近日报道,谷歌计划在投入市场前对Google TV系统做些改动。

Google TV设计在特别的电视机或者视讯转换器STB上运行。日本的索尼公司和瑞士的外围设备制造商罗技公司已经有了这项技术。Google TV就是要将网络和电视结合在一起,而且用户还可通过电视用谷歌的Chrome 浏览器访问网页,数以千计的频道同样可以在它上浏览访问到。

另据《纽约时报》和《华尔街日报》消息,在即将召开的拉斯维加斯消费电子展会上,东芝、LG和夏普等公司计划展出带Google TV系统的设备,而谷歌现在却因系统再改动而需要推迟。

这已经不是Google TV第一次延迟,很多媒体已经没有期望他们的内容在Google TV上映,因为他们担心在Google TV的投入,将会如之前的两家影片和电视供应商Netflix 和 Hulu事件一样,影响了媒体的市场运作。

四 : 永恒之塔:免费后保证经济系统稳定 5.0开发中

2014年8月29日11点,永恒之塔正式启动免费运营。免费之后,永恒之塔将紧接着推出大型资料片《自由之战》,并推出了多项新玩法。日前,永恒之塔项目总监顾燕明就广大玩家关心的免费运营、新版更新等问题,接受了61k的专访。

相关阅读:免费时代到来 国服《永恒之塔》转为道具收费>>>

{{keywords}}最新图片
盛大《永恒之塔》项目总监 顾燕明

免费运营后将严打外挂 控制游戏内物价平稳

61k:永恒之塔运营5年来一直是时长收费,选择这个时间点向免费模式转型,是不是收入压力下的一种迫不得已呢?

顾燕明:之所以选择免费运营,是因为我们意识到,随着网游市场的发展和玩家需求的变化,永恒之塔需要做出更为主动的转型与调整。免费运营可以降低玩家接触、了解游戏的门槛,有助于吸引新玩家的加入,能够带给永恒之塔更大的发展机遇。

61k:有玩家担心转型道具收费之后,游戏内的经济系统会出现不稳定,物价发生大幅度波动。运营团队有做过这方面的考虑吗?

顾燕明:我们对于免费运营之后经济系统的运作,已经做了充分的准备。

其一是对游戏货币的控制。我们对游戏内基纳的产出进行了系统梳理,对怪物掉落和任务提供的基纳数量进行调整和优化,同时在免费模式下改进游戏内的交易渠道,保证游戏内物价的平稳。

其二是严厉打击外挂和打金工作室。考虑到全民免费的运营环境,我们提高了监控系数和质量,特别是对工作室打金行为,加大了监控力度。

其三,我们对游戏初期的基纳消耗进行了调整,取消了技能学习、烙印/神石安装等消费,同时增加玩家获取基纳的途径,让正常游戏的玩家可以保证基本的收支平衡和自给自足。

{{keywords}}最新图片

61k:免费之后,会不会需要投入比以前时间点卡更多的花费?

顾燕明:在新永恒之塔中,没有任何强制玩家消耗守护点的内容,相反,在游戏内商城、定时商店等收费项目中,还加入了使用基纳购买游戏道具的功能,因此玩家不必有不花钱就不能玩的顾虑。

61k:针对老玩家回流,运营方会推出一些相应的活动吗?

顾燕明:我们当然会针对老玩家回归做出充足准备。我们专门为老玩家提供了2亿元红包大礼,并策划了专属的运营活动,稀有外形、羽翼等道具100%中奖,这个活动将在《自由之战》更新后同步推出。

“自由之战”全新玩法介绍 NC正在有序开发5.0资料片

61k:能否介绍一下新资料片“自由之战”的中的新要素?

顾燕明:《自由之战》首创了允许同种族对战、最高容纳1600人的“跨服远征”,推出多种不同方式的野外BOSS争夺战斗,以及更富变化的要塞战和基地战,此外还对各个职业的重要技能做出了革命性改动。

在装备方面,《自由之战》新推出了“装备进化”玩法,允许玩家使用经验值强化部分顶级装备,在不进行更新换代的情况下继续提升角色实力;系统方面,《自由之战》革新了经济体系和交易系统,满足免费环境下玩家的交易需求。

{{keywords}}最新图片

61k:新资料片中提出了“跨服远征”的概念,据介绍是一种大型团队PK玩法,能具体介绍一下这个玩法的特色吗?

顾燕明:“跨服远征”是永恒之塔一个全新概念的团队PK玩法,它有以下几个特色:

1、多个服务器的天魔种族以团队为单位进入专门的地图“潘盖亚”作战,首次允许不同服务器的相同种族对战,打破了永恒之塔天魔对抗的固有逻辑。

2、每个团队上限100人,以军衔为标准划分作战人数的构成比例,保证各个团队的实力大体均衡,避免了原有要塞战天魔不失衡的弊端。

3、“潘盖亚”包括4块大陆,每块大陆可进入4支团队,每次"跨服远征"最高可容纳1600人进行多方大混战,称得上是永恒之塔的最高荣誉。

4、作战结束后占领4个中央要塞的团队,还可以进入潘盖亚野外和安特里夏觉醒地进行后续战斗,将要塞战、基地战和野外BOSS争夺战融为一体。

{{keywords}}最新图片

61k:新版本中有一个玩法叫动态侵袭,是不是就是传统网游里"动态事件"的概念,它和"动态事件"有何异同?

顾燕明:《自由之战》中的动态侵袭具有自己的特点:首先通过次元裂缝降临的机甲怪物气势十足实力强大,掉落也非常诱人,引发裂缝附近天魔团战的概率非常高,因此同普通的动态事件相比,PVP的性质和变化性非常浓厚;其次降临的机甲怪物,其等级会随着入侵地图的不同而进行动态调整,降临时间也在一定程度上具有随机性。

61k:NCSOFT这两年将研发精力用在了很多大作上,永恒之塔是否面临后续研发不足的冲击?

顾燕明:永恒之塔运营至今,仍然是NCSOFT在韩国网游市场上表现最好的产品。因此时至今日NC方面仍然在永恒之塔项目上保持有上百人的研发力量,后续5.0资料片的研发一直在有条不紊地进行中。国服方面,盛大游戏已经确定了永恒之塔的代理续约,接下来的思路是强化在本地化方面玩家的参与度,让运营更接近玩家的需求。

{{keywords}}最新图片

{{keywords}}最新图片

{{keywords}}最新图片

本文标题:永恒之塔登录系统障碍-《永恒之塔》狩猎系统
本文地址: http://www.61k.com/1070718.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1