V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Sponsored by
LinkedIn
不坐班的神仙工作 · 去任何你想去的地方远程,赚一线城市的工资
2000 个不用出门 Social 的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
Kiza
V2EX  ›  问与答

软件中有没有与“飞线”相对应的东西?

  •  
  •   Kiza · 71 天前 · 4179 次点击
    这是一个创建于 71 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题。
    53 条回复    2022-07-21 11:01:59 +08:00
    learningman
        1
    learningman  
       71 天前 via Android
    飞线是把两个点连一起,所以,建边?
    ShinichiYao
        2
    ShinichiYao  
       71 天前   ❤️ 1
    Work around
    ele332
        3
    ele332  
       71 天前   ❤️ 7
    goto?
    paradoxs
        4
    paradoxs  
       71 天前
    单例啊,工厂模式啊
    quicknight
        5
    quicknight  
       71 天前
    hook
    mxT52CRuqR6o5
        6
    mxT52CRuqR6o5  
       71 天前 via Android
    Goto
    linksNoFound
        7
    linksNoFound  
       71 天前   ❤️ 4
    飞线是跳过不可重构的部分直接调用核心方法
    felixcode
        8
    felixcode  
       71 天前 via Android
    ShellRun
    goto
    akaxiaok339
        9
    akaxiaok339  
       71 天前
    window.myFunction = xxx
    DT27
        10
    DT27  
       71 天前   ❤️ 1
    全局变量
    Jooooooooo
        11
    Jooooooooo  
       71 天前
    像是 mock 数据的逻辑.

    对方接口不可用, 直接 mock 这个接口绕过它.
    coderluan
        12
    coderluan  
       71 天前
    飞线要是名词的话,我想到的是 goto
    飞线要是动词的话,我想到的是用 vs debug 的时候,代码停到某断点时会有个黄箭头提示,这个黄箭头其实是可以拖拽的,这样就可以强行进入一些不满足条件的分支。
    Maboroshii
        13
    Maboroshii  
       71 天前 via Android
    特殊处理的 if else 就是飞线
    yukiww233
        14
    yukiww233  
       71 天前
    if return
    wu67
        15
    wu67  
       71 天前
    前端仔的各种状态管理不就是么. 讲究一点的, 还会用各种库或者官方库实现, 骚一点的, 像 vue 的 bus, 我都不想说话...
    LongLights
        16
    LongLights  
       71 天前
    第一反应是 声卡跳线
    fisherwei
        17
    fisherwei  
       71 天前   ❤️ 1
    个人理解

    硬件上飞线有几种用途,比如:
    1 、某个 PCB 受损了,用飞线搭桥跳过去
    2 、增加一个外围芯片,或者短接两个芯片的针脚,比如用于破解、欺骗信号等
    3 、用于调试电平信号

    对应的软件方法大概是:
    1 、基本不存在
    2 、汇编进去,搞个 JE/JMP 之类的跳转。或者用 hook 阻挡某个 API 让原应用调用自己的代码
    3 、debug 工具
    ipwx
        18
    ipwx  
       71 天前   ❤️ 1
    from gevent import monkey
    monkey.patch_all()

    ----

    https://www.gevent.org/api/gevent.monkey.html
    Felldeadbird
        19
    Felldeadbird  
       71 天前
    goto 看语言吧。 我觉得这个就是飞线了。
    ck65
        20
    ck65  
       71 天前
    override
    kop1989smurf
        21
    kop1989smurf  
       71 天前
    如果再在严格定义一点的话,飞线是因为不需要,或者不想用 pcb 既定的功能和逻辑。
    所以更类似的是对没有编译、重构权的框架、库的 heck ?
    lululau
        22
    lululau  
       71 天前   ❤️ 2
    monkey patch
    dirty hack
    ZHenJ
        23
    ZHenJ  
       71 天前
    goto 感觉是最像飞线的
    feather12315
        24
    feather12315  
       71 天前 via Android
    1. 全局变量
    2. goto
    mingl0280
        25
    mingl0280  
       71 天前
    软件飞线那不就是 hack 么,什么 goto 都是程序内固定的指令跳转流程,怎么就飞线了?
    比方说 VS 的 debug 时强行跳转到某一行,破解软件用的 nop ,这种直接修改原有流程的。
    qiayue
        26
    qiayue  
       71 天前
    我们接手了一套 N 年的代码,搞懂了数据库每个表每个字段的含义后,重写了后台,重写了接口。
    老用户继续用老接口,新用户后面开始用新接口。
    我感觉,这也算是飞线。
    villivateur
        27
    villivateur  
       71 天前
    飞线是因为最初设计 PCB 的时候失误所以需要额外连线,或者调试的时候临时接线。
    我觉得软件里面的“飞线”就是调试代码,或者不断拉屎的过程。
    hfl1995
        28
    hfl1995  
       71 天前
    EventBus
    hfl1995
        29
    hfl1995  
       71 天前   ❤️ 1
    事件订阅相关的设计模式,都差不多是吧
    fansvista
        30
    fansvista  
       71 天前
    SJMP ,AJMP ,LJMP 总有一款适合您
    besto
        31
    besto  
       71 天前
    飞线属于硬件 rework 的一种,就功能而言
    @fisherwei
    @villivateur
    这两位合起来说的已经很全了。理论上软件不存在类似情况(再不济可以重构,抬杠就是硬件可以重画板子),一定要模仿,那几种可能性都算:
    1. 加个 print 打印内部信息(类似引脚飞线,来量波形)
    2. 加个 API 读取 /设置本来不暴露的内部状态(类似飞出 jtag 口,使用劳德巴赫调试)
    3. #if 0 (类似直接短接一部分电路)
    4. 建立一个新的函数,名为 xxxx2 xxxx3 (类似于外接芯片 /搬板)
    horseInBlack
        32
    horseInBlack  
       71 天前
    想起个程序员笑话:
    style=“background-color:pink!important;”就是 CSS 里的 console.log()

    有次内部系统有个生产问题,我的临时解决方案就是让使用者打开控制台,粘贴运行我给的 JS 代码把之前错误的函数覆盖掉,先把要完成的事情处理掉再说
    adoal
        33
    adoal  
       71 天前 via iPhone
    各种 work around 的特例情况处理,尤其是“这特喵明明是操作系统、底层库、第三方 API 的 bug 但是又不能升级怎么办”时写一些特例处理把 bug 当 feature 对待…
    BingoXuan
        34
    BingoXuan  
       71 天前
    如果你的程序遵循 actor model 的话,直接改变特定 mailbox 策略就行了
    joesonw
        35
    joesonw  
       71 天前 via iPhone
    epbf 咯
    joesonw
        36
    joesonw  
       71 天前 via iPhone
    @joesonw ebpf ,手残了。
    shenyu1996
        37
    shenyu1996  
       71 天前
    Eventbus
    libook
        38
    libook  
       71 天前
    硬件一旦生产出来,设计就固定了,所以一些情况下只能通过飞线来解决问题。

    软件生产出来后,只要还有源代码,就可以以极低成本进行修改并生产出一个新的版本,所以通常不需要类似于飞线的机制。

    用类似飞线的机制的场景,我能想到的就是破解,把验证通过的地址接到验证之前,以绕过授权验证阶段。
    v23xowen
        39
    v23xowen  
       71 天前
    全局变量?
    bearice
        40
    bearice  
       71 天前
    硬要说的话,上古时代破解软件验证常用 0x90 (nop) 覆盖验证逻辑的行为可以算一种。
    lazydao
        41
    lazydao  
       71 天前
    hook
    44670
        42
    44670  
       71 天前
    hot patch?
    tjyangsg
        43
    tjyangsg  
       71 天前
    hyperlink
    LZSZ
        44
    LZSZ  
       71 天前
    破解的话是有 直接 jmp 跳转
    autoxbc
        45
    autoxbc  
       71 天前
    @horseInBlack #32 确实经常这么用,不过 background-color 不可靠,可能被顶层元素覆盖导致底下的背景色不可见,我一般用 border: 2px solid red
    blackboom
        46
    blackboom  
       71 天前
    hook
    unintialized
        47
    unintialized  
       71 天前
    JCC 指令
    HOOK
    MITM
    Features
        48
    Features  
       71 天前
    现代后端框架操作数据库通常有非常繁杂的流程
    比如模型,实体类等等
    一般直接写 SQL 跳过这些中间流程去操作数据库就算一种飞线吧?
    KaGaMiKun
        49
    KaGaMiKun  
       70 天前
    比如破解游戏破解软件?让验证或添加收费模块
    这个感觉很像飞线
    qiyue0726
        50
    qiyue0726  
       70 天前
    除了 goto ,感觉反射也很像
    newmlp
        51
    newmlp  
       70 天前
    单例
    raptor
        52
    raptor  
       70 天前
    必须是 goto 啊
    php01
        53
    php01  
       70 天前
    反射
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2106 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 00:26 · PVG 08:26 · LAX 17:26 · JFK 20:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.