易盾滑块逆向分析

本篇文章仅用于交流与学习,严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除。

感谢关注!您的关注和点赞就是我的动力

1.逆向目标

aHR0cHM6Ly9kdW4uMTYzLmNvbS90cmlhbC9qaWdzYXc=

2.逆向分析

先看发包请求,只有cb参数需要逆向,打断点跟栈

稍微找找一下,cb的生成位置就在这里

进入方法内,发现里面是混淆的,直接全扣补环境,把方法导出到全局,在python调用动态生成cb,

把图片下载到本地使用ddddocr识别,后面的验证接口也是需要这里的token的

下面看一下验证接口,data,cb需要逆向,cb上面已经说过,token也是上面的接口返回的

打断点跟栈,最后找到data的生成位置

先看d参数怎么来的,这里入参是一堆密文,很像是加密后的轨迹

这里的_0x1b7568a0_0x1e60(0x2d6)方法,调用方式跟上面生成cb的调用方式一样(后面大部分方法都是这样的),主要看看traceData是怎么来的

在解密方法这里打一个条件断点,当结果是traceData的时候断住

断住之后往上跟栈就找到了tracedata的生成位置

下面看p参数,比较简单,手动解混淆你就能清晰看到这里的生成逻辑

接着是f参数,_0x319bb4是token,_0x4d98f2是对明文轨迹进行了一些操作生成的,轨迹直接让ai帮你写就行

ext参数的生成逻辑也比较简单,也不多说了

轨迹代码

python 复制代码
def generateSlideTrack(distance):
    # 三次贝塞尔控制点
    P0 = {"x": 0, "y": 0}
    P1 = {"x": distance * 0.3, "y": 0}
    P2 = {"x": distance * 0.7, "y": 0}
    P3 = {"x": distance, "y": 0}

    track = []
    # 起始时间戳,贴近你给的样本(130~179)
    timestamp = random.randint(130, 179)
    # 轨迹点数量,保证足够密集
    sampleCount = max(60, int(distance * 1.2))

    # 三次贝塞尔计算函数
    def bezier3(t, p0, p1, p2, p3):
        k = 1 - t
        return {
            "x": k**3 * p0["x"] + 3 * k**2 * t * p1["x"] + 3 * k * t**2 * p2["x"] + t**3 * p3["x"],
            "y": k**3 * p0["y"] + 3 * k**2 * t * p1["y"] + 3 * k * t**2 * p2["y"] + t**3 * p3["y"]
        }

    for i in range(sampleCount + 1):
        t = i / sampleCount
        pt = bezier3(t, P0, P1, P2, P3)

        x = round(pt["x"])
        # ===================== Y 轴偏移加大 -3~3 =====================
        y = random.randint(-3, 3)

        # 时间戳递增 4~22ms,贴近样本节奏
        timestamp += random.randint(4, 22)

        track.append([x, y, timestamp, 1])

    # 最后一个点强制校准到目标距离
    if track:
        track[-1][0] = distance

    return track

3.逆向结果

相关推荐
砚底藏山河10 分钟前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
毕业设计7031 小时前
(免费领源码)django空气净化器销售系统09218- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·scrapy·mysql·pycharm·django·flask·pandas
w2sfot1 小时前
【JS加密在线】jsjiami.online(让JavaScript 更安全!)
开发语言·javascript·安全
小小张说故事1 小时前
Python 闭包到底捕获了啥?一个计数器例子讲透,别再背定义了
python
深蓝AI1 小时前
AI Agent 点了发布却超时:一条回执丢失,为什么能造成两篇文章?
人工智能·python
zzp282182 小时前
Estyapp逆向分析
爬虫
怪奇云呼军2 小时前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?
人工智能·python·算法·云计算·音视频
weixin199701080162 小时前
《淘宝TOP API:落地方案、接口边界与业务踩坑 —— 聚石塔内外价差 10 倍的真相》(附 Python 源码)
开发语言·python
梦想的颜色2 小时前
【编程实战】AI 时代 APP 开发全栈硬核指南:技术选型 + AI 架构 + 模型落地全维度决策
python·flutter·react native·react.js·ai·桌面应用·milvus
Madison-No72 小时前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman