佚名RJ 发表于 2023-5-11 14:31

【更新V2.0】葫芦侠3楼一键自动签到工具及源码(可云函数)

本帖最后由 佚名RJ 于 2023-6-15 11:04 编辑

### 写在前面

玩3楼的想必大家都被各版块签到所苦恼吧!今天分享的**一键自动签到工具及源码**就能快速解决你的问题啦!**如有违规,请直接删帖。**

### 软件介绍

葫芦侠3楼使用key一键自动签到的工具及源码,注释源码中的第31行,使用第32行并将`_key`填入,可云函数!
一键自动签到工具做了2秒延时,不建议太快,不然很容易签到异常!工具支持隐藏版块签到,目前共45个版块!

### 使用说明

在葫芦侠3楼输入用户名和密码然后去打开抓包工具后再回到葫芦侠再点击登录,登录成功后从抓包数据响应返回的用户信息中找`_key`字段输入到软件中即可!

**使用需特别注意:** 手机端退出账号再重新登录后`_key`会发生变化失效,抓包且挂云函数后手机端请勿退出账号!

### 实测截图

|||
| ------------------------- | ------------------------- |

### 动态sign

**生成方法:**

```txt
cat_id+版块号+time+时间戳取值+fa1c28a5b62e79c3e63d9030b6142e4b   MD5后得动态sign   

```

**举例说明:**

```txt
cat_id1time1683352250925fa1c28a5b62e79c3e63d9030b6142e4b         MD5后得动态sign30de847e271b50b342ae95fab5cdc4e4

```


### 工具及源码

**重要提醒:**注释第31行,使用第32行并将_key填入,可挂云函数使用!若转载或改进等请注明出处,谢谢!
很简单的一个工具,代码写的也不是很好,很多异常处理都没有加。若转载或改进等请注明出处,谢谢!

