无忧启动论坛
标题:
请教lxl1638 和123MM 关于显示隐藏分区的代码
[打印本页]
作者:
wwwzhx
时间:
2008-3-11 20:45
标题:
请教lxl1638 和123MM 关于显示隐藏分区的代码
请教lxl1638 和123MM,在你们的PECMD和showdrive软件,
都有给隐藏分区分配盘符的功能,其中showdrive我已经用过,
pecmd的show和SUBJ命令我也看了相关说明。
现在我遇到这样一个问题,将FAT32或NTFS分区的ID改为12后,
该分区在XP中无盘符,磁盘管理中不可编辑修改,达到保护的目的。
这时grub可以搜索到该分区安装的grldr并启动该分区的PE映像,
但是无法加载外置配置文件和外置程序,因为隐藏分区在PE中也没有盘符。
这时ghost32可以读写该分区。基于以上试验,我设想:
1. 怎样加载该分区的外置程序,若基于pecmd的show和SUBJ命令,是否可行?
show命令能否基于卷标自动查找这个分区并分配固定盘符?
或者showdrive能否完成上述要求?
2. 123mm的showdrive程序是用什么函数查找隐藏分区、分配盘符的?
能否改成查找特定卷标并分配特定盘符?
或者,怎样写一个程序完成这个功能?
作者:
wwwzhx
时间:
2008-3-11 20:51
pecmd是否这样:
附件内有若干脚本用于演示 PECMD 的功能,这些脚本都可以在正常的系统中使用,
其中 PECMD.INI 文件是 32M_U盘版WinPE 的内核配置文件,使用这个配置文件即可自动
加载隐藏分区中的 WIM外置程序,并且启动后隐藏分区的隐藏属性不变。
/////////////////////////////////////////////////////////////////////////////////
_SUB MountOutSideWIM
ENVI WimFile=\WIM外置程序示例\PROGRAMS.WIM `WIM映像文件
ENVI $MountPath=%ProgramFiles% `挂载目录
MOUN %WimFile%,%MountPath%,1 `挂载WIM文件
LOAD %ProgramFiles%\PROGRAMS.INI `载入WIM映像内的INI配置
_END
/////////////////////////////////////////////////////////////////////////////////
作者:
123
时间:
2008-3-11 22:20
DefineDosDevice (DDD_RAW_TARGET_PATH, “x:",“\\device\\harddisk0\\partition2”);
只要一行代码就能把1:2分配盘符x:
是最不可思议的简单的方法
最主要的是,这种方法根本不理会分区格式,只是简单的分配盘符
[
本帖最后由 123 于 2008-3-11 10:22 PM 编辑
]
作者:
wwwzhx
时间:
2008-3-12 07:06
谢谢楼上 123 的提示,在你的showdrive.cpp源文件果然找到类似代码,
因为我不懂C,只会一点delphi,所以原先看代码时没看出来。
估计我要的函数你的源码里都有用到,就是一时分析不出来,
例如,如何确定某个分区是没有盘符的?是遍历硬盘分区表和盘符一一对照吗?
如何遍历硬盘分区?
如何卸载某盘符?这个功能PECMD是有的,请lxl1638指教。
作者:
netwinxp
时间:
2008-3-12 07:53
如果用批处理可以用rundll32.exe kernel32.dll,DefineDosDevice 1,X:,\\device\\harddisk0\\partition2。
DefineDosDevice第一个参数常用DDD_RAW_TARGET_PATH(其实就是1),DDD_REMOVE_DEFINITION(2),DDD_EXACT_MATCH_ON_REMOVE(4),好像还有一个8不过对应啥我就不清楚了,第三个参数需要为NT格式,比如C:\WINDOWS,要表示成\??\C:\WINDOWS。断开映射磁盘把第三个参数设置为NULL
这个函数主要用来把路径(包括网络路径也可以)映射或断开映射盘,用来隐藏盘效果不是很佳,可以通过我的电脑-管理-磁盘管理找回来。
[
本帖最后由 netwinxp 于 2008-3-12 02:15 PM 编辑
]
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3