Kiza
V2EX  ›  问与答

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

  •  
  •   Kiza · Jul 20, 2022 · 7161 views
    This topic created in 1568 days ago, the information mentioned may be changed or developed.
    如题。
    53 replies  •  2022-07-21 11:01:59 +08:00
    learningman
    learningman
    Jul 20, 2022 via Android
    1
    飞线是把两个点连一起,所以,建边?
    ShinichiYao
    ShinichiYao
    Jul 20, 2022❤️1
    2
    Work around
    ele332
    ele332
    Jul 20, 2022❤️7
    3
    goto?
    paradoxs
    paradoxs
    Jul 20, 2022
    4
    单例啊,工厂模式啊
    quicknight
    quicknight
    Jul 20, 2022
    5
    hook
    mxT52CRuqR6o5
    mxT52CRuqR6o5
    Jul 20, 2022 via Android
    6
    Goto
    linksNoFound
    linksNoFound
    Jul 20, 2022❤️4
    7
    飞线是跳过不可重构的部分直接调用核心方法
    felixcode
    felixcode
    PRO
    Jul 20, 2022 via Android
    8
    ShellRun
    goto
    akaxiaok339
    akaxiaok339
    Jul 20, 2022
    9
    window.myFunction = xxx
    naver1
    naver1
    Jul 20, 2022❤️1
    10
    全局变量
    Jooooooooo
    Jooooooooo
    Jul 20, 2022
    11
    像是 mock 数据的逻辑.

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

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

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

    ----

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

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

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

    用类似飞线的机制的场景,我能想到的就是破解,把验证通过的地址接到验证之前,以绕过授权验证阶段。
    v23xowen
    v23xowen
    Jul 20, 2022
    39
    全局变量?
    bearice
    bearice
    Jul 20, 2022
    40
    硬要说的话,上古时代破解软件验证常用 0x90 (nop) 覆盖验证逻辑的行为可以算一种。
    lazydao
    lazydao
    Jul 20, 2022
    41
    hook
    44670
    44670
    Jul 20, 2022
    42
    hot patch?
    tjyangsg
    tjyangsg
    Jul 20, 2022
    43
    hyperlink
    LZSZ
    LZSZ
    Jul 20, 2022
    44
    破解的话是有 直接 jmp 跳转
    autoxbc
    autoxbc
    Jul 20, 2022
    45
    @horseInBlack #32 确实经常这么用,不过 background-color 不可靠,可能被顶层元素覆盖导致底下的背景色不可见,我一般用 border: 2px solid red
    RRL
    RRL
    Jul 20, 2022
    46
    hook
    e9pWeUbh9PGCnp95
    e9pWeUbh9PGCnp95
    Jul 20, 2022
    47
    JCC 指令
    HOOK
    MITM
    Features
    Features
    Jul 21, 2022
    48
    现代后端框架操作数据库通常有非常繁杂的流程
    比如模型,实体类等等
    一般直接写 SQL 跳过这些中间流程去操作数据库就算一种飞线吧?
    KaGaMiKun
    KaGaMiKun
    Jul 21, 2022
    49
    比如破解游戏破解软件?让验证或添加收费模块
    这个感觉很像飞线
    Steve08
    Steve08
    Jul 21, 2022
    50
    除了 goto ,感觉反射也很像
    newmlp
    newmlp
    Jul 21, 2022
    51
    单例
    raptor
    raptor
    Jul 21, 2022
    52
    必须是 goto 啊
    anteros
    anteros
    Jul 21, 2022
    53
    反射
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1498 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 19:13 · PVG 03:13 · LAX 11:13 · JFK 14:13
    ♥ Do have faith in what you're doing.