无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 41064|回复: 89
打印 上一主题 下一主题

[分享] U+深度隐藏毫无意义

    [复制链接]
跳转到指定楼层
#
发表于 2013-5-4 10:11:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 hhh333 于 2013-5-4 10:23 编辑

P大和Z版对这种方式似乎很推崇,近期也拜读了他们的大作,作了一些试验,U+了不知道多少次,经验当然要分享!这里主要讨论U+深度隐藏。因牵涉到grldr,因此还是发在这个区。

1、首先看一下U+的几种隐藏方式有什么特点
隐藏方式
U盘写入的区域
是否分区及DG下可读
大文件是否要求连续
是否支持PXE启动
能否找到外置
隐藏
前端
×
×
×
高端隐藏
后端
×
深度隐藏
前端
×

(这里讲不能找到外置当然是指不额外使用隐藏区挂载工具时的情况)
深度隐藏是没有分区信息的(或者说分区表被移动了),因此会产生严重的问题:
①EZB和Syslinux可以出菜单,但PE1.x启动时会提示ntdetect错误,PE3/4会提示BCD错误,实际就是说setupldr和bootmgr等根本不认这个没有分区信息的分区;
②grldr不经过处理也不能读取这个分区的文件,当然也不能启动;
目前,这种隐藏方式下用EZB和syslinux可以启动DOS映象和Slitaz Linux。

2、对grldr进行一些改造
这是pseudo解决这个问题的思路:
  1. 1、找到隐藏分区的分区表项信息(第97扇区末)
  2. 2、解析分区表项,得到分区起始扇区、总扇区数等信息
  3. 3、将隐藏区映射为一个虚拟软盘
  4. 4、直接访问虚拟软盘上的文件,启动PE
  5. 核心grub4dos代码:
  6. dd if=(hd0)96+1 of=(md)768+1 bs=1 count=8 skip=502
  7. set /a pe=*393216 && set /a ps=*393220
  8. map (128)%pe%+%ps% (17)
  9. map --hook
  10. rootnoverify (17)
  11. #now you can load PE from (fd17)
复制代码
根据这个意思,我对grldr的默认菜单进行了改写:
  1. pxe detect
  2. configfile
  3. default 0
  4. timeout 1

  5. title find /menu.lst, /boot/grub/menu.lst, /grub/menu.lst
  6. errorcheck off
  7. configfile /boot/grub/menu.lst
  8. configfile /grub/menu.lst
  9. if "%@root%"=="(ud)" && calc *0x82A0=*0x82b9&0xff
  10. dd if=(hd0)96+1 of=(md)768+1 bs=1 count=8 skip=502
  11. set /a pe=*393216 && set /a ps=*393220
  12. map (hd0)%pe%+%ps% (fd3)
  13. map --hook
  14. rootnoverify (fd3)
  15. if "%@root:~1,1%"=="f" && find --set-root --devices=f /menu.lst && configfile /menu.lst
  16. find --set-root --ignore-floppies --ignore-cd /menu.lst && configfile /menu.lst
  17. find --set-root --ignore-floppies --ignore-cd /boot/grub/menu.lst && configfile /boot/grub/menu.lst
  18. find --set-root --ignore-floppies --ignore-cd /grub/menu.lst && configfile /grub/menu.lst
  19. errorcheck on
  20. commandline

  21. title commandline
  22. commandline

  23. title reboot
  24. reboot

  25. title halt
  26. halt
复制代码
为了方便阅读和提高兼容性将17改为fd3(不超过有的BIOS实际承认的软驱数),经过这么改造以后,确实多数机器可以出菜单,但我一台i3的挂了两个硬盘的机子,直接死机。出菜单以后的表现与EZB和syslinux相似,PE都不能启动,即控制权转交给setupldr和bootmgr后还是不能读文件!

后又看P大的菜单,用的是整体启动,即映射为软驱后,再将ISO映射为(0xff),之后再启动其上的PE,失去了他原先作品的解开、整体都没有问题的特点。

3、其他两种隐藏方式除nativePE和非RAMPE不能启动外,启动其他形式的PE没有问题,特别是启动阶段加上bootpart工具后找外置也没有问题(基于这个原因我认为U+比UD更具优势)。

