首页 > 正文

PE经典DIY案例:让你的PE除了量产和U+B+高端隐藏外
天意U盘维护系统 发布时间:2013-06-17 11:35:15

PE的最迷人之处,就是DIY。通过DIY,新人才能慢慢提高水平。 通过简单的DIY,就可以让量产用的PE,也能玩U+高端和B+隐藏。但你会发现,...
       转自zds1210作品
       PE的最迷人之处,就是DIY。通过DIY,新人才能慢慢提高水平。
        通过简单的DIY,就可以让量产用的PE,也能玩U+高端和B+隐藏。但你会发现,这种内核解开的PE,一U+到zip格式的隐藏区,很多机子启动PE就卡nt5和nt6引导上,更不要说U+深度隐藏和UD了。这一次我们再来一次DIY,让你的PE,还能玩UD和U+V2-hdd深度隐藏,成为可刻盘、量产、UD、U+深度隐藏和B+隐藏的大一统ISO PE吧。
        UD和U+深度隐藏都是抹掉分区信息的,在windows/winPE下找不到隐藏分区,所以,相当安全可靠,可以防病毒、防误删除和误格式化。
        一、PE内核打包
        为了让你的PE支持部署 UD和U+深度隐藏,PE内核打包成ISO用grub4dos来进行map是必须的。因为即使grub能识别引导UD和U+深度隐藏这种抹掉分区信息的隐藏区,但nt5和nt6引导很可能不识别,就会卡在PE启动上了。内核解开到内核打包,其实也不复杂,如果你懒,建议你抄人家做得好的UD版改造吧,反正网上一大堆。
但内核打包后,又会引导兼容型问题,特别是对新型电脑特别是新型笔记本电脑的兼容,会出现内核打包map引起的非硬盘驱动的蓝屏问题,主要是nt5 PE,win7 win8 PE好像没这个问题。为解决这个问题,grub增加了一下参数来解决。我们在nt5 PE引导菜单中增加几个兼容模式就可以解决问题了。
        map --e820cycles=n(不加参数默认为-1,从0-3试一下)
        map --hook

       二、使grub引导识别U+深度隐藏区
        grub可以识别并引导UD区,但并不能识别并引导U+深度隐藏区,我们应对其内置菜单grldr作如下改进:
        #由论坛P大和2011czmxbb52大提供。实测多个grub版本,均成功通过。
        errorcheck off
       debug off
       configfile ()/menu/menu.lst || find --set-root /menu/menu.lst && configfile /menu/menu.lst
       set eb=0
       dd if=(hd0)96+1 of=(md)768+1 bs=1 count=8 skip=502
       set /a pe=*393216 && set /a ps=*393220
       write 393216 0
       write 393220 0
       map (hd0)%pe%+%ps% (17)
       map –hook
       set pe= && set ps=
       set eb=17
       rootnoverify (17)
       ls (17)/ > nul
       configfile (17)/menu/menu.lst || find --set-root /menu/menu.lst && configfile /menu/menu.lst
       pause Error: menu.lst not found! && commandline
       同时内核打包后,纯grub多引导的iso,U+时仍可以保留grub多引导,这点不用担心了。

        三、PE内核改进
        我们在PE内核加入了ultraiso的官方版bootpart驱动(bootpart.exe、bootaprt.sys,64位pe加bootpt64.sys)后,就原生态的支持U+V2高端隐藏区和B+隐藏区。事实上,bootpart驱动也支持U+V2-hdd深度隐藏区挂载,暂不支持U+V2-zip深度隐藏区挂载。同时,UD区文件是不能直接使用的,现在都要导出到可见区下再使用——为了增加对UD隐藏区的数据读出,我们推荐大家在%windir%\system32\下加入百草霜老大的在原版fbinst基础上改进的fbinst plus,它可以完美支持ud的uft-8文件格式。bootpart和fbinst plus这两个软件在基本PE内核下都可以运行,实测对U+和B+隐藏及UD隐藏在xp 03 win7 和win8系统下支持都非常好。

       (一)fbinst plus的基本用法
        改进fbinst plus采用的是命令行模式,但功能很强大,我们可以在pecmd脚本下或cmd脚本下调用下。以下是在pecmd脚本上调用的常用用法:
        //1.导出UD区文件
        EXEC =!%WinDir%\SYSTEM32\fbinst (ud) output tools/ico.dll %WinDir%\system32\%~nx
       //2.系统自启动程序调用
        //EXEC =!%WinDir%\SYSTEM32\fbinst --udload "tools/文字输入/FREEWB.exe" "%TEMP%"
       //3.1建立UD区程序按需调用的快捷方式并加图标(是弹出黑窗口,,)
        TEAM ENVI FBE=fbinst --link|ENVI FBU=fbinst.exe "—udload
       //引用快捷图标,有时是#,是时候是,
       exec =!%FBE% %Desktop%\手工运行ghost32" %FBU% petools/备份还原/ghost32.exe %TEMP%" ico.dll#22
       exec =!%FBE% % Programs %\备份还原\手工运行ghost32" %FBU% petools/备份还原/ghost32.exe %TEMP%" ico.dll#22
       //3.2建立UD区程序按需调用的快捷方式(不弹出黑窗口)
        TEAM ENVI SS=%windir%\system32|ENVI FBU=!%SS%\fbinst.exe --udload tools|ENVI PEC=%windir%\system32\pecmd.exe
       //引用快捷图标,有时是#,是时候是,
       link %Programs%\搜索自定义petools,%PEC%,exec %fbu%/文件工具/fbpetools.cmd %TEMP%,%SS%\ico.dll#2
       link %Programs%\系统维护\远程编辑注册表,%PEC%,exec %fbu%/系统维护/远程编辑注册表.exe %TEMP%,%SS%\ico.dll#11
       link %Desktop%\Aida64 环境检测,%PEC%,exec %fbu%/硬件检测/aida64.exe %TEMP%,%SS%\ico.dll#13
