六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 34|回复: 0

写了个开心网的外挂,同时学习了些开心网的一些小技巧

[复制链接]

升级  75.55%

819

主题

819

主题

819

主题

探花

Rank: 6Rank: 6

积分
2511
 楼主| 发表于 2013-1-28 09:45:06 | 显示全部楼层 |阅读模式
<div class="postBody">版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://eric925.blogbus.com/logs/36785846.html
最近做blogbus插件广场项目,闲暇之余写了个开心网的抢车位外挂,在开心网的程序架构上学到了一些经验。
首先我注意到抢车位这个游戏停留在页面上数据是会即时更新的,而第一反映是ajax,然而为了控制服务器负载,是不应该不停产生请求的,分析后发现果然没有反复请求,而是在第一次访问页面的时候,把每个车位的盈利上限、下限、单位时间增长值等参数交给客户端,通过客户端js进行页面数据的更新。这样能有效降低请求数,同时提高用户体验。
其二,开心网的很多数据通过json传输给客户端,客户端js拼装数据展现给用户。比如侧边栏、还有很多插件的内容页。这样的好处是数据和页面的耦合度降低,调整显示效果和实现用户自定义化更容易,同时一定程度上减轻了服务器端的处理逻辑,提高开发的效率。在这方面,blogbus很多地方是通过document.write来实现,而不是json数据,虽然简化了服务器端处理逻辑,但在把数据部署在页面上的灵活性大大减少。
其三,开心网抢车位的反外挂代码。在抓包的时候看到一个acc变量,但它的值通过明文却没有搜索到,于是我意识到这是一个js生成的anti-bot校验码。最后在抢车位的页面找到如下代码:
<div class="dp-highlighter">

  • vargab16="c0af48b44127";
  • varacc3="cbaktr0f1";
  • functionacc()
  • {
  • varacc=d7d65.length+gab16.charCodeAt(2);
  • returnacc;
  • }

  • vard7d65="7ec2d7bd3de3";


  • varg761c="90fc480bdfca";
  • varacc3="cbaktr0f1";
  • functionacc()
  • {
  • varacc=d8a22.charCodeAt(1)+g761c.length;
  • returnacc;
  • }

  • vard8a22="640240afe45c";
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表