通过以上的试验可以得出如下结论:
1、隐藏主要是为了保护启动文件,因此使用一般隐藏和高端隐藏就够了,没必要弄什么深度隐藏,如果只用DOS工具linux可以考虑这种方式(我个人认为一般隐藏应该兼容性更好,因为启动区在U盘前端);
2、即使对grldr默认菜单进行改造,深度隐藏方式的兼容性也是最差的,不用说老机,就是有的较新的机器可能连菜单也出不了;
3、比较切合实际的做维护的办法还是准备2个U盘,容量大的做U+隐藏或高端隐藏,容量小的做UD,前者对付新机,后者对付老机;

以上观点当否,请大家发表意见!

推荐
发表于 2013-5-4 11:16:35 来自手机 | 只看该作者
看来UD开发速度跟不上形式啦!开发者需要大大滴更新呀。不过俺还是用UD,用着方便,一个fbinsttool就能日常够用了。
回复

使用道具 举报

推荐
发表于 2013-5-5 11:38:08 | 只看该作者
hhh333 发表于 2013-5-5 11:17
我这台NF3的机器反正是有问题,目前U+只能用USBHDD+方式就能正确识别为HDD,其它的任何组合如V2或隐藏等 ...

完全不是你说的那样。你只要能够启动 grldr,那就表明你没有遇到实质性的困难。

如果有实质性的困难,BIOS 故意设置障碍,让 dos、syslinux、ud、grub4dos 等无法进入,那么你根本就不能进入 grub4dos 的环境。

只要能够进入 grub4dos 的环境,那就说明,谢天谢地,这里没有根本性的问题,全都是可以解决的。虽然有某些问题,但那都属于小毛病,通过认真设置、完善,都是可以解决的。当然,前提是,你想去解决。如果你选择放弃,那当然就是无解了。

回复

使用道具 举报

推荐
发表于 2013-5-4 15:40:41 | 只看该作者
zhaohj 发表于 2013-5-4 14:03
set /a pe=*393216 && set /a ps=*393220
是没有问题的,取地址的值。
(md)768,是否有问题,这块地址 ...

set /a pe=*393216
读出来的数据有可能是64位的,必须考虑这种情况.....



回复

使用道具 举报

推荐
发表于 2013-5-4 14:03:51 | 只看该作者
不点 发表于 2013-5-4 11:37
你们都忽略了,不久以前在本版有讨论,说下面这句,在 grub4dos 新版下是错误的:

set /a pe=*393216 && ...


set /a pe=*393216 && set /a ps=*393220
是没有问题的,取地址的值。
(md)768,是否有问题,这块地址能随便写吗?
改成(md)0x200+1

上面地址也相应调整。
回复

使用道具 举报

推荐
发表于 2013-5-4 12:51:52 | 只看该作者
U+高端隐藏支持UEFI启动,这才是他的亮点.
回复

使用道具 举报

推荐
发表于 2013-5-4 11:37:18 | 只看该作者
你们都忽略了,不久以前在本版有讨论,说下面这句,在 grub4dos 新版下是错误的:

set /a pe=*393216 && set /a ps=*393220

所谓的“成功率不高”,估计都是由此引起的。

请用正确的写法来写以上这一行。请查找以前的讨论。

也请知道的人,给出正确的语句,避免他人继续使用错误的语句。

回复

使用道具 举报

推荐
发表于 2013-5-4 11:05:48 | 只看该作者
U+深度隐藏区感觉类似于UD扩展区,但U+启动的兼容性貌似低于UD
我用一块U盘,一块SD卡反复测试了+隐藏/高端隐藏/深度隐藏,在新机器和一台05年的老服务器上反复做过各种测试,现在选用的还是UD+手动添加末端隐藏区的方式

如果UD扩展区可以设置为一般隐藏属性就好了,这样在保留UD高启动成功率的同时可以支持UEFI
回复

使用道具 举报

推荐
发表于 2013-5-4 10:20:51 | 只看该作者
对u+隐藏无爱。。。。
回复

使用道具 举报

推荐
发表于 2013-5-5 14:09:58 | 只看该作者
于夜大一样“对u+隐藏无爱。。。。”
回复

