java 钩子是什么_编程中的术语“钩子”是什么意思?

钩子是由软件提供的功能,用于该软件的用户在某些情况下调用他们自己的代码 . 该代码可以扩充或替换当前代码 .

在过去,计算机真正是个人化的,病毒不那么流行(我说的是80年代),就像修补操作系统软件本身来调用你的代码一样简单 . 我记得在Apple II上编写了Applesoft BASIC语言的扩展,它简单地将我的代码挂钩到BASIC解释器,方法是在处理任何一行之前调用我的代码 .

有些计算机有预先设计的钩子,其中一个例子是Apple II上的I / O流 . 它使用这样的钩子来注入整个磁盘子系统(Apple II ROM最初是在盒式磁带是PC的主要存储介质的时代制造的) . 您通过打印ASCII代码4( CTRL-D )然后执行您要执行的命令 CR 来控制磁盘,并且它被磁盘子系统拦截,该子系统已连接到Apple ROM打印例程 .

例如,行:

PRINT CHR(4);"CATALOG"

PRINT CHR(4);"IN#6"

列出磁盘内容然后重新初始化机器 . 这允许通过将第一行设置为保护您的BASIC程序的技巧:

123 REM XIN#6

然后使用 POKE 在 X 所在的位置插入 CTRL-D 字符 . 然后,任何试图列出源的人都会通过磁盘子系统检测到的输出例程发送重新初始化序列 .

这通常是我们不得不诉诸的一种技巧,以获得我们想要的行为 .

如今,随着操作系统更加安全,它为钩子本身提供了便利,因为您不再需要“在飞行中”或在磁盘上修改操作系统 .

他们已经存在了很长时间 . 大型机有它们(称为出口),大量的大型机软件甚至现在也使用这些设备 . 例如,z / OS附带的免费源代码控制系统(称为SCLM)允许您通过简单地将自己的代码放在出口中来完全替换安全子系统 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值