//4.搜索UD区指定文件夹并建立快捷方式
        exec =!WinDir%\SYSTEM32\fbinst --onlylink "PEtools/*" %TEMP%

       //5全盘搜索可见区\Petools并建立快捷方式,win8PE不完善建议用其它pecmd脚本搞定
        exec =!%windir%\system32\fbinst.exe --autoptlink

       (二)智能判断PE部署环境脚本
        我们在PE内核加这两个程序以后,就可以在PE内核启动后,由Pecmd.ini调用load.cmd,由load.cmd智能判断PE部署环境,可见区由pecmd load加载外置,U+和B+隐藏区由bootpart只读加载隐藏区,UD由fbinst plus建立外置的按需加载快捷方式。
        load.cmd智能脚本如下,请大家慢慢改进吧。
        @echo off
       rem 以下脚本由独剑原创,可智能加载可见区UD区U+深隐藏区和B+区外置;实测在xp 03 win7 win8 PE下通过。
        for %%x in (A B C D E F G H I J K L M N O P Q R S T U V W) DO if exist %%x:\TOOLS\CD03PE2013.INI goto cd
       goto UD
       rem 量产版U+和B+版的外置配置文件为CD03PE2013.INI
       :cd
       %WinDir%\SYSTEM32\pecmd.exe load \TOOLS\CD03PE2013.INI
       goto end
       rem UD的外置配置文件为UD03PE2013.INI
       :UD
       %WinDir%\SYSTEM32\fbinst.exe (ud) output tools/ud03pe.ini %WinDir%\%%~nx
       if not exist %WinDir%\ud03pe.ini goto ULBI
       %WinDir%\SYSTEM32\pecmd.exe load %WinDir%\ud03pe.ini
       goto end
       :ULBI
       %windir%\system32\bootpart.exe -mount
       -readonly
       -driveletter T:
       if not exist T:\TOOLS\CD03PE2013.INI goto end2
       %WinDir%\SYSTEM32\pecmd.exe load T:\TOOLS\CD03PE2013.INI
       goto end
       :end2
       %windir%\system32\bootpart.exe -eject
       @echo on
       exit
       :end
       @echo on
       exit
       有些朋友不喜欢用cmd脚本,同时为了保持方案的通用性,这里提供pecmd脚本。也就是在内核中加入fbinst plus和bootpart(三文件,bootpart.exe、bootaprt.sys,64位pe加bootpt64.sys)后,大家把把pecmd.ini调用外置处(load winpe.ini),改成如下脚本就可以:
        //UD和非UD(光盘量产U+B+版)通用外置挂载方案;ud为ud03pe.ini,非UD为cd03pe.ini
       //试着导出UD区配置文件,成功为UD版,不成功则为非UD版
        EXEC =!%windir%\system32\fbinst.exe (ud) output tools/ud03pe.ini %WinDir%\%~nx
       //非UD版,则试着只读挂载U+或B+隐藏区到T盘;
        IFEX %WinDir%\ud03pe.ini,! EXEC =!%windir%\system32\bootpart.exe -mount -readonly -driveletter T:
       //如果挂载的是非U+或B+隐藏盘,则取消挂载,免浪费盘符
        IFEX T:\TOOLS\cd03pe.ini,! EXEC =!%windir%\system32\bootpart.exe -eject
       //UD版加载外置配置文件ud03pe.ini;非Ud版加载外置配置文件cd03pe.ini
       IFEX %WinDir%\ud03pe.ini,load %WinDir%\ud03pe.ini!load \cd03pe.ini

       也可以试着由以下有子过程的pecmd脚本解决
        //UD和非UD(光盘量产U+B+版)通用外置挂载方案;ud为ud03pe.ini,非UD为cd03pe.ini
       //试着导出UD区配置文件,成功为UD版,不成功则为非UD版
        EXEC =!%windir%\system32\fbinst.exe (ud) output tools/ud03pe.ini
       %WinDir%\%~nx
       //UD则加载配置文件ud03pe.ini,非UD调用子过程,智能处理
        IFEX
       %WinDir%\ud03pe.ini,load %WinDir%\ud03pe.ini! CALL CD_LOAD
       _SUB CD_ LOAD
       //试着用bootpart只读挂载U+和B+隐藏区到T盘
        EXEC =!%windir%\system32\bootpart.exe -mount
       -readonly
       -driveletter T:
       //如果T盘存在配置文件,则说明挂载成功直接加载T盘外置;如无配置文件,则取消挂载,用pecmd load加载可见区外置。
        IFEX T:\TOOLS\cd03pe.ini,LOAD T:\TOOLS\cd03pe.ini!TEAM TEXT 载入可见区外置| EXEC =!%windir%\system32\bootpart.exe -eject|load \TOOLS\ cd03pe.ini
       _END

       (三)最简单的大统一方案——支持光盘、量产、UD、U+V2-hdd深度隐藏和B+隐藏
        如果大家感觉上面的大麻烦,就给大家一下最简单的统一加载外置\petool方案吧。
        本方案中利用百大的fbinst plus(fbinst.exe)和ultraiso自带的bootpart驱动(bootpart.exe,bootpart.sys,bootpt64.sys)来实现可见区、UD区和U+隐藏区(低端隐藏、高端隐藏和深度隐藏-hdd格式,不支持深度隐藏U+V2-zip格式)和B+隐藏区\petools\外置的自动建立快捷方式。PE系统支持32位或64位的xp 03 win7和win8 PE。
        首先要求外置软件单个打包成能单独运行,分目录放置于\petools\下。然后PE内核%windir%\system3\下内置四文件fbinst,bootpart.exe, bootpart.sys,bootpt64.sys,并编写cmd脚本在pecmd.ini的适合位置调用。cmd脚本如下,你也可以改成pecmd脚本。
        @echo off
       rem 以下代码可以搜索可见区、UD区、U+隐藏区和B+隐藏工petools文件夹,并建立快捷方式。
        Rem U+隐藏区不支持深度隐藏U+V2-zip格式。
        rem 在win8PE中可见区搜索不完善,建议大家用pecmd脚本代替
        %windir%\system32\fbinst --onlylink "PEtools/* "%TEMP%
       %windir%\system32\bootpart.exe -mount -readonly -driveletterT:
       %windir%\system32\fbinst.exe --autoptlink
       
        四、部署要点:
        1.U+:支持ultraiso部署到U+V2-hdd深度隐藏,因bootpart所限,并不支持U+V2-zip深度隐藏外置加载。
        2.B+:推荐用bootice部署到usb-hdd隐藏区,并要把隐藏区激活,以免bootpart挂载不了隐藏盘。

        大家可以参加我制作的半解开统一成品PE:(在杏大PE2013元旦UD版基础上改进成统一版)
        我的博客上的帖子:
        http://zds1210.blog.163.com/blog/static/24481248201303001531628/无忧论坛上的帖子:
        http://bbs.wuyou.com/viewthread.php?tid=274893

       制作好以后,你会发现,这种全外置的统一PE,并不支持U+V2-zip深度隐藏下加载外置,这只能怪官方的bootpart了。难道一定要全内置PE才行吧?下次,我再出一个绝招,用很另类的方法,不用什么bootpart,也不用什么fbinst了,不要说什么U+V2-zip深度隐藏,就是以后出来很牛的隐藏区,只要grub能识别,我们就能加载实现统一部署。
关于我们 | 免责声明 | 版权声明 | 联系我们 | 商务合作
版权所有 © 2024 天意U盘维护系统 保留所有权利 鄂ICP备2020017155号
0.6112s