**[电脑端]葫芦侠三楼一键签到V2.0:**(https://www.123pan.com/s/CPO7Vv-1W9r3.html) 提取码:0000

**[手机端]葫芦侠三楼一键签到V1.4:** 也有,不符合版规,不分享!

# -*- coding: UTF-8 -*-
"""
* @脚本作者: 佚名RJ
* @创建时间: 2023/06/15 10:14
* @目标地址:
* @软件版本: V2.0
* @脚本用途: 葫芦侠三楼使用_key一键签到的脚本
* @使用说明: 手机抓包获取葫芦侠三楼账号登录的_key参数,运行此脚本填入即可!
* @其它说明: 注释第31行,使用第32行并将_key填入,可挂云函数使用。

"""

import requests
import time
import hashlib
import os


# MD5加密
def md5(param):
    m = hashlib.md5()
    b = param.encode(encoding='utf-8')
    m.update(b)
    passwd_md5 = m.hexdigest()
    return passwd_md5


# 签到函数
def signin():
    # _key参数抓登录包获取
    _key = input("请输入抓包账号响应获取的_key:")
    # _key = ""
    print("============================开始签到请耐心等待============================")
    number = 0# 成功计数
    continueDays = 0# 连续签到天数
    experienceVal = 0# 本次签到经验

    catid = {1, 2, 3, 4, 6, 15, 16, 21, 22, 23, 29, 34, 43, 44, 45, 56, 57, 58, 60, 63, 67, 68, 69, 70, 71, 76, 77, 81,
             82, 84, 90, 92, 94, 96, 98, 102, 105, 107, 108, 110, 111, 115, 119, 120, 121}
    # 每个版块的ID,包含隐藏版块ID
    # for i in range(1, 122):
    for i in catid:
      cat_id = str(i)
      # print(cat_id)

      # 获取时间戳
      time_s = str(time.time()).split(".") + str(time.time()).split(".")
      # print(time_s)   # 1683335343675

      # 无需device_code版本
      url = f"http://floor.huluxia.com/user/signin/ANDROID/4.1.8?platform=2&gkey=000000&app_version=4.2.0.5&versioncode=20141475&market_id=floor_web&_key={_key}&phone_brand_type=OP&cat_id={cat_id}&time={time_s}"

      # 使用split方法按照'&'字符分割URL
      params = url.split('&')
      # 遍历分割后的字符串列表,找到cat_id和time参数
      cat_id1 = None
      time1 = None
      for param in params:
            if 'cat_id' in param:
                cat_id1 = param.split('=')
            elif 'time' in param:
                time1 = param.split('=')

      # 将cat_id和time和不变的voice_code组合成一个字符串
      sign = md5('cat_id' + cat_id1 + 'time' + time1 + 'fa1c28a5b62e79c3e63d9030b6142e4b')
      # print("30de847e271b50b342ae95fab5cdc4e4")
      # print(sign)
      data = {
            "sign": sign# 动态sign
      }
      headers = {
            "Accept-Encoding": "identity",
            "Host": "floor.huluxia.com",
            'User-Agent': 'okhttp/3.8.1',
            "Content-Type": "application/x-www-form-urlencoded",
            "Content-Length": "37"
      }
      response_res = requests.post(url=url, headers=headers, data=data)
      # 打印请求的url
      # print(response_res.request.url)
      # 打印请求的参数
      # print(response_res.request.body)
      # 打印请求后返回的结果
      # print(response_res.json())
      dic = response_res.json()
      # 获取签到的状态,状态:0为失败,1为成功。
      status = dic['status']
      tt = "\t"
      if status == 1:
            continueDays = dic['continueDays']# 连续签到天数
            experienceVal = dic['experienceVal']# 本次签到经验
            number += 1# 每次签到成功就+1,最后记总成功次数。
            msg = f'版块ID为{cat_id}{tt}签到状态:成功{tt}获得{experienceVal}点经验/已连签{continueDays}天{tt}第{number}次签到成功!'
            # print(msg)
      else:
            msg = f'版块ID为{cat_id}{tt}签到状态:失败{tt}你的_key已失效或此版块可能已经不存在!'
      print(msg)
      time.sleep(2)# 稍做延时,太快会异常。
    # 获取结果:累计连续签到天数及本次签到共获得多少经验点数。
    print(f"\n签到结果:此账号已连续签到{continueDays}天,此次签到共成功获{experienceVal * number}点经验!继续加油哦!")
    input("签到已完成!请按回车键结束...")


# main函数
def main():
    os.system("mode con cols=75 lines=40")# 设置打开控制台大小
    print("============================原创作者:佚名RJ==============================")
    print("============================工具使用及抓包教程============================")
    print("在葫芦侠3楼输入用户名和密码然后去打开抓包工具后再回到葫芦侠再点击登录,登录")
    print("成功后从抓包数据响应返回的用户信息中找_key字段输入到软件中即可!")
    print("==============================使用需特别注意==============================")
    print("===========手机端每次退出账号再重新登录后_key会失效发生变化哦!===========")
    # 签到
    signin()


# 主函数调用
if __name__ == '__main__':
    main()

清欢吖 发表于 2023-5-12 09:32

根据楼主的代码 添加了登录部分

# -*- coding: UTF-8 -*-
"""
* @脚本作者: 佚名RJ
* @创建时间: 2023/05/11 10:17
* @目标地址:
* @软件版本: V1.0
* @脚本用途: 葫芦侠三楼使用_key一键签到的脚本
* @使用说明: 手机抓包获取葫芦侠三楼账号登录的_key参数,运行此脚本填入即可!
* @其它说明: 注释第31行,使用第32行并将_key填入,可挂云函数使用。

"""

import requests
import time
import hashlib
import os
import json


# MD5加密密码
def md5(param):
    m = hashlib.md5()
    b = param.encode(encoding='utf-8')
    m.update(b)
    passwd_md5 = m.hexdigest()
    return passwd_md5

# 签到函数
def signin():
    #登录获取key
    username = '' #手机号
    password = '' #密码
    # 获取密码md5
    password = hashlib.md5(password.encode('utf-8')).hexdigest()
    #sign计算
    sign = "account" + username + "device_codeb305cc73-8db8-4a25-886f-e73c502b1e99password" + password + "voice_codefa1c28a5b62e79c3e63d9030b6142e4b"
    sign = hashlib.md5(sign.encode('utf-8')).hexdigest()
    #提交地址
    url = "http://floor.huluxia.com/account/login/ANDROID/4.1.8?platform=2&gkey=000000&app_version=4.2.1.6.1&versioncode=367&market_id=tool_web&_key=&device_code=%5Bd%5Db305cc73-8db8-4a25-886f-e73c502b1e99&phone_brand_type=VO"
    #登录提交数据
    data = {
    'account': username,
    'login_type': '2',
    'password': password,
    'sign': sign}
    #协议头
    headers = {"User-Agent": "okhttp/3.8.1"}
    #请求访问
    retu = requests.post(url=url, data=data, headers=headers)
    retu.encoding = retu.apparent_encoding
    #json解析
    login_json = json.loads(retu.text)
    #提取key数据
    _key = login_json['_key']
    # _key参数抓登录包获取
    # _key = input("请输入抓包账号响应获取的_key:")
    # _key = ""
    print("============================开始签到请耐心等待============================")
    number = 0# 成功计数
    continueDays = 0# 连续签到天数
    experienceVal = 0# 本次签到经验

    # 每个版块的ID,包含隐藏版块ID
    for i in range(1, 122):
      cat_id = str(i)
      # print(cat_id)

      # 获取时间戳
      time_s = str(time.time()).split(".") + str(time.time()).split(".")
      # print(time_s)   # 1683335343675

      # 无需device_code版本
      url = f"http://floor.huluxia.com/user/signin/ANDROID/4.1.8?platform=2&gkey=000000&app_version=4.2.0.5&versioncode=20141475&market_id=floor_web&_key={_key}&phone_brand_type=OP&cat_id={cat_id}&time={time_s}"

      # 使用split方法按照'&'字符分割URL
      params = url.split('&')
      # 遍历分割后的字符串列表,找到cat_id和time参数
      cat_id1 = None
      time1 = None
      for param in params:
            if 'cat_id' in param:
                cat_id1 = param.split('=')
            elif 'time' in param:
                time1 = param.split('=')

      # 将cat_id和time和不变的voice_code组合成一个字符串
      sign = md5('cat_id' + cat_id1 + 'time' + time1 + 'fa1c28a5b62e79c3e63d9030b6142e4b')
      # print("30de847e271b50b342ae95fab5cdc4e4")
      # print(sign)
      data = {
            "sign": sign# 动态sign
      }
      headers = {
            "Accept-Encoding": "identity",
            "Host": "floor.huluxia.com",
            'User-Agent': 'okhttp/3.8.1',
            "Content-Type": "application/x-www-form-urlencoded",
            "Content-Length": "37"
      }
      response_res = requests.post(url=url, headers=headers, data=data)
      # 打印请求的url
      # print(response_res.request.url)
      # 打印请求的参数
      # print(response_res.request.body)
      # 打印请求后返回的结果
      # print(response_res.json())
      dic = response_res.json()
      # 获取签到的状态,状态:0为失败,1为成功。
      status = dic['status']
      tt = "\t"
      if status == 1:
            continueDays = dic['continueDays']# 连续签到天数
            experienceVal = dic['experienceVal']# 本次签到经验
            number += 1# 每次签到成功就+1,最后记总成功次数。
            msg = f'版块ID为{cat_id}{tt}签到状态:成功{tt}获得{experienceVal}点经验/已连签{continueDays}天{tt}第{number}次签到成功!'
            # print(msg)
      else:
            msg = f'版块ID为{cat_id}{tt}签到状态:失败{tt}你的_key已失效或此版块可能已经不存在!'
      print(msg)
      time.sleep(2)# 稍做延时,太快会异常。
    # 获取结果:累计连续签到天数及本次签到共获得多少经验点数。
    print(f"\n签到结果:此账号已连续签到{continueDays}天,此次签到共成功获{experienceVal * number}点经验!继续加油哦!")
    input("签到已完成!请按回车键结束...")


# main函数
def main():
    os.system("mode con cols=75 lines=40")# 设置打开控制台大小
    print("============================原创作者:佚名RJ==============================")
    print("============================工具使用及抓包教程============================")
    print("在葫芦侠3楼输入用户名和密码然后去打开抓包工具后再回到葫芦侠再点击登录,登录")
    print("成功后从抓包数据响应返回的用户信息中找_key字段输入到软件中即可!")
    print("==============================使用需特别注意==============================")
    print("===========手机端每次退出账号再重新登录后_key会失效发生变化哦!===========")
    # 签到
    signin()


# 主函数调用
if __name__ == '__main__':
    main()

xiao777 发表于 2023-5-11 15:28

之前有个移动端的我一直还在用

佚名RJ 发表于 2023-5-13 22:57

XZ1314XZ 发表于 2023-5-13 19:19
谢谢博主,我之前也写过,不过就是用账号密码登录的(hlx也没有验证登录机制),就是没怎么用客户端,导致 ...

我也没有长时间测试,就知道好像key不退出登录的话,一直有效吧,也不知道是不是一个月有效期,如果一个月的话,一个月更新一次,也可以接受

佚名RJ 发表于 2023-5-12 14:41

清欢吖 发表于 2023-5-12 09:32
根据楼主的代码 添加了登录部分

# -*- coding: UTF-8 -*-


很不错,之前也想搞这种方式的,但后来考虑了一下,也有exe程序让用户使用直接输入账号密码用户会有盗号的担忧,还有就是账号密码登录的方式会相互顶账号,当时考虑到了这个就搞了_key的。

登录的时候sign计算需要device_code,但是登录的接口应该可以不需要device_code,我的签到接口就没加,你也可以试试看,如果别人用此代码搞云函数都用你的device_code,不知道会出什么问题。哈哈

佚名RJ 发表于 2023-5-11 14:46

TabKey9 发表于 2023-5-11 14:43
葫芦侠还活着?还能改游戏道具自定义数量?

还活着,但没之前玩的人多了。目前一些人一般玩社区。

ipkqywfi 发表于 2023-5-11 15:00

这个好用吗?游戏会不会收费,有什么好处用着

佚名RJ 发表于 2023-5-11 20:27

测试君 发表于 2023-5-11 18:28
有青龙脚本吗

源码都有了,略微调整下就能用吧

TabKey9 发表于 2023-5-11 14:43

葫芦侠还活着?还能改游戏道具自定义数量?

黑色追忆 发表于 2023-5-11 14:48

谢谢分享,很实用!

Dxn8 发表于 2023-5-11 14:48

下来学习学习!

babyhux 发表于 2023-5-11 14:49

哇 我看看这是什么

hxp.china.sh 发表于 2023-5-11 14:49

别的论坛能不能用

zdl5078 发表于 2023-5-11 14:50

嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡

wyjtpp 发表于 2023-5-11 14:56

厉害啊,先码后收藏

bachelor66 发表于 2023-5-11 14:59

这玩意居然还存活着呢                                    
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【更新V2.0】葫芦侠3楼一键自动签到工具及源码(可云函数)