昨天,我在BIOS中添加了一个密码为!的密码。不幸的是,引导时要求输入密码的密码提示不允许您编写!(即未添加小巧的*,它告诉我它是错误的密码)。

所以我Google搜索了如何删除该密码并偶然发现了上一个问题。

所以我有3个选择:


奇迹般地找到一种输入!的方法
在华硕(ASUS)找一个可以给我提供救援密码的人
打开计算机,卸下可以为主板供电的所有物品,并希望它可以删除密码或将日期重置为救援密码的日期众所周知
以某种方式使用上一个问题中链接的一长串代码来对生成代码的算法进行逆向工程,并使用该代码为今天的代码

在任何方向上的任何帮助关于寻找写!的方法,我的计算机有QWERTY键盘,所以!Shift + 1。我也尝试使用Caps Lock编写它,但是没有用。由于我的键盘最初是AZERTY键盘,因此我对其进行了更改,因此我也尝试将其用作AZERTY键盘或插入USB AZERTY键盘,但是这两种键盘均被视为QWERTY键盘(或者至少作为键盘,其键盘上几乎没有*的键

我也尝试(按照答案中的建议)对33使用ASCII代码!,但是Alt看起来像被忽略了,因为它增加了两个* s。

,朝着这个方向解决方案似乎不太可能。


关于在ASUS找人的问题,我尝试通过电话在法国和北美的聊天中寻求客户支持。两者都告诉我,我必须将其发送到维修中心,并且由于它与BIOS有关,因此属于保修范围之外的维修。而且他们要么不知道救援代码的存在,要么甚至不允许他们提及救援代码的存在。

我还试图向ASUS Twitter供稿。我得到的答案告诉我直接与客户支持联系,而华硕法国的一个答复则告诉我登录Windows并将日期更改为具有救援密码的特定日期。不幸的是,每次启动时系统都会提示我输入密码,这样我就无法进入Windows。 。


我可以打开计算机,但已经做过一次,可以更换键盘。但是我真的不希望再搞一些我不了解的事情。另外,我什至不确定它会重设密码还是日期。所以这是我最后的解决方法。


我无法识别救援密码序列中的任何模式。

这就是我到目前为止的(顶行是字符,左列是字符串中出现的索引的索引):

br />
我尝试输入3个错误的密码,如上一个问题所链接的本页所建议,但未给我代码,而是卡在Invalid Password上。 br />

它是大约一年前购买的ASUS RoG G751JY
我做了Windows的全新安装(因此没有更多的恢复分区)它。预先感谢您的帮助。

评论

我真的建议做答案@Prasanna说本文中可能会有一些选择,但是最后,如果您不想花很多时间尝试其他事情,而您知道可以重新设置并克服它。 >
您是否尝试过一些奇怪的可能性,例如输入1而不是!还是右Shift左侧的键? (在我的键盘中是-,在美国键盘中是/,在此AZERTY中是-!)

不,那只是* s。我确实清楚记得它拒绝了其他非字母数字字符,而我只保留了!因为它是唯一使*出现的...

@ ja72,就在前几天,我花了一点锡纸桥接妈妈最近使用的Acer Aspire Laptop上的两个易于访问的跳线,以重置CMOS并清除密码。工作请客。

在我买的一本上网本上,前任所有者忘记了BIOS设置和启动密码(由于它没用,因此以惊人的价格购买了它),我可以通过低级的BIOS救援来删除密码。这是一个Gateway / Acer品牌的上网本。我还进行了测试,可以确认从DOS完全刷新BIOS / EFI将删除BIOS设置密码。 (完整闪存比典型的BIOS更新闪存要多,并且更危险一些,因为BIOS引导块在闪存过程中将处于易受攻击状态。)

#1 楼

经过验证的选项
我一直成功地通过卸下CMOS电池来重置BIOS。我建议先断开笔记本电脑的电源,然后再卸下CMOS电池。 BIOS电池看起来像这样,它可以跟踪时间和BIOS内容。

等待几分钟。此操作将重置BIOS的内容,并使您无需输入任何密码即可输入。

如果您需要有关如何打开笔记本电脑的说明,可以在此处观看YouTube视频

评论


@ xavierm02它不仅会重置日期,还会将BIOS重置为出厂默认设置,从而重置密码。

– Nzall
16-2-27在11:22

@NateKerkhofs哦。我以为我在新计算机上读过某个地方,密码有时存储在无法重设的地方...

–xavierm02
16-2-27在11:26

我也有一个印象,即密码和BIOS现在存储在闪存中,而不是电池提供的内存中,专门用于提高安全性。再一次,我很惊讶它会接受您无法输入的密码,因此我倾向于认为您输入了错误的内容。

–keshlam
16-2-27在12:20

当然应该将其删除。我从未听说过或见过BIOS在其设置实用程序中具有这种功能。

–俄罗斯
16年2月28日在18:00

许多基于UEFI的现代系统确实将配置存储在EFI变量中,这些变量存储在Flash中,而在卸下CMOS电池时不会重置这些变量。

–乔纳森·莱因哈特(Jonathon Reinhart)
16年2月29日在0:30

#2 楼

(不是对标题中所述问题的回答,而是一种解决潜在问题的方法。)

我认为我设法(主要)对从中生成应急密码的算法进行了反向工程。过去的密码列表。不幸的是,我没有华硕主板,所以无法验证它是否可以正确预测新密码,但是在已知密码的日期运行以下发布的代码段始终可以得出正确的结果。如果您尝试一下,但对您还是行不通,请告诉我。

只需以各种方式查看给定的数据(例如,制作固定密码的表

如果我们在密码中这样标记字母:01234567,那么很容易看到字母6和7由字母唯一确定。每月的一天(因此完全独立于月份或年份)。对于字母7,只需将月份的从零开始的日期用作字符串AAAABLDDBB0LB211C9BAAAAABLDDBB0的索引。类似地,对于字母6,它是字符串LBAL0AL0ADLADLADLADBADBABBAB2AA。对于字母5,还很容易看出,除了月份中的天以外,月份的奇偶校验(即除以2的余数) )也很重要。对于奇数月,必须使用参考字符串BADBOA01AAH1ABBALLBABLBAH1ADL1A,对于偶数月,则必须使用参考字符串A0CAABALBBALBBAH1ABH1ABLABL9ABO

字母2、3和4非常相似,一个字母每个月都必须使用不同的查找表(也就是说,每个字母都有十二个查询表。

字母1还考虑了年份的平价。因此,这里有24个总查询表,奇数年12个,偶数年12个。实际上,这些查找表中的许多表都以相同的顺序包含相同的字母,它们只是从该顺序的不同点开始。我猜这表明存在一些我尚未设法弄清楚的潜在模式。

字母0有点复杂,我还不能完全确定模式。似乎根据月份和年份,选择了4个基本序列(OLLAA1AOADBA4CALAD2AH9ABAB1A0BB0)之一,并旋转了特定数量。但是,似乎2002-2009年的模式与2010年和2011年的模式不同(实际上,2010年的行为与2008年相同,2011年的行为与2009年相同),因此很难预测此序列将如何继续。 br />
相反,由于到此为止,我们已经确定了8个字母中的7个,而且最后一个字母似乎只有12种可能,所以可以尝试强行使用密码。如果您按照前面提到的4个序列按频率系统地尝试丢失的字母,那么两次尝试后,您应该已经有50%的机会获得正确的密码。 run询问您一个日期,并显示该日期的12种可能的密码(按可能性排序)。对于今天的日期(2016-02-28),这会给您X0BLB9BD,其中XABLOD10942CH之一。

 (function() {
    let today = new Date();
    let date = prompt("Enter a date", today.toISOString().substring(0, 10));
    let tables = [
        [["AAAABLDDBB0LB211C9BAAAAABLDDBB0"]],
        [["LBAL0AL0ADLADLADLADBADBABBAB2AA"]],
        [["BADBOA01AAH1ABBALLBABLBAH1ADL1A", "A0CAABALBBALBBAH1ABH1ABLABL9ABO"]],
        [["A49BLA0ODBLA0OD1ALAOD2ALABCA0OA", "BCA0AHBL20A4BLBAOADLBA0AD1ABA", "1ABAA9BLAAACBLA0OD2LAHBD2ALABL2", "ALAB1A0AHB1A0A4BLBAA49BBA0AD1L", "0AD1ABAA91ALAACBLAHACA0AHBD2AAH", "BD2AOAB1AAOAB1A0A491ABA49BBA0A", "BBA0OD1AB0OD1ALAACAALABCA0AHB1A", "0AHBL2AOABLBAOAB1ABOAD1ABA49BAB", "A49BLA0ODBLA0OD1ALAOD2ALABCA0O", "0AHBL2AOABLBAOAB1ABOAD1ABA49BAB", "A49BLA0ODBLA0OD1ALAOD2ALABCA0O", "BCA0AHBL20A4BLBAOADLBA0AD1ABAOD"]],
        [["DA1HABBDAA24ABBLA244A9LLABAA99O", "9LLA2AA9LLBABAACOBAALBACOAALB", "BACOBALBAA10AALDA100AO0DA1HAOOB", "O0DA1HAO00DA1HABBDAA24ABBLA244", "4ABBDA24AA9LLA2AA9LLBABAACOBAAL", "ABAA9OBABBBACOBALBAA10AALDA100", "0AALBA10AAO0DA1HAO00DA1HABBDAA2", "A1HAOBDA114ABBDA24AA9LLA2AA9LLB", "LLA24A9LLLABAA9OBABBBACOBALBAA", "LA24A9LLAABAA9LBABAAACOBALBACC0", "COBABBACOOAALBA10AAA0DA10AO0DD", "DA10AO0DAA1HAO0DA1HHABBDA24ABBL"]],
        [["LA24ABBDAA1HAO0DA1H0AALBA10AAAB", "1HAOBDA1H0AALDA10AAABAACOBABA", "AO0DA10AAALBACOBABAAA9LLA24ABBB", "LBACOBABAAA9LLA24ABBBDA1HAO0DD", "A9LLA24A9BBDA1HAOBDDA10AA0DA1CO", "BDA14ABBDDA10AO0DA1COBALBACOBL", "A1HAO0DA110AALBACOBBABAA9LLA224", "0AALBACOBBABAA9LLA224ABBDA1HAAO", "ABAA9LLAB24ABBDA14AAO0DA1HAO0L", "AO0DA10AAALBACOBABAAA9LLA24ABBB", "LBACOBABBAA9LLA24A9BBDA1HABBDD", "A9LLABAA9BBDA24ABBDDA1HAO0DA1CO"]],
        [["BL4AA20BAAAA2HBA1LDBHBA1ODA90A1", "ODA9BBAOBACBDAOL4AADABLAAA20B", "AA2HBA1LDBHAA1ODA9BA1OLACBBAOLA", "CBDABL4AADABLAAA2HB0AAABHBA1OO", "HAA1ODA9BA10LACBDAOLACLDABLAALD", "AB0AAA2HB0BAABHAA1OOB4AA1OLACA", "10LACBDABBACLDABLAALDA90AAABH90", "BAOBHAA1OOB4AA10LACAA20LACLDA0B", "A1LDAB0AALDA90BAABH9BBAOB4AA1A", "OLA9BBAOLACBDABL4AADABLAAA2HB0A", "AA2HBA1ODBHAA1ODA9BA1OLACBDAOL", "CBDABLAAADAB0AAA2HB0AAABHAA1OOB"], ["BAABHAA1OOB4AA1OLACAA10LACLDA0B", "ACLDAB0AALDA90AAABH90BAOB4AA", "L4AA10LACAA20LACLDAHBA1LDAB0A1O", "DA90BAABH9BBAOB4AA1AOL4AA10LAA", "A20BACLDAHBA1LDA90A1ODA90BAOBAC", "BBAOB4AA1ABL4AA20LAAAA2HBA1LDB", "BA1ODA90B1ODA9BBAOBACBDAOL4AADA", "BLAAA20BAAAA2HBA1LDBHAA1ODA90A1", "OLA9BBAOBACBDABL4AADABLAAA20B0", "A1LDAB0AALDA90BAABH9BBAOB4AA1AO", "L4AA10LACAA20BACLDAHBA1LDA90A1", "DA90BAOBH9BBAOB4AA1AOL4AA20LAAA"]]
    ];

    let match = date.match(/^(\d{4})-(\d{2})-(\d{2})/);
    if (!match) {
        alert("Invalid date: " + date);
        return;
    }

    let [_, y, m, d] = match.map((a,b) => +a)

    let pass = "";
    for (let i = 6; i >= 0; --i) {
        let letters_map = tables[i];
        let year_map = letters_map[y % letters_map.length];
        let month_map = year_map[(m - 1) % year_map.length];
        pass += month_map[d - 1];
    }

    let final_letters = "ABLOD10942CH";

    let output = []
    for (let x = 0; final_letters[x]; ++x)
        output.push(final_letters[x] + pass);

    alert(output.join("\n"));
})();
 


评论


棒极了。我可以确认第五个密码确实有效。 (但是我确实必须修复一些括号不匹配的问题,添加“ use strict”并用一系列let代替let array-let)

–xavierm02
16年2月28日在8:01

@ xavierm02:对于偷电脑的人来说,仅卸下BIOS电池的解决方案就容易多了。

–乔伊
16-2-28在9:42



@ xavierm02:感谢您的确认和对JS问题的歉意-将片段粘贴到Firefox浏览器控制台中后,它应该可以正常工作。我还必须同意Joey的意见,如果某人可以物理访问计算机,则BIOS密码之类的原始保护不会阻止他们使用该计算机。

–tmnt
16年2月28日在13:00

@ xavierm02如果他花了一天的时间来制定算法,则其主要内容是拥有如此简单的救援密码首先会使整个事情变得不安全。如果华硕(ASUS)读过此书,则应提示他们将如此愚蠢的后门取出。

–詹姆斯·瑞安(JamesRyan)
16-2-29在14:55

实际上,这非常出色,您设法弄清楚了这一点。

– hot弹忍者
16-2-29在15:36

#3 楼

好吧,我又恢复了工作。

我打开了背面的插槽,您可以在其中看到硬盘驱动器和一些记忆棒。在记忆棒旁边,有两个标记为JRST2001和JRST2002的小东西。我首先尝试将一个连接到另一个,然后我的计算机甚至无法启动,唯一亮起的是键盘旁边的LED。因此,我然后尝试连接JRST2001的两个“边”(通过它的某种方式)和JRST2002的两个边。然后,它将救援密码为1BLDABLA的日期重置为2009-01-01。请注意,当您输入应急密码时,计算机将冻结,您必须手动重新启动。然后,由于它没有明显原因一直进入BIOS中,因此我开始随机更改设置,直到它起作用为止。显然,最好的设置是我需要启用的CSM。


记录下来,这是我从华硕(重点是我)得到的答案:

(我不确定这是应该出现在我的问题中还是答案中,但我认为人们不想滚动整个内容来回答问题,所以我将其放在此处)


您好,亲爱的Xavier,

感谢您与我们的ASUS支持部门联系。您无法输入“!”传递Bios密码
,并且您想要救援密码。

Xavier先生,首先,非常抱歉通知您
BIOS密码不幸的是,这仅在我们的车间被压碎了,
不幸的是,这使您的计算机无法享受保修。 ,非常感谢您通过以下
链接填写删除表格:

https://eu-rma.asus.com/pick_eu/fr/

单击产品类型<<笔记本>>上的所有必填字段。

我邀请您尽可能准确地描述“问题
描述”课程,以便我们的技术人员能够最好地检测和修复产品的
故障。

为了验证您的选择表格中,必须填写所有必填字段,并且您
必须检查“提供的保证协议”。

我强烈建议您单击超链接以访问Asus的保修条件和请仔细阅读它们,尤其是第2.2.3节。

一旦您的申请获得批准,您将收到一封电子邮件
,其中包含您的退货协议编号,超出保修范围和说明
拆卸(包装说明和
售后服务的一般条件)。

您应该已告知手机号码。您将自动
接收有关每个阶段的维修状态的信息。

要跟踪维修状态,您可以选中“我同意接收
”短信框。我的维修文件夹的状态”。

在我们的服务中收到产品后,技术人员将对故障进行诊断,并向您发送维修估算。

/>然后您就可以直接与您要维修的车间进行沟通
,希望继续或不维修产品。

如果出现拒绝报价的情况,我告知您诊断费和
运输费用将由您负责。 (〜€75)

Xavier先生,我有任何其他问题要留在你身边,
,祝你有个美好的一天。

评论


您正在描述用于重置BIOS的跳线

– Prasanna
16-2-27在17:38

另外,您通常不希望尝试将金属物品随机连接到主板上。首先获取手册,找出可以安全修改的内容,否则不仅会复位BIOS,而且还会油炸主板。

– isanae
16-2-27在18:48

在没有丝毫线索的情况下随意加入电子组件(更不用说它们做什么)并不是世界上最聪明的主意。也许不理会电子设备,直到可以超越一切“东西”!

–轨道轻赛
16-2-27在19:59



将来,此类内容将出现在手册中,非常值得一读。而且,如果您使+和-短路的任何一种(我要添加的)电压接头经常彼此靠近,那可能是不好的。

–游侠怪胎♦
16-2-27在23:07

“我开始随机更改设置”,这正是导致发布另一个SuperUser问题的一种方式:“救命,我的计算机无法再次使用!”

– David Richerby
16-2-28在23:38