设为首页 收藏本站
查看: 992|回复: 0

[经验分享] PHP实现的某SNS手机游戏的简单外挂

[复制链接]

尚未签到

发表于 2017-4-10 10:08:56 | 显示全部楼层 |阅读模式
  首先简单介绍一下这个游戏,手机游戏大航海是人人网上一个纯手机游戏,目前只针对手机校内用户。 手机访问m.xiaonei.com->应用->大航海来体验这个手机游戏的乐趣。
  现在随着SNS的流行,WEB游戏也开始流行。有时候并不是为了玩游戏,更多的时候是遍历一遍好友。回到外挂这个话题上来。
  作为手机游戏,受到手机浏览器的限制,这个WAP游戏不可能做的很炫很复杂。所以弄个外挂还是非常简单的。
  首先要感谢人人网,为我们提供了免登录书签,这样凭借一串字符串就可以登录人人网,而不需要再模拟手机用户登录的过程了。下面代码当中的sid=****就是我的登录大航海游戏的书签。出于众所周知的原因,这串字符是不能公布的。
  说起来这个原理非常简单:获取页面->分析链接->执行操作。
  涉及到两个个关键的PHP函数:
  1、file_get_contents():用来取得URL的内容。
  2、preg_match_all():正则匹配所有可执行操作的链接。每一个可执行的操作对应的URL字符串都有明显特征,所以找起来也很方便。
  下面附上完整的PHP代码。
  <?php/*** 手机人人网(http://m.renren.com)* 大航海外挂* * @author BookMoth* @version 0.1* @copyright BookMoth* * @todo 捕捞价值高的鱼、自动转移新海域、给好友放鲨鱼、好友……**/define('BASE_URL','http://mapps.renren.com/');$url = "http://m.renren.com/apphistory.do?appid=31662&sid=*********************************&u*b*s*&htf=646";//捕鱼游戏的入口链接地址。$reg_a = '/<a href="//([^>]*)">.+?<//a>/';$cmdChain = new CommandChain();$cmdChain->addCommand(new OpRemoveShark());//清除鲨鱼操作$cmdChain->addCommand(new OpSell());//卖鱼操作$cmdChain->addCommand(new OpFish());//捕捞操作while (true) {$content = file_get_contents($url);preg_match_all($reg_a,$content,$result);//提取所有链接foreach ($result[1] as $item) {$cmdChain->runCommand($item);//根据链接执行操作}$remain_second = get_remain_time($content);//获取刷新时间$refresh_second = $remain_second?(($remain_second < 7200)?$remain_second:7200):3;sleep($refresh_second);//睡觉。。}function get_remain_time($content){$reg_hour = '/(/d+)小时/u';$reg_minus = '/(/d+)分/u';preg_match($reg_hour,$content,$hour);preg_match($reg_minus,$content,$minus);$remain_hour = $hour[1]?$hour[1]:0;$remain_min = $minus[1]?$minus[1]:0;$remain_sec = ($remain_hour*60+$remain_min)*60;echo date("Y-m-d H:i:s",time())."[0]还需{$remain_hour}小时{$remain_min}分完成/n";return $remain_sec;}class CommandChain{private $_commands = array();public function addCommand($cmd){$this->_commands []= $cmd;}public function runCommand($url){foreach( $this->_commands as $cmd ){if ( $cmd->onCommand($url) )return;}}}class OpRemoveShark{//清鲨鱼public function onCommand($url){if(strpos($url,'removeShark?')){//发现鲨鱼$result = file_get_contents(BASE_URL.$url);if(strstr($result,'成功清除鲨鱼,获得5点经验')){echo date("Y-m-d H:i:s",time())."[0]成功清除鲨鱼,获得5点经验/n";}else{echo date("Y-m-d H:i:s",time())."[1]发现鲨鱼,但是清除失败/n";}return true;}else{return false;}}}class OpSell{//卖出public function onCommand($url){if(strpos($url,'sell?')){$result = file_get_contents(BASE_URL.$url);if(strstr($result,'成功卖出')){preg_match('/<span class="red">([^<]+)<//span>/',$result,$info);echo date("Y-m-d H:i:s",time())."[0]{$info[1]}/n";}else{echo date("Y-m-d H:i:s",time())."[1]卖出失败/n";}return true;}else{return false;}}}class OpFish{//开始探测public function onCommand($url){if(strpos($url,'fishDetect?')){$result = file_get_contents(BASE_URL.$url);if(strstr($result,'捕捞')){//捕捞preg_match('/<a href="//(voyage_wap//fish//fish/?[^" mce_href="//(voyage_wap//fish//fish/?[^"]+)">/',$result,$fish);if($fish[1]){$result = file_get_contents(BASE_URL.$fish[1]);echo date("Y-m-d H:i:s",time())."[0]捕捞开始/n";}}else{echo date("Y-m-d H:i:s",time())."[1]探测失败/n";}return true;}else{return false;}}}?>
  运行的结果大概是这样的:
DSC0000.jpg

  最后说下为什么要写外挂,主要是有人偷鱼偷的很happy,我稍微有点小郁闷。写外挂的重要意义在于:
  为了减少渔民的损失,打消几个别有用心的不法分子别人劳动果实的险恶意图。在广大青少年当中树立高尚的社会主义价值观,强化青少年法律意识,杜绝青少年违法犯罪行为,共同构建社会主义和谐社会……
  其实大航海是个非常不错的应用。感谢他的作者。
  --
  欢迎讨论下面的问题:
  1、对于受到客户端限制的WEB/WAP游戏,如何检测和预防上面的这种自动化脚本?
  2、代码本身的问题,比如设计模式,算法等等。
  不欢迎下面的问题:
  1、这个外挂怎么用啊?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-362765-1-1.html 上篇帖子: PHP API封装的一个实例,来自EtherPad 下篇帖子: 根据表结构自动生成一个PHP类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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