无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: zjzaog
打印 上一主题 下一主题

[讨论] 再次修改标题!!新版的grldr已经解决了在某些联想老主板上与KON存在内存冲突的问题

[复制链接]
91#
发表于 2012-3-28 08:50:18 | 只看该作者

回复 #88 不点 的帖子

说的不错,KON这个工具就是在G4D环境下的一个密码工具。他的使用环境就是通过G4D来引导的。最新版的是在2010.3.16日发布,这就是为何与新版G4D有冲突的原因。因为自2011.7.14以后,G4D进行变改才导致新版与之冲突。

  因此,我们既不能把责任归咎于G4D,也不要归咎于KON,G4D没有错,他要发展就会进行变更。KON也没有错,他是根据G4D来开发的,新版G4D变更后,KON没有发布新版,老版的KON与G4D发生冲突也是不为过。

 如果谁对KON的作者比较熟悉,可以向其作者反映新版G4D的变化,相信KON的作者会进行调整。

目前的解决办法,可采取一些变通的办法。(见作者一楼)
回复

使用道具 举报

92#
发表于 2012-3-28 09:16:00 | 只看该作者
哈哈 或者可以这样认为

之前的grub4dos对内存管理方面一个bug,而konboot刚好由于grub4dos的bug而钻了空子。。。
回复

使用道具 举报

93#
发表于 2012-3-28 09:45:14 | 只看该作者
我身体吃不消,不能长时间看代码。zw2312914 看到这个问题之后,主动承担起责任来。他很久没有露面了,大概也很忙。这次他看到 yaya 忙于 0.4.6,chenall 忙于 0.4.5,没有人管 int15 了,于是这个任务也就压到 zw2312914 自己的身上了。的确,也只有他适合处理此类问题,他很严谨,尤其在这方面很有经验。纵使我自己身体好,也不一定能找到 int15 的毛病,因为代码是我自己写的,通常自己是很难发现毛病的。换个人之后,才容易找到毛病。早在本帖报告之前,zw2312914 就在时空论坛提到 int15 的(可能的)毛病了,当时我还不以为然。他确实有一种特殊的敏锐。现在他正在寻找 int15 的漏洞,试图捉住潜藏的任何一个 bug,让 grub4dos 的 int 15 代码是 “ 强健的 ”、“ 坚韧的 ”、“ 可以信赖的 ” 和 “ 牢不可破的 ”。这同时也说明,这个问题是在认真处理、认真对待。开发人员很重视,是毫不懈怠的。我想,关注此贴的人,应该比较放心了。
回复

使用道具 举报

94#
发表于 2012-3-28 10:45:15 | 只看该作者

回复 #92 zhs509 的帖子

  也不能说是KON钻了G4D内存管理的“空子”,G4D是大环境,KON是小环境,KON要想通过G4D的引导而运行,不管G4D在内存管理方面有BUG也好,无BUG也好,他必须要与之兼容。这就是老版的G4D运行KON没有问题的原因。
  而新版G4D调整后,KON没有及时跟进或者是没有来得及发布新版,就出现了与新版G4D的不兼容,这是不可避免的。发布日期就说明这这一点。

  因此,出现这种问题,本身就是正常的。双方谁都没有错。只是时间给我们开了一个玩笑。
  

[ 本帖最后由 幸运的草 于 2012-3-28 10:51 编辑 ]
回复

使用道具 举报

95#
发表于 2012-3-28 11:37:42 | 只看该作者
想到另外一个问题。

kon 在 grub4dos 之后驻留内存。那么,它自己的代码究竟是位于 grub4dos 的代码之下呢,还是位于 grub4dos 的代码之上?

无论哪种情况,都不安全。分述如下:

第一种,紧接 grub4dos 的仿真代码之下,这是 kon 最有可能采用的方法。但是,如果此后又进入 grub4dos 的环境,则新的 grub4dos 环境有可能找不到前一个 grub4dos 在内存中放置的仿真程序了,因为 int13 以及 int15 可能已经被 kon 修改了,这样 grub4dos 就可能认为自己从前不曾在常规内存中安装过仿真代码。这种情况下,map --status 将显示不出先前的 grub4dos 所建立的虚拟磁盘(或虚拟光盘)。

