_hookBIOS 是如何工作的?

How does _hookBIOS work?

我正在通读 The rootkit arsenal 并发现了这段代码:

LEA DX, _hookBIOS

评论说是设置第一个ISR,之前定义如下:

_install:  
LEA DX, _getBufferAddr
MOV CX, CS
MOV DS, CX
MOV AH, 25H
MOV AL, 187
INT 21H  

有人可以解释一下 hookBIOS 函数在安装方面的工作原理吗?或者有人可以指点我一些可以弄清楚关系的参考资料吗?

LEA 只是加载一个地址,它不会做任何其他事情。完成的任何设置都在您省略的其他代码中。

_install 正在调用 dos 函数 25hset interrupt vector。它需要 AL 中的矢量编号,因此在本例中为 187。地址在 DS:DX 中传递。因此 _install 设置中断 187 指向 _getBufferAddr.