飞 的个人资料程序人生照片日志列表更多 ![]() | 帮助 |
|
9月21日 从零开始给开心网做外挂(一)开心网现在渐渐很流行了,里面有几个好玩的插件,主要有买卖奴隶、争车位、咬人这三个比较受欢迎,其中,买卖奴隶可控性不是很高,因为有时候这个规则比较难设置,优先买谁等等,要根据情况,有人参与一下才比较好。但是争车位和咬人就比较随意了,争车位只要换个位子就可以收钱,咬人随便咬谁都有经验,但是呢,它们都需要常常在线操作,对于时间不是很充裕的人,是一个负担。 那么,是不是有必要借助工具呢?现在网上已经有相应的工具了,功能也不错,不过,对于我们做软件的人来说,自己动手做一个也是不错的事情,练练手,而且也能顺便看一下别人的代码是怎么写的。 好,我们先拿这个争车位来分析。 怎么分析呢,给开心网写外挂其实比给什么网络游戏写外挂简单多了,网络游戏的外挂需要抓数据包分析,这个过程是很烦躁的,但是开心网,因为它是web的,而且它的插件都是ajax的,所以可以直接看代码。 这样吧,我们图省事,也就拿web做外挂,HTML+JavaScript,调用他的接口。 先登录一下吧,这个步骤是没法避免的。登录页面很简单,它就是一个表单,action是/login/login.php,所以也就是http://www.kaixin001.com/login/login.php这个了,它的参数也很容易找到,就是一个email,一个password,所以,一会我们写登录部分的时候,把这两个拼起来post一下就可以了。 这里有一个问题了,post结束之后,怎么知道是成功了呢?很简单,只要成功登陆,肯定会跳转到主界面,然后主界面有什么特定的东西呢?到主界面的源码里面把它的title拷出来就可以了,只要post的结果里面包含了这个title,就说明已经登录了。 到了主界面,看左边一排插件列表,鼠标放在“争车位”这三个字上,因为这是一个链接,所以状态栏就会显示它的链接地址,好,记录下来,http://www.kaixin001.com/app/app.php?aid=1048,这个没有参数,不需要用post,只要get一下就可以。 点一下,进了争车位主界面,唔,flash做的,但是参数肯定是从js传递过去的了,看一下这个页面源码,发现两个有用的变量,一个叫做v_userdata,这是保存用户信息的,另外一个叫做v_frienddata,很明显是保存好友信息的了,这两个的内容都是json格式定义的,那么这就是在服务端生成这个页面时候拼出来的,我们怎么取得它呢? 来,我们猥琐一把。想一下,这个页面的内容是什么,一个字符串,对,字符串,两个变量分别定义在不同的行上,而这两个行只做了给这两个变量赋值的事情,接下来的事情就简单了,首先把页面源码split一下,用"\n"做分割符,这样得到的就是一个数组,每个元素是里面的行,然后,遍历下来,如果这个行indexOf我们可爱的变量,就eval它,没错,eval,然后就隐式定义了这两个变量,于是在这个作用域,我们也可以调用它们了。 v_userdata有一个属性叫做user,这是保存个人基本信息的,比如说你的名字是什么,你的id是什么,你有多少现金,等等,枚举出来即可,还有一个属性叫做car,它是一个数组,保存的是当前拥有的车辆,数组每个元素当然是一个车子了,里面有它的名字,牌子,价格,当前收益等等,我们列举它出来就可以了。 好了,到这里为止,我们已经可以查询出车子的信息了,前途是很光明的,怎么去自动停车收钱呢?以后再说吧。 通过分析开心网的代码,我了解了以下几个事情,这个网站其实技术上复杂程度并不高,代码挺少的,它主体是PHP写的,用什么语言其实差别不大,它使用的JS框架是prototype,调用后台的方式,很显然就是一个Ajax的异步call,每做一个事情,就设置一个回调函数,改变界面,对我们做外挂来说,所需要的界面基本是没有的,基本上只是拿来显示是否成功等等,那这里就要一律改成同步调用,然后按照顺序一个一个跑下去。 会写代码的可以自己动手试试哈,不会的就当我什么都没说了,代码暂时不泄露,哈哈。 9月15日 无锡归来这三天去无锡玩了。 12号晚上一下班就赶紧去火车站,然后晚上到了华仔家里,真是豪宅啊,别墅ing,夜里睡得不太好,外面施工,据说是军队,投诉也是无效的…… 13号华仔请吃饭,菜很不错,尤其是那个酱骨头,我一个人吃了6大块,撑得要死。吃完去K歌,跟一堆人会合,大家都是来参加钱兔子婚礼的,晚上就都挤在戚猫和小庄的房子里,猫的床太软了,早上起来浑身发酸。 14号起来,吃了老蒋带来的很好吃的饼,就出发去凯宾斯基酒店,兔G跟兔子打扮得很漂亮,两个人幸福得要死,哈哈,酒店很豪华,吃得很不错,我一边吃一边计算结婚要花多少钱,然后得出结论,我离这个目标太远了。 婚礼结束之后去兔G家,又是一个别墅……啊啊啊,无锡人都这么有钱的啊。 然后回去玩杀人,一群人又打牌,逐渐的人们都闪人了,又一天过去了。 15号下雨,哪里都去不了,到了下午回南京。 嗯,总之就是这样。 |
|
|