第二种,先把 grub4dos 的代码向下移动 6K,然后把空出的 6K 作为 kon 的驻留空间,并保证中断向量表中的 int13 和 int15 都指向 grub4dos 的代码(而不是指向 kon 自己的代码)。这种情况如果设计得很完美,将不发生任何冲突。但困难在于,很难设计完美,因为移动 grub4dos 的代码之后,还得修改 grub4dos 代码中的某些区域,这些区域是安装 int13 处理程序的时候就计算好的,与 int13 处理程序的代码所处的线性地址有关。如果 int13 代码被移动,那么,这些区域必须进行相应的修补,否则 int13、int15 处理程序就要发生错误。而且,一旦 grub4dos 的仿真代码发生改变,这种办法也就要受到影响了。

究竟是哪种情况?谁了解的,可以确认一下。
回复

使用道具 举报

96#
发表于 2012-3-28 12:15:09 | 只看该作者
kon  也不能在burg下正常运行
回复

使用道具 举报

97#
 楼主| 发表于 2012-3-28 12:42:18 | 只看该作者

回复 #95 不点 的帖子

我测试一下,您说的”第一种情况下map --status 会显示不出…………“说一我试试看:
“第一种,紧接 grub4dos 的仿真代码之下,这是 kon 最有可能采用的方法。但是,如果此后又进入 grub4dos 的环境,则新的 grub4dos 环境有可能找不到前一个 grub4dos 在内存中放置的仿真程序了,因为 int13 以及 int15 可能已经被 kon 修改了,这样 grub4dos 就可能认为自己从前不曾在常规内存中安装过仿真代码。这种情况下,map --status 将显示不出先前的 grub4dos 所建立的虚拟磁盘(或虚拟光盘)。”

所以在手动输入
map --mem (ud)/tools/kon.img (fd0)
map --int15nolow=1
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot
在boot完kon.img后,就回到grub启动菜单哪里,然后按c进入命令行,再map --status了一下,有没有显示“先前的 grub4dos 所建立的虚拟磁盘(或虚拟光盘)”?我看不懂,只能晒图


另外顺便问一下,在我map --mem (ud)/tools/kon.img (fd0),回车之后,出现这样的警告,不知有什么影响
fat12 bpb found with 0xeb (jmp) leading the boot sector.
warning: bpb total sectors(2880) is greater than the number of sectors in the whole disk image (12). the int13 handler will disable any read/write operations across the image boundary. that means you will not be able to read/write sectors (in absolute address, i.e., lba) 12 - 2879, though they are logically inside your file system.
probed c/h/s = 80/2/18, probed total sectors = 2880

[ 本帖最后由 zjzaog 于 2012-3-28 13:25 编辑 ]

SUC50185.JPG (134.42 KB, 下载次数: 101)

SUC50185.JPG
回复

使用道具 举报

98#
发表于 2012-3-28 13:17:47 | 只看该作者

回复 #96 jianliulin 的帖子

经测试,KON可以在BURG下运行。无发现异常。

[ 本帖最后由 幸运的草 于 2012-3-28 15:56 编辑 ]
回复

使用道具 举报

99#
发表于 2012-3-28 13:39:25 | 只看该作者

回复 #97 zjzaog 的帖子

非常好。

The int13 hook is off. The drive map table is currently empty.

这已经说明,旧的 map 都失效了。比如说,map --status 也未能列出 (fd0) 这个虚拟盘。

(fd0) 本身应该还是可以访问的,只是新的 grub4dos 已经认不出它是由先前的 grub4dos 建立的了,而认为它是 BIOS 建立的,或者是由别的仿真程序(例如 memdisk 之类)建立的,总之,是外来的,不认为它是 grub4dos 内部建立的。

这证明 kon 是采用第一种情况,与我的猜测一致。kon 采用第一种方式所营造的这个环境不安全,不如第二种方式安全(当然,前提是,它必须得处理好前面提到的那些相关问题)。