使用道具 举报

推荐
发表于 2013-5-5 12:09:38 来自手机 | 只看该作者
哇!看贴长知识呀。虽然有些听不懂…
回复

使用道具 举报

79#
发表于 2020-2-23 11:06:19 | 只看该作者
回复

使用道具 举报

78#
发表于 2016-10-9 16:42:42 | 只看该作者
试了下这种方式,BOOTMGR访问不了这个分区,不能直接用BOOTMGR启动NT6.X的PE
回复

使用道具 举报

77#
发表于 2016-8-12 14:03:40 | 只看该作者
此帖可仔细读一下,值得学习
回复

使用道具 举报

76#
发表于 2016-8-2 11:13:47 | 只看该作者
学习

回复

使用道具 举报

75#
发表于 2014-11-1 11:12:21 | 只看该作者
U深三分区法测试成功,兼容bios/uefi。用事实来证明U+深度隐藏还是有意思的。
偶喜欢新玩法。
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

74#
发表于 2014-10-30 22:22:28 | 只看该作者
本帖最后由 zds1210 于 2014-10-30 22:29 编辑

支持UEFI的U+深度隐藏三分区法和分区表项法已经创立成功了,bios/uefi双启成功了。
和UD三分区法一样,U深三分区法充分利用了U盘前端bios启动兼容性好,U盘高端隐藏uefi启动兼容性好
回复

使用道具 举报

73#
发表于 2014-7-21 19:27:53 | 只看该作者
主要是身体不好,不能写博客。QQ 从来都没使用过。抱歉让您失望。我的大部分发言,都在时空论坛和无忧启动论坛。时空论坛不能访问了,很可惜。不过,无忧论坛也可以找到我。

我已经退出 grub4dos 的开发和维护。目前由 chenall 负责维护,而且 chenall 有自己的博客,很好。bean,Roy 和 yaya 以及其他许多技术强人都曾经或正在协助 chenall。有问题就问他们吧。

回复

使用道具 举报

72#
发表于 2014-7-21 18:02:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

71#
发表于 2014-4-8 18:39:28 | 只看该作者
从来不隐藏,最多对iso进行碎片整理
回复

使用道具 举报

70#
发表于 2014-3-19 18:44:26 | 只看该作者
UD对老一点的机子,成功率较高。
回复

使用道具 举报

69#
发表于 2014-3-16 11:34:27 | 只看该作者
本帖最后由 mdyblog 于 2014-3-29 12:49 编辑
Cracada 发表于 2013-5-4 11:05
U+深度隐藏区感觉类似于UD扩展区,但U+启动的兼容性貌似低于UD
我用一块U盘,一块SD卡反复测试了+隐藏/高 ...


新的 UD+(MBROS) 已经支持你的要求 , UD区同时可一般隐藏或不隐藏。
还支持GPT分区。此时是默认只读+一般隐藏。更安全了。
回复

使用道具 举报

68#
发表于 2013-12-3 01:23:00 来自手机 | 只看该作者
hhh333 发表于 2013-5-6 17:16
大家应该没听说过,不隐藏来不了,隐藏后可以来的机器吧?而反之已经有一批实例的机子了,你觉得谁的兼容 ...

很有道理,兼容性高于一切才是硬道理!
回复

使用道具 举报

67#
发表于 2013-11-30 18:56:38 | 只看该作者
本帖最后由 zds1210 于 2013-11-30 18:59 编辑

这个帖子很有意义,经过大师们的指点,我的U+深度隐藏PE兼容性提高了不少,基本上UD能启动,我的U+深度隐藏也能启动;有时候UD启动不了(估计没有加chs),U+深度隐藏刚刚的
最新发现在新老版uI在深度隐藏的问题:9.5版能bootpart能挂载usb-hdd+v2深度隐藏区,但挂载不了zip深度隐藏;
9.6新版刚好相反,能挂载zip深度隐藏,不能挂载hdd深度隐藏。问题不是出在bootpart上,而是在U+隐藏的写入下。只有等官方升级修正了。
现在我制作了一个UI新老便捷合体版,暂解决了问题,usb-hdd+v2深度隐藏区用老版制作,zip深度隐藏及其它隐藏用 新版制作,实测同一PE
挂载外置成功。
准备更新我的支持U+深度隐藏的PE,同时出一个教程,让大家合理的玩U+深度隐藏zip或hdd,目前感觉这样子比较完美了。哈哈。这个教程,对于p大的ope也是适用的。
回复

使用道具 举报

66#
发表于 2013-5-17 09:05:44 | 只看该作者
普通隐藏就很好了
回复

使用道具 举报

65#
 楼主| 发表于 2013-5-16 18:04:33 | 只看该作者
本帖最后由 hhh333 于 2013-5-17 11:13 编辑
zds1210 发表于 2013-5-15 19:00
通过菜单的改进,U+对grub的兼容性又增强了不少,实测和UD兼容性差不多。加上U+对easyboot的兼容性刚刚的, ...


我不是说隐藏无用,而是认为深度隐藏相对于高端隐藏或者隐藏似乎确实没什么用。如果LS能够证明,有的时候只有深度隐藏能够用,而另外两种不能用,则我的无用说就显然说不过去了;而相反的情况确实又有许多,因此我的无用说就成立了。深度隐藏有点搬起石头砸自己的脚的味道。况且,在Windows下,这个深度隐藏区是一个自由空间,跟其他的自由空间也不好区分,很容易被误删格式化。
回复

使用道具 举报

64#
发表于 2013-5-15 19:00:58 | 只看该作者
通过菜单的改进,U+对grub的兼容性又增强了不少,实测和UD兼容性差不多。加上U+对easyboot的兼容性刚刚的,楼主说U+深度隐藏无意思,这个说法行不通。
回复

使用道具 举报

63#
发表于 2013-5-15 09:18:44 | 只看该作者
zds1210 发表于 2013-5-15 00:42
谢谢不点,看来内置菜单还是不要乱改为好,紧急修正内置菜单后,好像也解决了U+深度隐藏后U盘加速后卡死的问 ...

我以前说过,只要能够进入 grub4dos 的环境,即,只要 grldr 能够被启动,问题都不严重,所有的问题都可以通过调整设置而获得解决。真正无法解决的问题是,当你根本不能启动 GRLDR 的时候。

新版 grub4dos 还特别显示一条信息如下:

Running menu commands(hangup means you have a problematic config)...

只要能显示这条信息,就证明 GRLDR 成功获得了控制。如果在此处死机,那就证明,是菜单的错误引起的,几乎可以说是毫无疑问的。

这条信息是强制显示的,也是一种努力来帮助用户自己排查错误。开发者本来就应该替用户着想,减少用户发生错误的几率,而当真正的错误发生时,又能提醒用户,让用户知道大致的原因在哪里。

有些人千方百计地想去掉这些调试信息,以为那样就“干净”了。殊不知,开发者不会吃饱了撑的,添加一些无用的信息。
回复

使用道具 举报

62#
发表于 2013-5-15 00:42:47 | 只看该作者
谢谢不点,看来内置菜单还是不要乱改为好,紧急修正内置菜单后,好像也解决了U+深度隐藏后U盘加速后卡死的问题。。
回复

使用道具 举报

61#
发表于 2013-5-14 22:10:32 | 只看该作者
1、 内置菜单中find set root忽略软驱查找,,外置菜单中是否要忽略软驱查找?

首先得明白,为什么要忽略软驱?那是因为,在某些有 bug 的 BIOS 下,一旦访问软驱,就出现死机或假死。你想啊,在那样的 BIOS 之下,这软驱是不敢碰的,一碰就死机或长时间无响应了。所以,无论内置菜单还是外置菜单,或者是手动敲入命令,都同样不敢访问软驱。此处所说的软驱,仅仅是指 BIOS 赋予的 fd0 软驱。用户自己虚拟出来的软驱,不在此列。因为用户自己虚拟出来的软驱,是完全可以访问的介质,比如,它实际上是硬盘上的一个 IMG 文件。如果介质不可访问,那根本就不能成功虚拟出来。所以,虚拟出来之后,一般就是可以访问的了。并非所有的 BIOS 都有这毛病。有的 BIOS 很健壮,没有这类五花八门的死机、假死的毛病,因此,在那些 “好” 的 BIOS 下,你访问软驱就没问题。

2、 内置菜单中ls (fd3),这句是否会查找软驱,要不要关闭?

刚才解释了,这是你自己虚拟出来的软驱,你完全可以访问它。它不是 BIOS 制造出来的虚假软驱。BIOS 由于某种原因(故意的,或者是 bug)制造出来一个虚假的软驱,一访问它就死机。你想啊,一访问就死机的设备,那肯定不是真正的软驱。它是一个虚假的软驱。是 bug ?还是故意弄出来的?此处不多讨论了。

3、 外部命令前要不要加command,如command dpms,加与不加有什么不同?

加不加 command,都能执行外部命令。如果你有一个外部命令,正好与某个内部命令是一样的名字,而你又不希望运行内部命令,那么,你肯定得加上 command 才行。否则的话,内部命令就抢先执行了。

加上 command 之后,整个命令被认为是 “启动敏感的”。
不加上 command ,整个命令被认为是 “启动不敏感的”。
回复

使用道具 举报

60#
发表于 2013-5-14 21:43:38 | 只看该作者
不点 发表于 2013-5-14 11:46
话不能这么说。我也只是了解一星半点的知识,而且不一定都对。不是谁指点谁的问题,而是互相交流、互相了 ...


谢谢大师指点,今晚全面测试,问题所在找到了,原来内置菜单grldr中find set root忽略软驱查找,原来在bios中不关闭软驱就深度隐藏后出不了菜单的情况,现在不关闭也可以出菜单了。
还有几个问题;
1.内置菜单中find set root忽略软驱查找,,外置菜单中是否要忽略软驱查找?
2内置菜单中ls (fd3),这句是否会查找软驱,要不要关闭?
3.外部命令前要不要加command,如command dpms,加与不加有什么不同?
谢谢大师指点,经过 这次教训后,还是要好好看一下内置菜单,按内置菜单来定制一下。其它PE高手的修正并不一定是正确的
回复

使用道具 举报

59#
发表于 2013-5-14 11:46:20 | 只看该作者
zds1210 发表于 2013-5-14 11:39
好的,grub方面不是太了解,都是抄人家的脚本,套用了。谢谢大师的指点,小的感觉非常高兴,有大师的指点 ...

话不能这么说。我也只是了解一星半点的知识,而且不一定都对。不是谁指点谁的问题,而是互相交流、互相了解的问题。论坛这个平台很重要,其重要性就在于,这是交流的平台。都是来学习的,都是同学。
回复

使用道具 举报

58#
发表于 2013-5-14 11:39:28 | 只看该作者
不点 发表于 2013-5-14 11:21
只略微提醒一下,别的不多说。你关掉软驱正常了。这事就完了吗?别人没关掉软驱的,怎么办?你是不是打算 ...

好的,grub方面不是太了解,都是抄人家的脚本,套用了。谢谢大师的指点,小的感觉非常高兴,有大师的指点,我们才能慢慢进步。
准备做一个详细的测试,看一下是什么原因?
是17代码要改为fd3?bios规范下只能四个软驱
是因为找了软驱,而死机?
还是一定要关软驱,dos只能两个软驱。
要准备一个详细的测试,回来给各位太太报告一下。
回复

使用道具 举报

57#
发表于 2013-5-14 11:21:28 | 只看该作者
zds1210 发表于 2013-5-14 11:13
出现哪些问题,是深度隐藏才出现,其它部署都很正常人,似乎并无什么问题。杏大的内置菜单及外置菜单一 ...

只略微提醒一下,别的不多说。你关掉软驱正常了。这事就完了吗?别人没关掉软驱的,怎么办?你是不是打算一一告知他们,让他们都关掉软驱?

回复

使用道具 举报

56#
发表于 2013-5-14 11:13:42 | 只看该作者
本帖最后由 zds1210 于 2013-5-14 11:16 编辑
不点 发表于 2013-5-14 09:16
最好连光盘一起忽略,只访问硬盘,安全系数就比较高了。

你可以考虑如下的思路:grub4dos 公开发布的内 ...


出现哪些问题,是深度隐藏才出现,其它部署都很正常人,似乎并无什么问题。杏大的内置菜单及外置菜单一直都是这个样子,我在其它部署中也没有发现问题,就是深度隐藏后有问题,关闭掉软驱和17改成fd3正常了。
回复

使用道具 举报

55#
发表于 2013-5-14 09:16:36 | 只看该作者
zds1210 发表于 2013-5-14 07:34
find --set-root,如果忽略软盘,就好了吧?

最好连光盘一起忽略,只访问硬盘,安全系数就比较高了。

你可以考虑如下的思路:grub4dos 公开发布的内置菜单,那是带有一般性的,应该适应于所有的硬件,至少可以说,是适应性比较高的。你研究一下内置菜单为什么要那样写,为什么要带那样的参数,就可以发现一些秘密。那个内置菜单不是随便改改就行了的。它的秘密就在于,能够适应于所有的 BIOS 环境。否则的话,早就有人来报告 bug 了。为什么 pseudo 的系统不出现这样那样一些看似稀奇古怪的问题?那是因为,pseudo 紧跟 grub4dos 内核的开发,把已经暴露出来的问题都做了处理。据我观察,pseudo 与 grub4dos 的开发者一样,是战战兢兢在做启动,是严肃认真在做启动,是一丝不苟在做启动。对每一个菜单命令都要仔细推敲,并反问自己:“这样做好吗?这样做安全吗?有没有更好的做法?” 工作做到这种程度,想让它垮掉都难。
回复

使用道具 举报

54#
发表于 2013-5-14 07:34:56 | 只看该作者
find --set-root,如果忽略软盘,就好了吧?
回复

使用道具 举报

53#
发表于 2013-5-14 03:25:12 | 只看该作者
哪些命令读软盘,你自己应该也知道啊。比如,find 命令就可能读软盘,它要在软盘上找文件。

如果你用 ls 之类的命令访问 (fd0)/ ,那不就是要读软盘吗?

回复

使用道具 举报

52#
发表于 2013-5-14 02:26:16 | 只看该作者
不点 发表于 2013-5-14 02:19
错误的菜单命令,导致死机或长时间无响应(即“假死”),是已知的常见错误。

如果菜单健壮,基本上是 ...

能不能说详细一些,哪些命令是?
回复

使用道具 举报

51#
发表于 2013-5-14 02:19:55 | 只看该作者
zds1210 发表于 2013-5-14 01:12
最近测试一批原来不能U+深度隐藏的机子,居然最后通过了,发现如下规则:
1.要出grub菜单,一定要从bios里 ...

错误的菜单命令,导致死机或长时间无响应(即“假死”),是已知的常见错误。

如果菜单健壮,基本上是不会出现 “不出菜单” 的情况的。

你的菜单一定有访问 fd0 的步骤。去掉那些有可能访问 fd0 的语句或命令,这个问题即可彻底解决。

回复

使用道具 举报

50#
发表于 2013-5-14 01:12:52 | 只看该作者
本帖最后由 zds1210 于 2013-5-14 01:15 编辑

最近测试一批原来不能U+深度隐藏的机子,居然最后通过了,发现如下规则:
1.要出grub菜单,一定要从bios里把软驱关闭,否则有一部分机子可能不能出grub菜单,从而卡起。
2.把17改为fd3后,不知道有没有作用,兼容性会不会提高,没有对比。因为测试都是把软驱关闭和改成fd3两个改进一起的,才成功,不知道是哪个起作用,改天测试看看。
3.bios下实际软驱不超过四个,在grub4dos等dos下只能AB两软驱,所以,深度隐藏后,隐藏区映射为一个软盘,已经占一个了,外置串口驱动只能用dpms,因它只模拟出一个盘;像饭大的srs就不能用了,它模拟了两个盘,所以,加载串口硬盘失败。
4.深度隐藏后,U盘加速失效,无法返回主菜单,原因不知。
5.不同grub版本代码似乎不同,所以,出问题,也可能是代码与grub版本不配引导的。不同版本的grub,代码要怎么写,希望P大说出一个规则来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-2 18:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表