无法输入包含“!”的 BIOS 密码。

无法输入包含“!”的 BIOS 密码。

昨天,我向 BIOS 添加了一个包含 的密码!。不幸的是,启动时要求输入密码的密码提示不允许您输入(即没有添加!小密码,它告诉我这是错误的密码)。*

于是我谷歌了一下如何删除该密码,然后偶然发现了先前这个问题

所以我有 3 个选择:

  • 奇迹般地找到进入!

  • 找一个华硕的人给我救援密码

  • 打开电脑,移除所有可以为主板供电的东西,希望它能删除密码或将日期重置为已知救援密码的日期

  • 以某种方式使用长长的代码列表领英上一个问题对生成代码的算法进行逆向工程,并使用它来生成今天的代码

欢迎任何方向的帮助。


关于找到一种方法来编写!,我的电脑有一个 QWERTY 键盘,所以!也是Shift + 1。我也尝试使用 来编写它,Caps Lock但它不起作用。由于我的键盘最初是 AZERTY 并且我对其进行了更改,因此我也尝试将其用作 AZERTY 或插入 USB AZERTY 键盘,但两者都被视为 QWERTY 键盘(或至少是添加小 s 的键*与 QWERTY 键盘完全相同的键盘)。

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

因此,从这个方向寻求解决方案似乎不太可能。


关于在华硕找人,我尝试通过电话联系法国的客户支持,并通过聊天联系北美的客户支持。他们都告诉我,我必须将其送到维修中心,并且由于涉及 BIOS,因此属于保修期外维修。他们要么不知道救援代码的存在,要么甚至不允许提及它的存在。

我也尝试向华硕 Twitter 发帖询问。我得到的答案是直接联系客服,来自 ASUS France 的一个答案告诉我登录 Windows 并将日期更改为他们拥有救援密码的特定日期。不幸的是,每次启动时都会提示我输入密码,所以我无法进入 Windows。

我还向我发现的每个客户支持部门发送了电子邮件,但到目前为止我还没有收到任何其他答复。


我可以打开电脑,我已经这样做过一次来更换键盘。但我真的不想再弄乱我不懂的东西了。另外,我甚至不确定它是否会重置密码或日期。所以这是我的最后解决方案。


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

这是我目前所得到的(顶行是字符,左列是它在字符串中出现的索引):

          0     1     2     4     9     A     B     C     D     H     L     O
    0   237   246   106   109   106  1243   575   109   215   105   355   244
    1   220   215    95   100   125  1265   575   120   245   140   310   240
    2   200   240   120   120   120  1201   620   110   280   110   299   230
    3   230   190   130   130   140  1240   561   110   209   100   370   240
    4   280   210   120   110   100  1170   620   100   240   100   340   260
    5   120   360     0     0    60  1171   949    60   120   240   480    90
    6   240     0   111     0     0  1260   720     0   600     0   719     0
    7   190   240   120     0   120  1079   941   120   480     0   360     0
Total  1717  1701   802   569   771  9629  5561   729  2389   795  3233  1304

其他尝试:

  • 我尝试输入 3 次错误密码,如这一页领英上一个问题但它并没有给我代码,而是卡在了Invalid Password

可能相关的信息:

  • 这是大约一年前购买的华硕 RoG G751JY

  • 我全新安装了 Windows(因此没有更多的恢复分区)

就是这样。提前感谢您的帮助。

答案1

经过验证的选择
我总是能通过移除 CMOS 电池成功重置 BIOS。我建议切断笔记本电脑的电源,然后移除 CMOS 电池。BIOS 电池看起来像这样,它会跟踪时间和 BIOS 内容。
在此处输入图片描述

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

如果你需要有关如何打开笔记本电脑的说明,可以观看 YouTube 视频这里

答案2

(这不是标题中提到的问题的答案,但却是解决根本问题的一种方法)。

我认为我成功地(大部分)逆向工程了从过去密码列表中生成救援密码的算法。不幸的是,我没有华硕主板,所以我无法验证这是否能正确预测新密码,但是在知道密码的日期运行下面发布的代码片段总是会得到正确的结果。如果你尝试了这种方法,它对你有用或没用,请告诉我。

只需以各种方式查看给定的数据(例如,通过制作每月固定日期的密码表),就可以看到一些模式出现。

如果我们像这样标记密码中的字母:01234567,那么很容易看出字母 6 和 7 由月份的日期唯一确定(因此完全独立于月份或年份)。对于字母 7,只需使用从零开始的月份日期作为字符串 的索引AAAABLDDBB0LB211C9BAAAAABLDDBB0。同样,对于字母 6,它是字符串LBAL0AL0ADLADLADLADBADBABBAB2AA

对于字母 5,很容易看出,除了月份的日期之外,月份的奇数(即除以二后的余数)也很重要。对于奇数月,必须使用引用字符串BADBOA01AAH1ABBALLBABLBAH1ADL1A,对于偶数月,则使用A0CAABALBBALBBAH1ABH1ABLABL9ABO

字母 2、3 和 4 非常相似,只需要对每个月使用不同的查找表(即,每个字母都有十二个查找表)。

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

字母 0 稍微复杂一些,我还没有完全确定其模式。似乎根据月份和年份,会选择 4 个基本序列(OLLAA1AOADBA4CALAD2AH9ABAB1A0BB0)中的一个并按特定量旋转。但是,似乎 2002-2009 年的模式与 2010 年和 2011 年的模式也不同(事实上,2010 年的行为与 2008 年相同,2011 年的行为与 2009 年相同),因此很难预测该序列如何继续。

相反,由于此时我们已经确定了 8 个字母中的 7 个,而最后一个字母似乎只有 12 种可能性,因此可以尝试暴力破解密码。如果您系统地按前面提到的 4 个序列中的频率尝试缺失的字母,那么在 2 次尝试后,您应该已经有 50% 的机会获得正确的密码。

下面是一段 Javascript 代码,运行时会询问您日期,并显示该日期的 12 个可能密码,按可能性排序。对于今天的日期 (2016-02-28),这将为您提供X0BLB9BDX其中 是 之一ABLOD10942CH

(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"));
})();

答案3

好的,我让它再次工作了。

我打开了后面的插槽,可以看到硬盘和一些内存条。在内存条旁边,有两个小东西,分别标有 JRST2001 和 JRST2002。我首先尝试将一个连接到另一个,然后我的电脑甚至无法启动,唯一亮起的是键盘旁边的 LED。因此,我尝试连接 JRST2001 的两个“侧面”(有某种线穿过它),JRST2002 也是如此。然后它将日期重置为 2009-01-01,救援密码为 1BLDABLA。请注意,当您输入救援密码时,计算机会冻结,您必须手动重新启动。然后,由于它无缘无故地不断启动到 BIOS,我开始随机更改设置,直到它起作用。显然,好的设置是我需要启用的 CSM。


为了记录在案,以下是我从华硕获得的答案(重点是我的):

(我不确定这应该放在我的问题中还是答案中,但我认为人们不想滚动整个内容来找到答案,所以我把它放在这里)

你好亲爱的 Xavier,

感谢您联系我们的华硕支持。

根据您的要求,对于型号为G751JY的计算机,我明白那个您无法输入“!”来传递 Bios 密码,并且你想要获取救援密码

Xavier先生,首先,我很遗憾地通知您,BIOS 密码只能在我们的车间破解,不幸的是,退回超出保修期的计算机

因此,为了让您的计算机返回华硕专家进行诊断和维修,请您填写以下链接中的移除表格:

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

点击产品类型<<笔记本>>以完成所有必填字段。

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

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

我强烈建议您单击超链接访问华硕保修条件并仔细阅读,尤其是第 2.2.3 节。

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

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

要跟踪修复状态,您可以勾选“我同意接收有关我的修复文件夹状态的短信信息”复选框。

一旦我们的服务收到产品,技术人员将对故障进行诊断并向您发送维修估价

然后,您就可以直接与维修店沟通您是否希望继续维修您的产品。

如果拒绝报价,我会通知您,诊断费和运费将由您承担。(约 75 欧元)

泽维尔先生,如果您还有其他问题,我仍将竭诚为您服务,祝您有美好的一天。

相关内容