你提到的警告没有什么影响,通常可以忽略这个警告。

[ 本帖最后由 不点 于 2012-3-28 13:47 编辑 ]
回复

使用道具 举报

100#
 楼主| 发表于 2012-3-28 19:27:58 | 只看该作者

回复 #90 adef 的帖子

这个版本的memdisk,把img或者iso虚拟进内存的速度快的惊人!!!竟然远远快于map --mem的速度,不知是什么原理?!
谢谢adef朋友
回复

使用道具 举报

101#
 楼主| 发表于 2012-3-28 19:30:01 | 只看该作者

回复 #99 不点 的帖子

谢谢不点大师的解答,请多注意身体……

[ 本帖最后由 zjzaog 于 2012-3-28 22:55 编辑 ]

123456.JPG (282.51 KB, 下载次数: 123)

123456.JPG
回复

使用道具 举报

102#
发表于 2012-3-29 05:35:47 | 只看该作者

回复 #101 zjzaog 的帖子

这次终于找到毛病了,功夫不负有心人,很棒。

map 后,kon 还没开始运行,但 3 月 22 日的已经少掉了关于 9C800 - 9F800 这一段的描述。

要是早贴这个图多好,一下子就找到毛病了,不用浪费这么多的楼层。
回复

使用道具 举报

103#
发表于 2012-3-29 08:31:55 | 只看该作者
功夫不负有心人,可喜可贺!
关键的0x3000(12KB)找到了。
回复

使用道具 举报

104#
 楼主| 发表于 2012-3-29 20:54:59 | 只看该作者
在时空看到不点大师上传的新版的grldr已经解决了这个问题,大家只要升级就ok,估计不久就能放出新版!完美,这贴可以关了,哈哈,成功后的memcheck如下

[ 本帖最后由 zjzaog 于 2012-3-29 21:09 编辑 ]

124.JPG (270.94 KB, 下载次数: 111)

124.JPG
回复

使用道具 举报

105#
发表于 2012-3-29 21:35:44 | 只看该作者
3月29日的GRLDR,测试通过。没有发现与KON冲突。
测试菜单,没有使用多余的参数
map --mem /konboot.gz (fd0)
map (hd0)  (hd1)
map (hd1)  (hd0)
map --hook
chainloader ()+1
rootnoverify (fd0)
大家再通过泛的测试,(非memdisk方式),看是否有问题。

[ 本帖最后由 幸运的草 于 2012-3-29 22:00 编辑 ]

grub4dos-0.4.5c-2012-03-29.7z.zip

251.66 KB, 下载次数: 161, 下载积分: 无忧币 -2

回复

使用道具 举报

106#
发表于 2012-3-29 22:42:30 | 只看该作者
哈哈 我的电脑好像不符合测试条件。。。

装了Win XP/7 双系统,用grub4dos引导的。。。

前几天U盘UD方式启动konboot,成功绕过winxp、win7 32位系统密码进入桌面(用的是官方免费版的konboot)
回复

使用道具 举报

107#
发表于 2012-3-30 21:38:01 | 只看该作者
我在单位的一个老电脑上,用3月29日的GRLDR,成功绕过winxp,
之前只要运行konboot就蓝屏。
自己的电脑3个主分区konboot不支持
回复

使用道具 举报

108#
发表于 2012-4-3 12:19:11 | 只看该作者
请问konboot不适用于硬盘有多个主分区的吗?我运行后就黑屏了,什么都没有
回复

使用道具 举报

109#
发表于 2012-4-10 19:27:01 | 只看该作者
能有人做个grldr和kon和菜单配套的发上来吗,我下了好多个都没成功,包括五子登科最新版直接写入优盘,进入kon后都是黑屏,就没显示了,谢谢了
回复

使用道具 举报

110#
 楼主| 发表于 2012-4-10 23:19:49 | 只看该作者
