省省司机 逆向 PC火山编程 火山递归软件源码分享

本文档介绍了如何解析和逆向一个名为'省省司机'的PC端抢单软件的源码,涉及到火山编程技术,包括用户信息判断、订单分析、数据提取和抢单条件检查等关键步骤。通过源码分析,揭示了软件的抢单逻辑和关键参数设置。
摘要由CSDN通过智能技术生成

<火山程序 类型 = "通常" 版本 = 1 />

变量 判断是否在线 <类型 = 用户信息实时类>
判断是否在线 = 缓存池.取指定类型对象 (id, 用户信息实时类)

如果真 (判断是否在线.正在拦截订单 == 假 && 判断是否在线.是否正在抢单 == 真)
{
    变量 分析订单 <类型 = YYJSON只读对象类>
    变量 cargoId <类型 = 长整数>
    变量 distance <类型 = 文本型>
    变量 单位 <类型 = 文本型>
    变量 loadAddress <类型 = 文本型>
    变量 extraBargainFeeStr <类型 = 文本型>
    变量 paymentWayStr <类型 = 文本型>
    变量 chargeType <类型 = 文本型>
    变量 description <类型 = 文本型>
    变量 http <类型 = 网络访问类_COM版>
    变量 unloadAddress <类型 = 文本型>
    变量 url <类型 = 文本型>
    变量 urlpath <类型 = 文本型>
    变量 expenses <类型 = 文本型>
    变量 数据_ <类型 = 文本到对象哈希表>
    变量 用户数据 <类型 = 用户信息实时类>
    变量 ua <类型 = 文本型>
    变量 提交密文 <类型 = 文本型>
    变量 ret <类型 = 文本型>
    变量 结果值 <类型 = 文本型>
    变量 抢单成功 <类型 = 逻辑型>
    如果真 (分析订单.创建自文本 (数据))
    {
        变量 中间缓存池 <类型 = 文本到对象哈希表>
        中间缓存池 = 缓存池

        变量 缓存对象 <类型 = 用户信息实时类>
        缓存对象 = 中间缓存池.取指定类型对象 (id, 用户信息实时类)
        缓存对象.正在拦截订单 = 真
        缓存池.插入 (id, 缓存对象)


        变量 CAR <类型 = 文本型>
        变量 粗略信息过滤 <类型 = 文本型>
        变量 重复ID <类型 = 文本型>
        cargoId = 分析订单.取路径长整数 ("/data/cargoId")
        CAR = 分析订单.取路径文本 ("/data/truckInfo")
        distance = 分析订单.取路径文本 ("/data/distance")
        单位 = 分析订单.取路径内容 ("/data/distanceSuffix")
        loadAddress = 分析订单.取路径文本 ("/data/addressInfo/0/loadAddress")
        unloadAddress = 分析订单.取路径文本 ("/data/addressInfo/0/unloadAddress")
        description = 分析订单.取路径文本 ("/data/description")
        chargeType = 分析订单.取路径文本 ("/data/chargeType")
        paymentWayStr = 分析订单.取路径文本 ("/data/paymentWayStr")
        extraBargainFeeStr = 分析订单.取路径文本 ("/data/extraBargainFeeStr")
        expenses = 分析订单.取路径文本 ("/data/expenses")
        调试输出 (description)
        粗略信息过滤 = unloadAddress + description + CAR

        变量 是否继续 <类型 = 逻辑型>
        是否继续 = 假
        如果 (文本到小数 (expenses) < 缓存对象.抢单金额 && 缓存对象.抢单金额 != 0)
        {

        }
        否则 (判断是否存在关键词 (粗略信息过滤, 缓存对象.屏蔽关键词))
        {

        }
        否则 (寻找文本 (重复ID, 到文本 (cargoId), , ) != -1)
        {

        }
        否则
        {
            如果 (cargoId != 0 && 单位 == "公里")
            {
                如果真 (文本到小数 (distance) <= 缓存对象.抢单范围 || 缓存对象.抢单范围 == 0)
                {
                    是否继续 = 真

                }
            }
            否则 (cargoId != 0 && 单位 == "米")
            {
                如果真 (文本到小数 (distance) / 1000 <= 缓存对象.抢单范围 || 缓存对象.抢单范围 == 0)
                {
                    是否继续 = 真
                }
            }
        }

        如果真 (cargoId != 0 && 是否继续)
        {
            数据_ = 缓存池
            如果真 (数据_.是否存在 (id))
            {
                中间缓存池 = 缓存池
                缓存对象 = 中间缓存池.取指定类型对象 (id, 用户信息实时类)
                缓存对象.是否正在抢单 = 真
                缓存池.插入 (id, 缓存对象)

                变量 详情页面POST <类型 = 文本型
                        值 = "{\"extraInfo\":{},\"lon\":[lon],\"cargoId\":[id],\"cargoDetailPageSourceInfo\":{\"sourcePage\":\"ShortDistance_MonitorList\"},\"logPageName\":\"newDriverShortDistanceSchema\",\"scene\":\"\",\"showBJTime\":false,\"lat\":[lat],\"cargoDetailPageSource\":{\"sourcePage\":\"ShortDistance_MonitorList\"},\"dfp\":\"[ID]\",\"passcodeEnter\":false,\"assignedCargo\":false}">
                子文本替换_连续 (详情页面POST, "[lon]", 缓存对象.longitude, "[lat]", 缓存对象.latitude, "[id]", 到文本 (cargoId), "[ID]", id)
                urlpath = "/sd-cargo-detail-mg/cargo/detail"
                ua = 获取协议头 (id, urlpath, "server:mbproxy,main,default route")
                url = "https://www.ymm56.com/sd-cargo-detail-mg/cargo/detail"
                提交密文 = 加密 (urlpath, 详情页面POST)
                结果值 = http.网页访问_T (url, 1, 提交密文, , ua, , , , , , , , )
                ret = 解密 (urlpath, 结果值)
                如果真 (ret != "")
                {
                    变量 json_取数组1 <类型 = YYJSON只读对象类>
                    变量 json_数组1 <类型 = YYJSON只读数组类>
                    如果真 (json_取数组1.创建自文本 (ret))
                    {
                        json_数组1 = json_取数组1.取路径数组 ("/data/componentList")
                        如果真 (json_数组1 != 空对象)
                        {
                            变量 客户描述 <类型 = 文本型>
                            变量 订单lat <类型 = 文本型>
                            变量 订单lon <类型 = 文本型>
                            变量 cargoUserId <类型 = 文本型>
                            变量 公里单价 <类型 = 文本型>
                            变量 总数 <类型 = 整数>
                            变量 cargoVersion <类型 = 文本型>
                            变量 platformNewDriver <类型 = 文本型>
                            变量 bizSceneKey <类型 = 文本型>
                            变量 peccancy <类型 = 文本型>
                            变量 newChargeMode <类型 = 文本型>
                            订单lat = 到文本 (json_取数组1.取路径小数 ("/data/pageExtraInfo/extraFields/lat"))
                            订单lon = 到文本 (json_取数组1.取路径小数 ("/data/pageExtraInfo/extraFields/lon"))
                            cargoUserId = 到文本 (json_取数组1.取路径长整数 ("/data/pageExtraInfo/extraFields/cargoUserId"))
                            cargoVersion = 到文本 (json_取数组1.取路径整数 ("/data/pageExtraInfo/extraFields/cargoVersion"))
                            bizSceneKey = 到文本 (json_取数组1.取路径整数 ("/data/pageExtraInfo/extraFields/bizSceneKey"))
                            如果 (json_取数组1.取路径逻辑型 ("/data/pageExtraInfo/extraFields/platformNewDriver"))
                            {
                                platformNewDriver = "true"
                            }
                            否则
                            {
                                platformNewDriver = "false"
                            }

                            如果 (json_取数组1.取路径逻辑型 ("/data/pageExtraInfo/extraFields/peccancy"))
                            {
                                peccancy = "true"
                            }
                            否则
                            {
                                peccancy = "false"
                            }

                            如果 (json_取数组1.取路径逻辑型 ("/data/pageExtraInfo/extraFields/newChargeMode"))
                            {
                                newChargeMode = "true"
                            }
                            否则
                            {
                                newChargeMode = "false"
                            }

                            总数 = json_数组1.取成员数 ()

                            变量 ProductId <类型 = 文本型>
                            变量 ProductId_status <类型 = 文本型>
                            变量 chargeDisplayFlag <类型 = 文本型>
                            变量 token <类型 = 文本型>
                            变量 当前订单类型 <类型 = 文本型>
                            变量 用车时间 <类型 = 文本型>
                            变量 距离 <类型 = 文本型>
                            变量 订单金额 <类型 = 文本型>
                            变量 到付 <类型 = 文本型>
                            变量 车辆要求类型 <类型 = 文本型>
                            变量 出发地与目的地 <类型 = 文本型>

                            计次循环 (总数)
                            {
                                变量 描述内容 <类型 = 文本型>
                                如果真 (json_数组1.取成员 (取循环索引 ()).取路径文本 ("/componentType") == "short_distance_top_info")
                                {
                                    公里单价 = json_数组1.取成员 (取循环索引 ()).取路径文本 ("/moduleData/bargainingRule")
                                    调试输出 (json_数组1.取成员 (取循环索引 ()).取路径文本 ("/moduleData/bargainingRule"))
                                }

                                描述内容 = json_数组1.取成员 (取循环索引 ()).取路径文本 ("/moduleData/list/0/content")
                                如果真 (描述内容 != "")
                                {
                                    客户描述 = 客户描述 + "\r\n" + 描述内容
                                }

                                如果真 (json_数组1.取成员 (取循环索引 ()).取路径文本 ("/componentType") == "MBShortDistanceStatusComponent")
                                {
                                    当前订单类型 = json_数组1.取成员 (取循环索引 ()).取路径文本 ("/moduleData/bizLogo")
                                    用车时间 = json_数组1.取成员 (取循环索引 ()).取路径文本 ("/moduleData/title")
                                    距离 = json_数组1.取成员 (取循环索引 ()).取路径文本 ("/moduleData/distance") + json_数组1.取成员 (取循环索引 ()).取路径文本 ("/moduleData/loadingNavigateDistance")

                                }

                                如果真 (json_数组1.取成员 (取循环索引 ()).取路径文本 ("/componentType") == "MBShortDistancePriceComponent")
                                {
                                    订单金额 = json_数组1.取成员 (取循环索引 ()).取路

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值