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

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

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

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

用类似飞线的机制的场景,我能想到的就是破解,把验证通过的地址接到验证之前,以绕过授权验证阶段。
v23xowen
2022-07-20 15:59:58 +08:00
全局变量?
bearice
2022-07-20 16:13:16 +08:00
硬要说的话,上古时代破解软件验证常用 0x90 (nop) 覆盖验证逻辑的行为可以算一种。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/867490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX