如何用pecmd+imdisk挂载u+隐藏区

如题所述

第1个回答  2017-03-23
取自S大的源码:

用法 pecmd load "mount_hiend.ini" 1#4 Z: ro
pecmd load "mount_hiend.ini" 1#3 Z: ro

注意,使用时1#4 要注意避免1所代表的是本地硬盘,红色字符是特征文件。没有这些文件,表示挂错了,unmount

以下是《mount_hiend.ini》
envi in1=%~1 // 源物理磁盘号#分区号
envi in2=%~2 // 挂载的目标盘符:字母带冒号结尾的
envi in3=%~3 // 只读:ro 可写:rw

MSTR -delims:# n_hd=<1>%in1%
MSTR -delims:# par=<2>%in1%
FIND $%in3%=ro, envi &&rw=0!envi &&rw=1
GetMbrPt %n_hd%#%par% &&part_info
MSTR par.active=<1>%part_info%
MSTR par.fs=<2>%part_info%
MSTR par.start=<3>%part_info%
MSTR par.len=<4>%part_info%
FIND |%par.active%=0,!exit //不是USBZL或USBOS,退出
// mess MBR: %n_hd%-%par%\n%par.active%,%par.fs%,%par.start%,%par.len%
FIND |%par.fs%=0,exit //类型=0,返回
FIND |%par.len%=0,exit //长度=0,返回
PART -admin list part %n_hd%#%par%, &&part_info
MSTR par.letter=<8>%part_info%
FIND $%par.letter%=,!exit //盘符不为空,退出,避免重复挂载

RAMD ImDisk*&&V*%par.start%s*%par.len%s*%rw%*\\.\PhysicalDrive%n_hd% -a -o hd -m %in2% //扇区映射

ifex %in2%\USBZL.FLG,!ifex %in2%\USBOS.VER,!Call UNMOUNT

_SUB GetMbrPt
MSTR -delims:# n_hd=<1>%~1
MSTR -delims:# n_par=<2>%~1
SET &nm=\\.\PhysicalDrive%n_hd%
;read active flag
CALC &&addr=0x1BE+16*(%n_par%-1)
GETF %nm%,%&addr%#1,&&pt.flag
;read type
CALC &&addr=0x1C2+16*(%n_par%-1)
GETF %nm%,%&addr%#1,&&pt.type
;read "start sector" and "length in sectors"
CALC &&addr=0x1C6+16*(%n_par%-1)
GETF# %nm%,%&addr%#8,&&sn1
SET?long &sn1=&&pt.start:0
SET?long &sn1=&&pt.len:4
ENVI ret=%pt.flag% %pt.type% %pt.start% %pt.len%
ENVI-ret %~2=%ret%
_END

_SUB UNMOUNT
RAMD Imdisk*&&V3 -d -u %in2%
RAMD Imdisk*&&V3 -D -u %in2%
RAMD Imdisk*&&V3 -R -u %in2%
_END

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网