首页
社区
课程
招聘
[旧帖] 分析C盘引导扇区,不解 0.00雪花
发表于: 2013-3-28 20:18 5753

[旧帖] 分析C盘引导扇区,不解 0.00雪花

2013-3-28 20:18
5753
在DOS下,用INT13H
我将80H盘,0面,0磁道,1扇区的内容,512个字节,读到DS:0--1FFH。然后DEBUG中用U命令查看。
xor ax,ax
mov ss,ax
mov sp,7c00h
sti
push ax
pop es
push ax
pop ds
cld
mov si,7c1bh
mov di,061bh
push ax
push di
mov cx,01e5h
repz
movsb
到这里,是不是7C1BH——7E00H共1E5H字节的内容已经被复制到061BH—0800H的空间中?
所以当下一步
RETF
时,程序将从061B开始执行,也就是程序将要执行的下一个指令是与7C0H:1BH处相同的。
而我的程序的DS:01B处的指令如下
mov si 07beh
mov cl,04h
cmp [si],ch;而0:07BEH与0:7DBEH处的值相同,为:4E
jl 002DH
jnz 003Bh
如果跳到3B的话则接下来的指令会显示:Invalid partition table.Error loading operating system.Missing operating system.系统启动失败?可是,我的计算机明明是能进入WINDOWS的。
为什么?是哪儿分析错了?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 183
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
不同的硬盘接口的两台机子,其代码稍有区别,不知区别是否是因为接口的不同。
把这段代码放在DOS下执行,则会死机,用DEBUG逐条执行,发现,死机会发生在执行repz movsb 或repz movsw时,当覆盖0:704—0:705内存单元内容时,光标照常闪烁,键盘无反映。怀疑重要数据被修改导致死机。这怀疑是不是真的?如果是,那么这段数据是什么?这段数据基本看不懂,当作数据来看吧:有意义的ASIC码并不多;当作指令则多是花指令;键盘缓存区,也不像,当然也可能是我没看懂。再说若是BIOS程序用到的内存,那么系统就应该彻底无法启动。所以,这应该是DOS系统用到的内存,是用来放什么的?
2013-3-30 18:34
0
雪    币: 118
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
我可以怀疑这是 病毒手法吗
2013-3-30 21:46
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
思路:
1、关中断后传数据。(避免影响)
2、相对地址与绝对地址的区别。
3、写地址前,检查是否有重要数据将要被覆盖。
2013-4-8 13:48
0
雪    币: 183
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
首先,STI是开中断。
0:700后的数据,应该是指令。发现当指令中使用32位寄存器时,用DOS的DEBUG或DEBUG中的U命令看时,会出现花指令的情况。
用U命令查看C盘引导目录的内容,分析无法启动的原因,可能是7C00后面的一些数据被系统中的其他程序覆盖。
等了这么长时间,没有答案,似乎可以结帖了
2013-4-11 20:41
0
雪    币: 276
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
[si]是si所指内存的值,你看过si所指内存值是多少了????
2013-6-1 21:50
0
游客
登录 | 注册 方可回帖
返回
//