-
-
[旧帖] [求助]再次求助,请高手帮我看看这个驻留程序有没有问题 0.00雪花
-
发表于: 2009-6-4 07:52 2140
-
;利用TSR驻留程序实现当BIOS INT 13H中断读磁盘时,截取INT 13H,并在屏幕右上角显示字符‘D’(80*25)
CODE SEGMENT
ASSUME CS:CODE
ORG 100H ;256字节空余区间
START: JMP init
INT13 dd ? ;原13号中断向量保存单元
TSR:
PUSHF
MOV AX, CS
MOV DS, AX
MOV ES, AX ;把CS的值赋给DS和ES
MOV AH,2 ;置光标
MOV BH,0
MOV DH,24 ;右上角坐标(24,79)
MOV DL,79
INT 10H
;显示字符
MOV AH,9
MOV AL,'D'
MOV BL,07H
MOV BH,0
MOV CX,1
INT 10H
POPF
CLI
JMP CS:INT13 ;转向中断13H原服务程序
init: MOV AX,CS
MOV DS,AX
MOV ES,AX
CLI
MOV AX,3513H ;获取13H的中断向量
INT 21H
MOV CS:WORD PTR [INT13],BX
MOV CS:WORD PTR [INT13+02H],ES
LEA DX,TSR ;DX=中断处理程序入口地址的偏移
MOV AX,2513H ;设置中断向量,13中断向量
INT 21H
STI
LEA DX, init
ADD DX, 15
MOV CL, 4 ; 把init的偏移量转换成“节数”
SHR DX, CL ;每节内有16个字节
MOV AX, 3100H
INT 21H
CODE ENDS
END START
CODE SEGMENT
ASSUME CS:CODE
ORG 100H ;256字节空余区间
START: JMP init
INT13 dd ? ;原13号中断向量保存单元
TSR:
PUSHF
MOV AX, CS
MOV DS, AX
MOV ES, AX ;把CS的值赋给DS和ES
MOV AH,2 ;置光标
MOV BH,0
MOV DH,24 ;右上角坐标(24,79)
MOV DL,79
INT 10H
;显示字符
MOV AH,9
MOV AL,'D'
MOV BL,07H
MOV BH,0
MOV CX,1
INT 10H
POPF
CLI
JMP CS:INT13 ;转向中断13H原服务程序
init: MOV AX,CS
MOV DS,AX
MOV ES,AX
CLI
MOV AX,3513H ;获取13H的中断向量
INT 21H
MOV CS:WORD PTR [INT13],BX
MOV CS:WORD PTR [INT13+02H],ES
LEA DX,TSR ;DX=中断处理程序入口地址的偏移
MOV AX,2513H ;设置中断向量,13中断向量
INT 21H
STI
LEA DX, init
ADD DX, 15
MOV CL, 4 ; 把init的偏移量转换成“节数”
SHR DX, CL ;每节内有16个字节
MOV AX, 3100H
INT 21H
CODE ENDS
END START
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- [求助]再次求助,请高手帮我看看这个驻留程序有没有问题 2141
- [求助][求助]TSR驻留程序帮助 2147
- [讨论]我们老师怎么样 3750
- 一个菜鸟级的CRACKME分析 3719
- 一个非常菜的CRACKME分析 13993
看原图
赞赏
雪币:
留言: