• 校内网开心农场外挂制作思路


    [摘]Posted by 枫之羽 in python,
    近日看在添加了校内开心农场,玩得太累了,特别是偷东西,有快感,但是很累,所以想自动化实现,于是研究其制作辅助工具的原理,就有了以下这篇文章。
    工具: HttpWatch(分析HTTP协议,csdn上可以下载到破解版)以及JSONViewer(查看json数据用的,随便搜索都可以下载到)
    语言:python(具有很强大的网络模块,随意使用)
    步骤一: 如何模拟对网页进行"POST"和"GET"动作来获得服务器那边的数据
    在python中可以使用 urllib,urllib2,cookielib就可以轻松的处理web事件了
    以下是请求网页内容的代码,body有内容说明是post行为,没有就是get行为

    # 请求网页,直接返回网页内容
        def reqcontent(self,url,body=()):
                    if len(body)==0:
                            req=urllib2.Request(url)
                    else:
                            req=urllib2.Request(url,urllib.urlencode(body))
                    raw=urllib2.urlopen(req)
                    if self.debug: #输出调试信息
                        print url
                        print raw.headers
                    return raw.read()

    步骤二: 登录账户
    输入帐号和密码, 可以用HttpWatch发现登录的网址和POST的数据
    点击在新窗口中浏览此图片
    在HttpWatch中可以发现登录所需要的信息, 分别为:
    网址: url="http://login.xiaonei.com/", 子网址:Login.do
    post数据为: email, origurl, password
    动作为: "POST"
    注意事后检测content内容, 可以根据其内容判断登录是否成功.

    [separator]
    def login(self,email,password):
            url="http://login.xiaonei.com/Login.do"
            body=(("email",email),("password",password))
            content=self.reqcontent(url,body)
            #print content
            uids=re.findall('http\:\/\/xiaonei\.com\/profile\.do\?id\=(\d+)',content)//查询主页信息,是否成功登陆
            if len(uids)>0:
                self.uid=uids[0]
                print '登陆校内成功!'
            else:
                print '登陆校内网失败,请稍候再登陆!'
                return ' '

    步骤三:既然会登陆了,那就也会从首页链接去开心农场了,这个方式是一样的不在这里介绍了。进入的地址是:http://apps.xiaonei.com/happyfarm?origin=103,采用get的方式就行了想知道的可以去看一会的完整的源代码,
    进入后就会获得下一大堆你看不懂的json的数据,就要进行解析与自己去分析了。也就是要用到我们的第二个工具JSONViewer。
    在这里我们还要看一个有趣的链接,http://xn.hf.fminutes.com/api.php?mod=user&act=run&farmKey=0adb08b43b1ddce6bdc34d6b7b691c53&farmTime=1248965142&inuId=
    这个链接里面的0adb08b43b1ddce6bdc34d6b7b691c53和1248965142是怎么产生的呢,仔细分析后发现
    farmTime=str(time.time())[0:10](当前时间)
    farmKey=md5.md5(farmTime+'15l3h4kh').hexdigest()(加了几个数后md5的十六进制数)
    其他的请求也类似,我们可以用一个函数生成这两个关键字

        def param(self): # 创建farmKey and farmTime参数
                farmTime=str(time.time())[0:10]
                farmKey=md5.md5(farmTime+'15l3h4kh').hexdigest()
                return (farmKey, farmTime)

    查询content得到一堆数据,这就是json数据,用JSONViewer查看,然后分析,得到天气,地块,用户等信息
    点击在新窗口中浏览此图片
    分析出数据结构以后就要取得这些数据,python中又提供给我们一个json模块,这个模块可以轻松的解析出有用的信息
    content =self.reqcontent(url,body)#获得那些杂乱的数据
    ret=json.read(content)#用json模块有规律读到ret中
    lands=ret['farmlandStatus']#取出农场的状况信息,简单吧
    通过这个三个步骤我相信你已经学会了外挂制作的原理,其他操作同样就是类似这个链接http://xn.hf.fminutes.com/api.php?mod=user&act=run&farmKey=0adb08b43b1ddce6bdc34d6b7b691c53&farmTime=1248965142&inuId=
    用httpwatch去捕获一下得到。
    下面是完整的源代码和exe文件,在config.ini中写入用户名和密码,不过又bug,中文的显示有些问题,我的好友中出现一个名字加爱心的就是显示出错,还有对可偷的数量没有进行判断,校内规定只能作物的40%产量可以偷,我没有进行判断直接当可偷处理了。
    /Files/ciey/校内开心农场辅助工具.rar

  • 相关阅读:
    Maven下Flex国际化配置
    Adobe AIR and Flex
    jQuery: 刨根问底 attr and prop两个函数的区别
    HTML5[8]: 图文混排,图片与文字居中对齐
    HTML5[7]: 实现网页版的加载更多
    HTML5[6]:多行文本显示省略号
    HTML5[5]:在移动端禁用长按选中文本功能
    HTML5[4]:去除不必要的标签,完全使用css实现样式
    HTML5[3]:中文换行
    HTML5[2]:使用viewport控制手机浏览器布局
  • 原文地址:https://www.cnblogs.com/ciey/p/1546610.html
Copyright © 2020-2023  润新知