V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hell0W0rldj
V2EX  ›  程序员

请教下 V 友们,关于大麦网抢票脚本开发自用 的技术栈

  •  1
     
  •   Hell0W0rldj · 2023-09-30 16:48:16 +08:00 · 10194 次点击
    这是一个创建于 414 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为现在大麦网网页端的抢票路径已经被 ban 了,只能通过 app 端抢票。 目前的思路是 Python + appium + 安卓虚拟器 实现自动化抢票。 但是觉得这样即使实现了,可能抢票的效率还没有人手点的快,想问下大佬们 如果想要开发一个抢票脚本,有哪些推荐和合适的技术栈? 纯是自己想抢票,抢不到,想着周末有时间 可以开发一下。

    38 条回复    2024-03-04 21:35:32 +08:00
    qqpkat2
        1
    qqpkat2  
       2023-09-30 19:00:48 +08:00
    Kirscheis
        2
    Kirscheis  
       2023-09-30 19:12:44 +08:00   ❤️ 4
    现在都是手机群控抢,二手华为批发几十个,插上 usb 用开发者模式下推操作就行了,技术栈还是 python+opencv 截图识别判断点击那套没怎么变过。

    虚拟机不行的,见一个 ban 一个,人风控也不是吃干饭的,开多了账号都给你拿下,别说抢票了。
    qqpkat2
        3
    qqpkat2  
       2023-09-30 19:16:56 +08:00
    @Kirscheis 什么都没看完就来装逼了?
    Kirscheis
        4
    Kirscheis  
       2023-09-30 19:27:17 +08:00   ❤️ 35
    @qqpkat2

    人请教怎么做,我就告诉他我们之前是怎么做的,你有更好的技术可以说说,我哪里说的有问题可以指出来,或者你实在是什么都不愿意说可以闭嘴。

    你发了两个帖子,一句话是一个众所周知的无效搜索引擎的网址,一句话是骂人,信息量几乎为 0 ,何必发出来浪费大家的时间呢?
    qqpkat2
        5
    qqpkat2  
       2023-09-30 19:32:16 +08:00
    @Kirscheis opencv 比 appium 还慢,说了等于没说,
    最快的是协议,要用什么技术栈自己根据用的语言百度即可
    Hell0W0rldj
        6
    Hell0W0rldj  
    OP
       2023-09-30 19:42:54 +08:00
    @Kirscheis 感谢!就是想了解一下完成这样的需求 会用到什么样的方法
    Hell0W0rldj
        7
    Hell0W0rldj  
    OP
       2023-09-30 19:45:30 +08:00
    @qqpkat2 有没有可能我已经做过调研了,然后分享了一下我的想法,并且想听一下有经验的人和大家的思路 来拓宽一下实现方法。如果你有实现思路欢迎分享,更深入/相关的东西 我会去自己检索,学习 然后开发的。
    Hell0W0rldj
        8
    Hell0W0rldj  
    OP
       2023-09-30 19:52:05 +08:00
    @Kirscheis 是的。你的分享对我来说非常有用! 怼他的话我就不说了,我的想法和你后面几句一模一样 hhh 我确实知识覆盖面也不广,但论坛功能之一 不就是可以互相学习 进行有意义的讨论
    iOCZ
        9
    iOCZ  
       2023-09-30 20:00:15 +08:00
    APP 和网页购票本质都是发网络请求嘛,只要看起来没差别就行了
    qqpkat2
        10
    qqpkat2  
       2023-09-30 20:05:05 +08:00
    @Hell0W0rldj 自动化工具是抢不过协议的
    Kirscheis
        11
    Kirscheis  
       2023-09-30 20:29:35 +08:00   ❤️ 4
    @qqpkat2 时代早就变了,现在各个平台抢票和秒杀机制都是进抽签池抽签,关键早就不是你网速多快发请求多快了,而是你有没有足够的设备和账号提高中签率,不差那零点几秒。现在的技术走 usb 推图到识别延迟都可以控制到 50ms 以内,我们拿来做游戏群控操作都能正常玩,opencv 后端都是 c bindings ,你要写个 opencv 脚本能比 appium 还慢那应该怪不了别人。。。

    抓协议除非你是专业黄牛,否则浪费那么多精力去逆向接口根本不值得,抓出来没几天又变了,直接抓瞎。

    @Hell0W0rldj 没事,我们也不是专业黄牛,所以我的办法也不是最好的,大家有什么更好技术都可以分享一下。但是今年工体梅西的票我们都帮朋友抢到了,所以这办法多少应该还是能用的,最主要是开发起来省事。
    0o0O0o0O0o
        12
    0o0O0o0O0o  
       2023-09-30 20:39:55 +08:00 via iPhone   ❤️ 5
    @qqpkat2 你发言真暴躁,那我觉得你一样是一知半解。有点编程常识的谁不知道相同条件下协议的比完整模拟的(到达服务器,注意是到达服务器,事实上现在很多平台并不绝对按照谁更“早”)更快?

    但#2 用真机群控比你要少分析多少风控你是一个字不提。你自己真的实现过完整的能过风控的协议方案吗?敢问你从 OP 这种入门阶段到做出完整实现花了多久?你确定百度得到?

    现在 2023 年,我觉得你是不是遵照着多年前的有限经验太过小觑大厂的防护了?
    qqpkat2
        13
    qqpkat2  
       2023-09-30 21:23:28 +08:00
    @Kirscheis 你扯那么多干什么,你就说你没处理过大麦就行了。
    我要开 100 账号,你用 usb 推图,个人电脑能承受这负载?


    @0o0O0o0O0o 你这发言让我觉得你就是没做过,到达服务器可以做到 10ms 内,比 11 楼的 50ms 快多了
    forgottencoast
        14
    forgottencoast  
       2023-09-30 21:27:02 +08:00   ❤️ 5
    @Livid
    #3 不会好好说话。
    qqpkat2
        15
    qqpkat2  
       2023-09-30 21:30:08 +08:00
    @0o0O0o0O0o op 都用 python+appium 实现过了,换成 python+opencv 根本就不难
    再说,op 要的是推荐技术栈,难不难他自己选,又没逼他,我们给的是方案,不是让他用我们的方案开发
    zsj1029
        16
    zsj1029  
       2023-09-30 21:40:08 +08:00 via iPhone
    @qqpkat2 难道不是调用安卓的残障辅助 API ?
    Donahue
        17
    Donahue  
       2023-09-30 21:43:46 +08:00
    我见过 有的黄牛公司组织一堆学生抢票、茅台的,抢到了给一点费用而已
    然后关于虚拟机,有成熟的 docker 安卓可以过风控,但是是收费的,可以 b 站搜下魔云腾看看,一个 2000 的硬件能同时开出 16 个安卓,保存几百个容器实例好像
    qqpkat2
        18
    qqpkat2  
       2023-09-30 21:47:45 +08:00
    @zsj1029 手机的还是慢,开发起来也没什么难度,appium 、atx 、opencv 等
    要研究技术还得是协议
    0o0O0o0O0o
        19
    0o0O0o0O0o  
       2023-09-30 22:10:10 +08:00 via iPhone
    @qqpkat2 #13

    > 开 100 账号,你用 usb 推图,个人电脑能承受这负载

    他的方案确实慢,但真的做群控怎会用原始的 adb 命令走 usb ,错误的论证过程

    > 到达服务器可以做到 10ms 内,比 11 楼的 50ms 快多了

    我可从没说 #2 的方案是最优方案,有实力或者有团队去对抗风控肯定是个打磨的过程,你说协议快也没问题,但你态度太差,并且只字不提协议相比真机要多面对多少风控问题。

    在怀疑我没做过之前,你在推荐一个只想利用周末时间给自己抢票的新手去逆向大麦 APP 协议的时候,真的意识到他面对的将是对于专职移动端逆向的人都有一定难度的阿里的防护吗?
    bequt
        20
    bequt  
       2023-09-30 22:10:24 +08:00
    协议+号海(代挂)
    qqpkat2
        21
    qqpkat2  
       2023-09-30 23:21:43 +08:00
    @0o0O0o0O0o 难不难他自己选择,选技术方案的时候自己自然会去评估难度
    群控不满足他说的效率问题
    willwon1
        22
    willwon1  
       2023-09-30 23:33:21 +08:00
    真当阿里 CRO 不逛 V2EX 嘛=。=
    kloudmuka
        23
    kloudmuka  
       2023-09-30 23:52:41 +08:00
    你这个问题已经有人讨论过了: https://www.v2ex.com/t/964948
    rev1si0n
        24
    rev1si0n  
       2023-10-01 00:34:29 +08:00   ❤️ 1
    给你指个我写的偏门路子吧,他包含了下面提到的可能用到的技术: https://github.com/rev1si0n/lamda
    如果你想自己写,用到的技术可能性有很多
    最简单的是使用自动化,即:模拟操作,可以用 uiautomator 去实现
    其次,通过 hook 的方式进行发包,但是难点就是可能没那么容易绕过反制措施
    再之,协议方式,通过中间人或者其他方式获取请求信息并从代码逆向出相关参数(签名或者加密),难点是上面的难点再提高
    其他的,就是别人提到的,找一群人抢,最靠谱的。
    ohwind
        25
    ohwind  
       2023-10-01 00:35:19 +08:00
    @qqpkat2 发个百度的哪来的脸杠别人?
    qqpkat2
        26
    qqpkat2  
       2023-10-01 00:51:44 +08:00
    @ohwind 我左边和右边的脸
    ozeer
        27
    ozeer  
       2023-10-01 02:23:23 +08:00
    @ohwind 同意+1 这人脾气太臭了,也不懂得平和的聊天,懒得直接怼他了。论坛就是讨论的,不符合自己心意的帖子可以闭嘴。真牛逼可以友好的给一些具体的方案建议,上来就喷,看不下去了。
    Livid
        28
    Livid  
    MOD
       2023-10-01 05:55:59 +08:00   ❤️ 7
    @forgottencoast 谢谢。3 楼的账号已经被彻底 ban 。
    stonesirsir
        29
    stonesirsir  
       2023-10-01 11:51:36 +08:00 via Android
    逆向?
    jiangwei2222
        30
    jiangwei2222  
       2023-10-01 13:37:57 +08:00 via Android   ❤️ 1
    https://github.com/Jinnrry/RobotHelper

    自荐我写的这个库,楼上说的 opencv ,模拟点击啥的都已经封装好了。需要群控的话也封装好了。

    大规模群控不建议 usb adb ,电脑能插的 usb 数据有限,插多了以后性能不行。

    回到正题,可行的思路就两种:

    1.使用程序模拟人工点击操作。本质上和人操作没啥区别,无非就是像楼上说的,搞几百台手机操作。但是成本太高,成功率也一般。

    2.反编译程序,找到对方接口逻辑,直接 xpsoed 下 hook 调用对方相关接口。类似 qq 红包插件,只受限于你的网络延迟,理论上只有网络延迟,只要你网络够好,肯定就能抢到。但是这个方案技术难度很大,对方程序肯定有加壳,混淆啥的,没点功底很难反编译出来

    这两种方案我框架都做了封装,你会安卓开发就行
    dafuyang
        31
    dafuyang  
       2023-10-01 22:05:41 +08:00
    3 楼这种装逼货 ban 了可太活该了
    52siH8Bk3yNPv3Ya
        32
    52siH8Bk3yNPv3Ya  
       2023-10-02 10:07:55 +08:00
    用 root 手机做个中间人证书代理抓包,一般都是 https 协议吧,用 http 请求模拟个一模一样。python 、curl 都行,加个并发,有二维码接个打码平台。封 ip 就挂代理池。
    inktiger
        33
    inktiger  
       2023-10-03 09:58:45 +08:00
    我感觉手机群控这个思路简单些,除了费钱感觉一切都好,协议这玩意很虚,反编译程序搞出来了,还要研究接口逻辑,全搞出来了,还要研究他改版之类的,这没个几十万的利润空间,完全没必要研究
    realpg
        34
    realpg  
       2023-10-03 13:02:26 +08:00
    @iOCZ #9
    你猜你的模拟请求软件会不会请求页面上的全部 js css
    iOCZ
        35
    iOCZ  
       2023-10-03 14:55:04 +08:00
    @realpg APP 接口哪来的 js,css 请求。。。。
    realpg
        36
    realpg  
       2023-10-03 14:59:12 +08:00
    @iOCZ #35
    就那个意思而已。在线图片,验证码图片的二次请求之类。
    而且大部分走的并不是 app 接口,而是 web 接口。因为 app 那个接口一般都不是常规 http
    搞了多少年的反机器人和反辅助,大麦比我做的更好
    cyningxu
        37
    cyningxu  
       2023-10-03 17:34:23 +08:00
    xposed ,我写过大麦抢票的 Xposed 插件,直接捅最终请求的方法,实际体验下来成功率提升有限,猜测后端还有很多策略
    unknown666
        38
    unknown666  
       258 天前
    走协议最好,但是逆向成本高。真机群控也得过验证。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2614 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:30 · PVG 23:30 · LAX 07:30 · JFK 10:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.