请教高手,如果实现真正的硬盘封锁(请看具体内容)?

summernightrain 2001-03-28 03:00:00
我以前用注册表封锁硬盘,但是在腾讯的浏览器中还是可以访问!
我在看了kingron的一些文章后,觉得是不是可以通过对API函数的拦截来实现对硬盘真正的封锁,真正的意思是用户不能通过任何浏览器,对话框或者其他任何形式访问到指定的一个分区.
如果我的想法可行,请问应该拦截那一个API函数呢?最好给出代码!

如果那位大侠有别的更加简便,可靠的方法,也请不吝赐教!!!

谢谢各位!!
...全文
674 39 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
summernightrain 2001-05-29
  • 打赏
  • 举报
回复
我的email是ukyo521xu@sina.com,欢迎来信讨论!
flyvol 2001-05-29
  • 打赏
  • 举报
回复
我要学
Kingron 2001-04-12
  • 打赏
  • 举报
回复
佩服。
summernightrain 2001-04-11
  • 打赏
  • 举报
回复
欢迎大家来讨论!!
gameboy999 2001-04-08
  • 打赏
  • 举报
回复
realdah@sohu.com

give me a copy,ok? thanks!
summernightrain 2001-04-08
  • 打赏
  • 举报
回复
我来说一下我程序里原理性的东西,其实很简单!

在看下面的代码之前,请大家参阅Vxd开发的书!

Vxd部分代码:(可以参阅VToolsd中IfsHook的例子)

int _cdecl MyIfsHook(pIFSFunc pfn, //指向文件操作的指针 (改变有效)
           int fn, //表明文件操作的类型 (改变无效)
           int Drive,//表明所访问的驱动器(改变无效
           int ResType,
 int CodePage, pioreq pir)
{

int LookupDrive,i;
LookupDrive='A'-1+Drive;

if (fn==IFSFN_FINDOPEN)
{
mypfn =pfn; //纪录FindOpen的文件指针
}

if ((Can_UseHideDrive_flag) && (HideDrive(LookupDrive)) && (fn==IFSFN_FINDNEXT) )
{
pfn=mypfn; //满足条件就转为我的文件指针
}
return (*PrevHook)(pfn, fn, Drive, ResType, CodePage, pir);
}


BOOL OnSysDynamicDeviceInit()
{
Can_UseHideDrive_flag =FALSE;
PrevHook = IFSMgr_InstallFileSystemApiHook(MyIfsHook);//创建IFSHOOK
return TRUE;
}

关键的函数是:int _cdecl MyIfsHook(pIFSFunc pfn, int fn, int Drive, int ResType,
int CodePage, pioreq pir)这个函数中参数 pfn是指向系统对文件操作的指针,这个指针决定了系统将调用那一个函数执行对文件的操作.pfn指向的函数有很多,比如findopen,findnext...等等.由于我不知道怎样得到该指针,,我用了一个自己的指针,记录下系统在做第一次findopen的指针.当系统要调用findnext函数时,我将它替换成findopen的指针,从而达到隐藏某一个驱动器下的目录及文件的目的.Can_UseHideDrive_flag标志和HideDrive函数都是我自定义用来判断是否需要将指向findnext的指针pfn改为指向findopen.
该vxd调用后的效果就像电脑魔法保护(华军软件园有下载)做驱动器隐藏的效果一样,大家可以下一个来看看!!

  与Vxd交互,我是用的共享内存的方法,即用delphi在共享内存中申请一块空间并存入隐藏信息,让后再用DeviceIoControl函数发送控制码给我的Vxd,Vxd得到这一特殊的控制码后就到这一块内存中读取该隐藏信息,并修改用来存储该信息的数组.最后调用HideDrive函数判断某一个驱动器是否该隐藏.

  以上是小生的一点浅薄的研究,没有什么很深的价值,只起一个抛砖引玉的作用.因为工作原因我没有时间仔细研究这其中的奥妙,所以希望感兴趣的朋友做一个更深入的研究,让大家共同进步...

summernightrain 2001-04-07
  • 打赏
  • 举报
回复
我的Vxd已经编写出来了!!不过没什么意思!!

用的IFSHOOK,大家如果想知道的话!看一下VtoolsD的例子就可以了解原理了!!

同时我用Delphi还写了一个调用的例子!如果大家感兴趣的话,请回复我可以把原理告诉大家!!
kmask 2001-04-02
  • 打赏
  • 举报
回复
我觉得要达到封锁硬盘分区的目的,用改写分区标志的方法可能更容易,更安全。
summernightrain 2001-04-01
  • 打赏
  • 举报
回复
请问大家,DeviceIoControl这个函数的用法?
summernightrain 2001-04-01
  • 打赏
  • 举报
回复
谢谢!!
严黎斌 2001-04-01
  • 打赏
  • 举报
回复
summernightrain,祝你成功。
我们期待着分享你的喜悦和代码 :)
summernightrain 2001-04-01
  • 打赏
  • 举报
回复
基本搞定,我已经知道怎样编写这个VXD,大家如果感兴趣的话!!大概3天后我就可以实现该功能了!
等到有源码的时候我再告诉大家吧!!
gameboy999 2001-04-01
  • 打赏
  • 举报
回复
to 严黎斌() 
你那块硬盘的IC电路是定制的,它固然比软件锁来得狠,
但实现的代价太高,
在这里谈是没有价值的.
严黎斌 2001-03-31
  • 打赏
  • 举报
回复
同志们哪,这点辩证关系都不明白,这是矛与盾的关系。
如果你想通过软件技术来封锁硬盘,那么也一定存在软件方法破解的。
除非,你从硬件上封锁。
严黎斌 2001-03-31
  • 打赏
  • 举报
回复
比如我ibm笔记本中的这块硬盘,具有硬盘密码锁功能。
如果如果设置了密码,那么每次开机都会需要口令,这是保存在硬盘中的,由硬盘维护的口令,不通过的话,就是无法访问,可不管你装的什么dos,win2000或者linux之类的。就算拆下来换一台主机,还是没用的。
这是不是要比大家讨论的方法灵?
summernightrain 2001-03-31
  • 打赏
  • 举报
回复
当然是要封住一般的软件了...那种故意想破这种封锁的软件我可管不了啊!!
呵呵!
Tod 2001-03-30
  • 打赏
  • 举报
回复
不是似乎不能对对目录的操作,而是肯定,呵呵,对文件是不灵的。另外,注册表根本不能封锁硬盘,别上当啊。
xiaoyueer 2001-03-30
  • 打赏
  • 举报
回复
CopyHook似乎只能Hook住对目录的操作
对文件就不灵了
qiezi 2001-03-30
  • 打赏
  • 举报
回复
真的很想知道答案
summernightrain 2001-03-30
  • 打赏
  • 举报
回复
To Kingron:
什么是IFS Hook??我有Vxd的开发工具--Vtoolsd,可以试试!VC虽然我也不熟,但是根据原理总可以试出点什么吧!你说呢?
To gameboy999:
哇,要拦截这三个函数??好,我试试!!
加载更多回复(19)

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