试一下这个菜单吧,你的kon.img要放在根目录下的/tools/文件夹里
title [7] >>>>> KON <<<<< \n 传奇的绕过系统密码进入电脑的工具
find --set-root /tools/kon.img
map --mem /TOOLS/KON.img (fd0)
map --hook
chainloader (fd0)+1
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
rootnoverify (fd0)

[ 本帖最后由 zjzaog 于 2012-4-10 23:21 编辑 ]
回复

使用道具 举报

111#
发表于 2012-4-11 08:03:02 | 只看该作者
这个"坑", 硬盘,光盘等,菜单不一样

下面3个,可以在光盘,硬盘下使用

title 81 Boot KON.IMG
find --set-root --ignore-floppies /BOOT/KON.IMG
map --mem /BOOT/KON.IMG (fd0)
map --hook
chainloader (fd0)+1
map () (hd0)
map (hd0) ()
map --hook
rootnoverify (fd0)

title 82 Boot KON.IMG
find --set-root --ignore-floppies /BOOT/KON.IMG
map --mem /BOOT/KON.IMG (fd0)
map --hook
chainloader (fd0)+1
map (hd1) (hd0)
map --hook
rootnoverify (fd0)


title 83 Boot KON.IMG
find --set-root --ignore-floppies /BOOT/KON.IMG
map --mem /BOOT/KON.IMG (fd0)
map --hook
chainloader (fd0)+1
map (hd0)  (hd1)
map (hd1)  (hd0)
map --hook
rootnoverify (fd0)
回复

使用道具 举报

112#
发表于 2012-4-11 09:38:43 | 只看该作者

回复 #109 shwk88888 的帖子

这个要具体看情况而定,如果你的U盘是HDD格式的,且BIOS也识做HDD的。GRLDR启动后,U盘是(hd0),硬盘是(hd1),这时,如果不交换磁盘,就会出问题。黑屏的多。这是因为他要从U盘启动,而你的U盘没有硬盘的启动文件,就黑屏了。
 如果是ZIP,或者你的BIOS将U盘识别为ZIP,则启动后你的U盘是(fd0),硬盘是(hd0),这时则不需要交换磁盘。
 以上几楼给出的菜单,都是从以find来定交换磁盘的,这种情况可不分zip及hdd的情况,大部分情况下看似没问题,但特殊情况下,就会出错了。
 比如,你启动时加载了plbpt加速器。find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
 这个100%出错。接下来
 map () (hd0)
 map (hd0) ()
 map --rehook还会正确吗?

   当加载加速器后,如果是zip,原来的(fd0)为成了(hd0),原来的硬盘(hd0)变成了(hd1),多出来一个硬盘。而BIOS中检测的硬盘数是1并把这个参数传给了GRLDR,实际这时硬盘数为2;
         如果是hdd,原来的(hd0)仍为(hd0),原来的硬盘(hd1)变成了(hd2),向后出来一个硬盘。中间出现了一个空的(hd1)。BIOS中向GRLDR传的硬盘数参数是2,此时实际为3,中间多出来一个空的硬盘。
 所以find失效了。找不到硬盘启动文件。

[ 本帖最后由 幸运的草 于 2012-4-11 09:59 编辑 ]
回复

使用道具 举报

113#
发表于 2012-4-11 16:56:54 | 只看该作者
谢谢了,我再试试看,麻烦你们了
回复

使用道具 举报

114#
发表于 2012-8-17 05:25:15 | 只看该作者
原帖由 <i>zjzaog</i> 于 2012-3-27 09:07 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2409715&ptid=207219" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
我用的一直是1.1的kon,嘿嘿<br />
我的常用的菜单式这样写的,所以不管U盘被认为zip或者hdd都能通用,<br />
<br />
map --mem (ud)/TOOLS/KON.lzma (fd0)<br />
map --hook<br />
chainloader (fd0)+1<br />
find --set-root --ignore-flopp ...
<br />


最经典的答案,不用解释
回复

使用道具 举报

115#
发表于 2012-8-17 08:21:31 | 只看该作者
谢谢楼主!下载试试看!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-12 10:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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