这是我在愿BBS里面没有搞懂的问题:
1:如:
手工运行Debug,最好在纯DOS下:
Debug
- a100
- xor ax,ax 注意: 前面要加上功能号以选择Int13H内部的流程,避免进入其他不经过原始入口的流程
- int 13
- int3
2:用DEBUG进行跟踪:
-a 100 //a (汇编指令从当前段100开始)
mov ax,0201 //(读取一个扇区)
mov bx,200 //(读至当前段0200处)
mov cx,0001 //(柱面号=1)
mov dx,0080 //(磁头号,驱动器号=80)
sti
int 13 //(磁盘读写中断)
int 20
/*(调用DOS 20号中断,终止程序,将控制权交回给 DEBUG*/
``````````````````````````````````
“跟踪发现Int8H,Int 1CH,Int15H等向量对
Int13H进行了向量保护。解决办法:把Int8H,Int1cH,Int15H 也改会原始中断点(也是BIOS中断)。”
怎样把:Int8H,Int1cH,Int15H 也改会原始中断点呢?
`````````````````````````
debug
-d 0:4c
0000:004c 48 01 55 02
-a 0255:0148
-0255:0148 jmp f000:xxxx
-q
这个由-d 0:4c 得到的48 01 55 02 据说可以看作是还原卡第一条代码,但我一直没有测试成功,是不是我的使用方法有误呢?还是它根本就不能看作是还原卡的第一条代码?
````````````````````````````
我一向认为真实的INT13的真实地址应该形如:
F000:xxxx mov dl,80
我想知道这样说是不是很绝对,另外的是什么内型呢?(经常追很久都找不到它,实在有点怀疑)
`````````````````````````````````
我有的时候在追F000:xxxx mov dl,80 的过程中发现一些形如:
F000:xxxx CMP DL,80 的值,可以把这个值直接填入向量表吗?(据说还要选择在F000:8000以后的值来填入!)
```````````````````````````````````````
先谢了~
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课