中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-25 20:13
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 一个叫intchain的工具,可观察中断遍历哪些程序 查看 746 回复 0
楼 主 一个叫intchain的工具,可观察中断遍历哪些程序 发表于 2003-06-01 00:00 ·  中国 江西 吉安 电信
版主
★★★★
积分 7,296
发帖 1,628
注册 2002-10-16 12:00
23年会员
UID 10
性别 男
状态 离线

发信人: microbe (奇妙的微生物), 信区: DOS
标 题: 一个很有意思的程序
发信站: BBS 水木清华站 (Sat Jan 31 13:42:30 1998) WWW-POST


看过《未公开的DOS核心技术》这本书的人,一定记得里面有个叫intrspy的程序,
可以观察某个程序调用了哪些中断。我自己做了一个叫做intchain的工具,可以观察
某个中断遍历哪些程序(当然都是驻留内存的)。比如,下面是一个intchain的输出:

C:\USER>intchain 21 2a
INTCHAIN 3.0 is developed by Scott Zhong, SCDZ of USTC, Jan 30 1997

Trace Interrupt 21 Call
Enter : AX=2A00 BX=0000 CX=0000 DX=0000 SI=0000 DI=0000 BP=0000 ES=144C

Code Entry Name Type Owner Pos Size Exec LastIns&INT
-----------------------------------------------------------------------------
0253:04A0 IFS$HLP$ Device IFSHLP 2k 1 Jump Far
00C9:0FB2 MSDOS Kernel MSDOS LOW 23 Jump Far
FF03:41E7 MSDOS Kernel MSDOS HMA 157 Call Far
INT 2A
0070:027A IO SysDev S IO LOW 3 RetF
FF03:84FE MSDOS Kernel MSDOS HMA 3 Call Far
0070:00EE CLOCK$ SysDev I IO LOW 7 Jump Far
FFFF:0040 MSDOS Kernel MSDOS HMA 92 RetF
INT 1A
FF03:850A MSDOS Kernel MSDOS HMA 65 Iret
INT 2A

Totally output 8 Modules and executed 351 Instructions
Return: AX=2A05 BX=0000 CX=07CD DX=0215 SI=0000 DI=0000 BP=0000 ES=144C
Operation seems to be successful

下面是在Win95的DOS框下观察INT 13H中断的结果,很有意思的哦:只有一条指令ARPL。

C:\USER>intchain 13
INTCHAIN 3.0 is developed by Scott Zhong, SCDZ of USTC, Jan 30 1997

Trace Interrupt 13 Call
Enter : AX=0000 BX=0000 CX=0000 DX=0000 SI=0000 DI=0000 BP=0000 ES=127D

Code Entry Name Type Owner Pos Size Exec LastIns&INT
-----------------------------------------------------------------------------
FD5C:2557 ROM BIOS BasicI/O BIOS ROM 1 ARPL

Totally output 1 Module and executed 1 Instruction
Return: AX=0000 BX=0000 CX=0000 DX=0000 SI=0000 DI=0000 BP=0000 ES=127D
Operation seems to be successful

这个程序还可以用来检测当前内存环境中有没有病毒呢:你的INT 13H,INT 21H中断链
里有没有可疑的模块啊?

OK,如果对这个程序感兴趣,可以在下面的地址下载:
ftp://ftp.lib.pku.edu.cn/incoming/intchain/int.exe

这是一个自解压的程序,解开后有两个文件:intchain.exe和readme.txt。

BTW: Win95的beta版里有一个同名的程序,不过那个太土,我就自己做了一个。

--
走过天涯路 终究还是回头
看尽花似海 如雪落





※ 修改:·microbe 於 Jan 31 13:49:17 修改本文·
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·

(本文采用S-Term文章拷贝脚本拷贝)
==================================================
ko20010214
=================================
大功告成,打个Kiss!
ko20010214@MSN.com
神州优雅Q300C
Intel CeleronM 370处理器 | 256MbDDR内存
40G硬盘 | USB2.0 | IEEE 1394
13.3 ' WXGA 宽屏(16:10) | COMBO光驱
10/100M网卡 | 四合一读卡器
论坛跳转: