高分问题:有没有办法对硬盘的某个扇区写入自己的数据?还可以在程序中读取出这个数据呢?用嵌入汇编吗?如何实现?(200分)

Z

ZRWeng

Unregistered / Unconfirmed
GUEST, unregistred user!
有没有办法对硬盘的某个扇区写入自己的数据?
还可以在程序中读取出这个数据呢?
用嵌入汇编吗?如何实现?

还有这样会不会对硬盘有影响?不会弄坏了它吧 ?[:D]
 
踢一脚~~
 
直接操作是肯定不行的。要么要用VXD,要么就要进入ring0级
我也帮不了太多,不过你可以参考一下CIH的源程序或者变速器
的研究手记,这两样东西可能可以帮到你。
 
没有其他办法了吗?[:(]
 
有啊。。
VCL就有其的类库,不要不懂装懂啊。。。但不要非法啊。。。
 
to 5i1zhou:
哪里呀,怎么用?
放心,犯法的事偶不做地[:D],只是用来加密用途而已。
 
windows好像不允许直接操作
试试biosdisk函数
 
biosdisk函数是什么用途?应该和BIOS没关系吧。

继续……,是不是不可能的任务呀?
 
没解了?
 
我给你找找看。。
 
去问问王江民吧,问问他的kv3000加密是怎么做的
 
在DskIO单元中有如下函数,自己试着用吧。。。。
function WriteLogicalSectorEx(StartSector, nSectors: Longint; var Buffer; nSize: Longint): Boolean;
function ReadLogicalSectorEx(StartSector, nSectors: Longint; var Buffer; nSize: Longint): Boolean;
function GetFATCluster(FATIndex: Longint): Longint;
function GetFATEntry(CopyOfFAT: Longint; Cluster: Longint): Longint;
procedure SetFATEntry(CopyOfFAT: Longint; Cluster: Longint; Value: Longint);
function VolumeCheck(var Flags: Longint): Boolean;
function GetMediaID(MID: PMID): Boolean;
function ReadRootDIR(var DIR: PDIR_Entry; var Entries: Longint): Boolean;
function ReadOtherDir(Cluster: Longint; var DIR: PDIR_Entry; var Entries: Longint): Boolean;
 
to 5i1zhou:
谢谢,但偶找不到DskIO.pas。这个单元文件在哪里呀?
to 天崖无爱:
王江民肯说吗?呵呵。
 
不会吧。。
上面的函数在D6中就有啊。
 
D6下也没有的!
 
Win98 下好说,2000下有点难度:)
 
多人接受答案了。
 
顶部