电子古董考究——步步高朗文电子词典的万能密码是怎么计算的?

0.

在之前的某个时间点,我曾经写过一篇文章简单介绍过从我妈那得到的步步高朗文3988。

不过,那篇文章因为写得比较杂乱,我已经删了。

因为我没怎么玩过,我折腾的产品大多是Android手机、RFID这些,所以没什么情怀。

但是,这并不代表它没有让我感兴趣的地方。

让我们想象这样一个场景(你们最喜欢的故事时间):

假设你从某鱼、某多多或者在哪里翻箱倒柜找到了一台步步高朗文。

你给它换上了新电池,开机。

开机或者打开里面的备忘录什么的时候,哦豁,“请输入密码”出现在眼前。

生成万能密码的exe已经泄露并被传播了,你可能已经在别的地方下载到你的电脑上了。

什么?你没有电脑?呃,步步高的客服的联系方式应该还有,他们的解锁服务前几年还在的。

如果到了今天,步步高不提供解锁或者客服通道没了,并且你也没有电脑运行这个程序,也先别急着退出这个文章。

你唯一需要的工具就是一个计算器放在旁边,下面会教你自己算出超级密码。

本文仅适用于朗文的12位IDNum到6位超级密码,而且步步高朗文电子词典也不是什么大圈子,其他产品我也无能为力

如果你实在真的非常急着解锁而不想进行任何计算操作,那么就去下面这个页面,我让Gemini写出了html+JavaScript的版本

https://www.fcrnext.com/html/bbk.html

1.汇编

这里是给感兴趣的逆向爱好者看的,其实我自己也看不懂…

如果你只是想尽快解锁,跳过这里。

当然,多亏了Gemini3的帮忙。

004015FC | 55                       | push ebp                                |
004015FD | 8BEC                     | mov ebp,esp                             |
004015FF | 83C4 B8                  | add esp,FFFFFFB8                        |
00401602 | 33C0                     | xor eax,eax                             |
00401604 | 8945 FC                  | mov dword ptr ss:[ebp-4],eax            |
00401607 | 33D2                     | xor edx,edx                             |
00401609 | 8955 F0                  | mov dword ptr ss:[ebp-10],edx           |
0040160C | 8B4D F0                  | mov ecx,dword ptr ss:[ebp-10]           |
0040160F | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
00401612 | 0FBE1408                 | movsx edx,byte ptr ds:[eax+ecx]         |
00401616 | 0155 FC                  | add dword ptr ss:[ebp-4],edx            |
00401619 | FF45 F0                  | inc dword ptr ss:[ebp-10]               |
0040161C | 837D F0 0C               | cmp dword ptr ss:[ebp-10],C             | C:'\f'
00401620 | 7C EA                    | jl 超级密码生成器.40160C                       |
00401622 | 8B45 FC                  | mov eax,dword ptr ss:[ebp-4]            |
00401625 | B9 E8030000              | mov ecx,3E8                             |
0040162A | 99                       | cdq                                     |
0040162B | F7F9                     | idiv ecx                                |
0040162D | 8955 FC                  | mov dword ptr ss:[ebp-4],edx            |
00401630 | 8B45 FC                  | mov eax,dword ptr ss:[ebp-4]            |
00401633 | B9 E8030000              | mov ecx,3E8                             |
00401638 | 99                       | cdq                                     |
00401639 | F7F9                     | idiv ecx                                |
0040163B | 8BC2                     | mov eax,edx                             |
0040163D | B9 64000000              | mov ecx,64                              | 64:'d'
00401642 | 99                       | cdq                                     |
00401643 | F7F9                     | idiv ecx                                |
00401645 | 8845 E9                  | mov byte ptr ss:[ebp-17],al             |
00401648 | 8B45 FC                  | mov eax,dword ptr ss:[ebp-4]            |
0040164B | B9 64000000              | mov ecx,64                              | 64:'d'
00401650 | 99                       | cdq                                     |
00401651 | F7F9                     | idiv ecx                                |
00401653 | 8BC2                     | mov eax,edx                             |
00401655 | B9 0A000000              | mov ecx,A                               | A:'\n'
0040165A | 99                       | cdq                                     |
0040165B | F7F9                     | idiv ecx                                |
0040165D | 8845 E8                  | mov byte ptr ss:[ebp-18],al             |
00401660 | 8B45 FC                  | mov eax,dword ptr ss:[ebp-4]            |
00401663 | B9 0A000000              | mov ecx,A                               | A:'\n'
00401668 | 99                       | cdq                                     |
00401669 | F7F9                     | idiv ecx                                |
0040166B | 8855 E7                  | mov byte ptr ss:[ebp-19],dl             |
0040166E | 8B45 FC                  | mov eax,dword ptr ss:[ebp-4]            |
00401671 | F76D FC                  | imul dword ptr ss:[ebp-4]               |
00401674 | 8945 F8                  | mov dword ptr ss:[ebp-8],eax            |
00401677 | 8B45 F8                  | mov eax,dword ptr ss:[ebp-8]            |
0040167A | B9 E8030000              | mov ecx,3E8                             |
0040167F | 99                       | cdq                                     |
00401680 | F7F9                     | idiv ecx                                |
00401682 | 8BC2                     | mov eax,edx                             |
00401684 | B9 64000000              | mov ecx,64                              | 64:'d'
00401689 | 99                       | cdq                                     |
0040168A | F7F9                     | idiv ecx                                |
0040168C | 8845 EF                  | mov byte ptr ss:[ebp-11],al             |
0040168F | 8B45 F8                  | mov eax,dword ptr ss:[ebp-8]            |
00401692 | B9 64000000              | mov ecx,64                              | 64:'d'
00401697 | 99                       | cdq                                     |
00401698 | F7F9                     | idiv ecx                                |
0040169A | 8BC2                     | mov eax,edx                             |
0040169C | B9 0A000000              | mov ecx,A                               | A:'\n'
004016A1 | 99                       | cdq                                     |
004016A2 | F7F9                     | idiv ecx                                |
004016A4 | 8845 EE                  | mov byte ptr ss:[ebp-12],al             |
004016A7 | 8B45 F8                  | mov eax,dword ptr ss:[ebp-8]            |
004016AA | B9 0A000000              | mov ecx,A                               | A:'\n'
004016AF | 99                       | cdq                                     |
004016B0 | F7F9                     | idiv ecx                                |
004016B2 | 8855 ED                  | mov byte ptr ss:[ebp-13],dl             |
004016B5 | 8B45 FC                  | mov eax,dword ptr ss:[ebp-4]            |
004016B8 | F76D FC                  | imul dword ptr ss:[ebp-4]               |
004016BB | F76D FC                  | imul dword ptr ss:[ebp-4]               |
004016BE | 8945 F4                  | mov dword ptr ss:[ebp-C],eax            | [ebp-C]:sub_774C1B00+70
004016C1 | 8B45 F4                  | mov eax,dword ptr ss:[ebp-C]            | [ebp-C]:sub_774C1B00+70
004016C4 | B9 E8030000              | mov ecx,3E8                             |
004016C9 | 99                       | cdq                                     |
004016CA | F7F9                     | idiv ecx                                |
004016CC | 8BC2                     | mov eax,edx                             |
004016CE | B9 64000000              | mov ecx,64                              | 64:'d'
004016D3 | 99                       | cdq                                     |
004016D4 | F7F9                     | idiv ecx                                |
004016D6 | 8845 EC                  | mov byte ptr ss:[ebp-14],al             |
004016D9 | 8B45 F4                  | mov eax,dword ptr ss:[ebp-C]            | [ebp-C]:sub_774C1B00+70
004016DC | B9 64000000              | mov ecx,64                              | 64:'d'
004016E1 | 99                       | cdq                                     |
004016E2 | F7F9                     | idiv ecx                                |
004016E4 | 8BC2                     | mov eax,edx                             |
004016E6 | B9 0A000000              | mov ecx,A                               | A:'\n'
004016EB | 99                       | cdq                                     |
004016EC | F7F9                     | idiv ecx                                |
004016EE | 8845 EB                  | mov byte ptr ss:[ebp-15],al             |
004016F1 | 8B45 F4                  | mov eax,dword ptr ss:[ebp-C]            | [ebp-C]:sub_774C1B00+70
004016F4 | B9 0A000000              | mov ecx,A                               | A:'\n'
004016F9 | 99                       | cdq                                     |
004016FA | F7F9                     | idiv ecx                                |
004016FC | 8855 EA                  | mov byte ptr ss:[ebp-16],dl             |
004016FF | 0FBE45 EC                | movsx eax,byte ptr ss:[ebp-14]          |
00401703 | 0FBE55 E9                | movsx edx,byte ptr ss:[ebp-17]          |
00401707 | 03C2                     | add eax,edx                             |
00401709 | B9 0A000000              | mov ecx,A                               | A:'\n'
0040170E | 99                       | cdq                                     |
0040170F | F7F9                     | idiv ecx                                |
00401711 | 8855 EC                  | mov byte ptr ss:[ebp-14],dl             |
00401714 | 0FBE45 EB                | movsx eax,byte ptr ss:[ebp-15]          |
00401718 | 0FBE55 E8                | movsx edx,byte ptr ss:[ebp-18]          |
0040171C | 03C2                     | add eax,edx                             |
0040171E | B9 0A000000              | mov ecx,A                               | A:'\n'
00401723 | 99                       | cdq                                     |
00401724 | F7F9                     | idiv ecx                                |
00401726 | 8855 EB                  | mov byte ptr ss:[ebp-15],dl             |
00401729 | 0FBE45 EA                | movsx eax,byte ptr ss:[ebp-16]          |
0040172D | 0FBE55 E7                | movsx edx,byte ptr ss:[ebp-19]          |
00401731 | 03C2                     | add eax,edx                             |
00401733 | B9 0A000000              | mov ecx,A                               | A:'\n'
00401738 | 99                       | cdq                                     |
00401739 | F7F9                     | idiv ecx                                |
0040173B | 8855 EA                  | mov byte ptr ss:[ebp-16],dl             |
0040173E | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
00401741 | 0FBE40 09                | movsx eax,byte ptr ds:[eax+9]           |
00401745 | 83C0 D0                  | add eax,FFFFFFD0                        |
00401748 | 6BD0 64                  | imul edx,eax,64                         |
0040174B | 8B4D 08                  | mov ecx,dword ptr ss:[ebp+8]            |
0040174E | 0FBE41 0A                | movsx eax,byte ptr ds:[ecx+A]           |
00401752 | 83C0 D0                  | add eax,FFFFFFD0                        |
00401755 | 8BC8                     | mov ecx,eax                             |
00401757 | 03C9                     | add ecx,ecx                             |
00401759 | 8D0C89                   | lea ecx,dword ptr ds:[ecx+ecx*4]        |
0040175C | 03D1                     | add edx,ecx                             |
0040175E | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
00401761 | 0FBE48 0B                | movsx ecx,byte ptr ds:[eax+B]           |
00401765 | 03D1                     | add edx,ecx                             |
00401767 | 83C2 D0                  | add edx,FFFFFFD0                        |
0040176A | 8955 E0                  | mov dword ptr ss:[ebp-20],edx           |
0040176D | 8B55 E0                  | mov edx,dword ptr ss:[ebp-20]           |
00401770 | 0FAF55 E0                | imul edx,dword ptr ss:[ebp-20]          |
00401774 | 8955 E0                  | mov dword ptr ss:[ebp-20],edx           |
00401777 | 8B45 E0                  | mov eax,dword ptr ss:[ebp-20]           |
0040177A | B9 A0860100              | mov ecx,186A0                           |
0040177F | 99                       | cdq                                     |
00401780 | F7F9                     | idiv ecx                                |
00401782 | 8845 D7                  | mov byte ptr ss:[ebp-29],al             |
00401785 | 8B45 E0                  | mov eax,dword ptr ss:[ebp-20]           |
00401788 | B9 10270000              | mov ecx,2710                            |
0040178D | 99                       | cdq                                     |
0040178E | F7F9                     | idiv ecx                                |
00401790 | B9 0A000000              | mov ecx,A                               | A:'\n'
00401795 | 99                       | cdq                                     |
00401796 | F7F9                     | idiv ecx                                |
00401798 | 8855 D6                  | mov byte ptr ss:[ebp-2A],dl             |
0040179B | 8B45 E0                  | mov eax,dword ptr ss:[ebp-20]           |
0040179E | B9 E8030000              | mov ecx,3E8                             |
004017A3 | 99                       | cdq                                     |
004017A4 | F7F9                     | idiv ecx                                |
004017A6 | B9 0A000000              | mov ecx,A                               | A:'\n'
004017AB | 99                       | cdq                                     |
004017AC | F7F9                     | idiv ecx                                |
004017AE | 8855 D5                  | mov byte ptr ss:[ebp-2B],dl             |
004017B1 | 8B45 E0                  | mov eax,dword ptr ss:[ebp-20]           |
004017B4 | B9 64000000              | mov ecx,64                              | 64:'d'
004017B9 | 99                       | cdq                                     |
004017BA | F7F9                     | idiv ecx                                |
004017BC | B9 0A000000              | mov ecx,A                               | A:'\n'
004017C1 | 99                       | cdq                                     |
004017C2 | F7F9                     | idiv ecx                                |
004017C4 | 8855 D4                  | mov byte ptr ss:[ebp-2C],dl             |
004017C7 | 8B45 E0                  | mov eax,dword ptr ss:[ebp-20]           |
004017CA | B9 0A000000              | mov ecx,A                               | A:'\n'
004017CF | 99                       | cdq                                     |
004017D0 | F7F9                     | idiv ecx                                |
004017D2 | B9 0A000000              | mov ecx,A                               | A:'\n'
004017D7 | 99                       | cdq                                     |
004017D8 | F7F9                     | idiv ecx                                |
004017DA | 8855 D3                  | mov byte ptr ss:[ebp-2D],dl             |
004017DD | 8B45 E0                  | mov eax,dword ptr ss:[ebp-20]           |
004017E0 | B9 0A000000              | mov ecx,A                               | A:'\n'
004017E5 | 99                       | cdq                                     |
004017E6 | F7F9                     | idiv ecx                                |
004017E8 | 8855 D2                  | mov byte ptr ss:[ebp-2E],dl             |
004017EB | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
004017EE | 0FBE40 06                | movsx eax,byte ptr ds:[eax+6]           |
004017F2 | 83C0 D0                  | add eax,FFFFFFD0                        |
004017F5 | 6BD0 64                  | imul edx,eax,64                         |
004017F8 | 8B4D 08                  | mov ecx,dword ptr ss:[ebp+8]            |
004017FB | 0FBE41 07                | movsx eax,byte ptr ds:[ecx+7]           |
004017FF | 83C0 D0                  | add eax,FFFFFFD0                        |
00401802 | 8BC8                     | mov ecx,eax                             |
00401804 | 03C9                     | add ecx,ecx                             |
00401806 | 8D0C89                   | lea ecx,dword ptr ds:[ecx+ecx*4]        |
00401809 | 03D1                     | add edx,ecx                             |
0040180B | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
0040180E | 0FBE48 08                | movsx ecx,byte ptr ds:[eax+8]           |
00401812 | 03D1                     | add edx,ecx                             |
00401814 | 83C2 D0                  | add edx,FFFFFFD0                        |
00401817 | 8955 DC                  | mov dword ptr ss:[ebp-24],edx           |
0040181A | 8B55 DC                  | mov edx,dword ptr ss:[ebp-24]           |
0040181D | 0FAF55 DC                | imul edx,dword ptr ss:[ebp-24]          |
00401821 | 8955 DC                  | mov dword ptr ss:[ebp-24],edx           |
00401824 | 8B45 DC                  | mov eax,dword ptr ss:[ebp-24]           |
00401827 | B9 A0860100              | mov ecx,186A0                           |
0040182C | 99                       | cdq                                     |
0040182D | F7F9                     | idiv ecx                                |
0040182F | 8845 D1                  | mov byte ptr ss:[ebp-2F],al             |
00401832 | 8B45 DC                  | mov eax,dword ptr ss:[ebp-24]           |
00401835 | B9 10270000              | mov ecx,2710                            |
0040183A | 99                       | cdq                                     |
0040183B | F7F9                     | idiv ecx                                |
0040183D | B9 0A000000              | mov ecx,A                               | A:'\n'
00401842 | 99                       | cdq                                     |
00401843 | F7F9                     | idiv ecx                                |
00401845 | 8855 D0                  | mov byte ptr ss:[ebp-30],dl             |
00401848 | 8B45 DC                  | mov eax,dword ptr ss:[ebp-24]           |
0040184B | B9 E8030000              | mov ecx,3E8                             |
00401850 | 99                       | cdq                                     |
00401851 | F7F9                     | idiv ecx                                |
00401853 | B9 0A000000              | mov ecx,A                               | A:'\n'
00401858 | 99                       | cdq                                     |
00401859 | F7F9                     | idiv ecx                                |
0040185B | 8855 CF                  | mov byte ptr ss:[ebp-31],dl             |
0040185E | 8B45 DC                  | mov eax,dword ptr ss:[ebp-24]           |
00401861 | B9 64000000              | mov ecx,64                              | 64:'d'
00401866 | 99                       | cdq                                     |
00401867 | F7F9                     | idiv ecx                                |
00401869 | B9 0A000000              | mov ecx,A                               | A:'\n'
0040186E | 99                       | cdq                                     |
0040186F | F7F9                     | idiv ecx                                |
00401871 | 8855 CE                  | mov byte ptr ss:[ebp-32],dl             |
00401874 | 8B45 DC                  | mov eax,dword ptr ss:[ebp-24]           |
00401877 | B9 0A000000              | mov ecx,A                               | A:'\n'
0040187C | 99                       | cdq                                     |
0040187D | F7F9                     | idiv ecx                                |
0040187F | B9 0A000000              | mov ecx,A                               | A:'\n'
00401884 | 99                       | cdq                                     |
00401885 | F7F9                     | idiv ecx                                |
00401887 | 8855 CD                  | mov byte ptr ss:[ebp-33],dl             |
0040188A | 8B45 DC                  | mov eax,dword ptr ss:[ebp-24]           |
0040188D | B9 0A000000              | mov ecx,A                               | A:'\n'
00401892 | 99                       | cdq                                     |
00401893 | F7F9                     | idiv ecx                                |
00401895 | 8855 CC                  | mov byte ptr ss:[ebp-34],dl             |
00401898 | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
0040189B | 8A40 06                  | mov al,byte ptr ds:[eax+6]              |
0040189E | 04 D0                    | add al,D0                               |
004018A0 | 8845 CB                  | mov byte ptr ss:[ebp-35],al             |
004018A3 | 8B55 08                  | mov edx,dword ptr ss:[ebp+8]            |
004018A6 | 8A4A 07                  | mov cl,byte ptr ds:[edx+7]              |
004018A9 | 80C1 D0                  | add cl,D0                               |
004018AC | 884D CA                  | mov byte ptr ss:[ebp-36],cl             |
004018AF | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
004018B2 | 8A50 08                  | mov dl,byte ptr ds:[eax+8]              |
004018B5 | 80C2 D0                  | add dl,D0                               |
004018B8 | 8855 C9                  | mov byte ptr ss:[ebp-37],dl             |
004018BB | 8B4D 08                  | mov ecx,dword ptr ss:[ebp+8]            |
004018BE | 8A41 09                  | mov al,byte ptr ds:[ecx+9]              |
004018C1 | 04 D0                    | add al,D0                               |
004018C3 | 8845 C8                  | mov byte ptr ss:[ebp-38],al             |
004018C6 | 8B55 08                  | mov edx,dword ptr ss:[ebp+8]            |
004018C9 | 8A4A 0A                  | mov cl,byte ptr ds:[edx+A]              |
004018CC | 80C1 D0                  | add cl,D0                               |
004018CF | 884D C7                  | mov byte ptr ss:[ebp-39],cl             |
004018D2 | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]            |
004018D5 | 8A50 0B                  | mov dl,byte ptr ds:[eax+B]              |
004018D8 | 80C2 D0                  | add dl,D0                               |
004018DB | 8855 C6                  | mov byte ptr ss:[ebp-3A],dl             |
004018DE | 0FBE45 D7                | movsx eax,byte ptr ss:[ebp-29]          |
004018E2 | 0FBE55 D1                | movsx edx,byte ptr ss:[ebp-2F]          |
004018E6 | 03C2                     | add eax,edx                             |
004018E8 | 0FBE4D CB                | movsx ecx,byte ptr ss:[ebp-35]          |
004018EC | 03C1                     | add eax,ecx                             |
004018EE | B9 0A000000              | mov ecx,A                               | A:'\n'
004018F3 | 99                       | cdq                                     |
004018F4 | F7F9                     | idiv ecx                                |
004018F6 | 8855 BF                  | mov byte ptr ss:[ebp-41],dl             |
004018F9 | 0FBE45 D6                | movsx eax,byte ptr ss:[ebp-2A]          |
004018FD | 0FBE55 D0                | movsx edx,byte ptr ss:[ebp-30]          |
00401901 | 03C2                     | add eax,edx                             |
00401903 | 0FBE4D CA                | movsx ecx,byte ptr ss:[ebp-36]          |
00401907 | 03C1                     | add eax,ecx                             |
00401909 | B9 0A000000              | mov ecx,A                               | A:'\n'
0040190E | 99                       | cdq                                     |
0040190F | F7F9                     | idiv ecx                                |
00401911 | 8855 BE                  | mov byte ptr ss:[ebp-42],dl             |
00401914 | 0FBE45 D5                | movsx eax,byte ptr ss:[ebp-2B]          |
00401918 | 0FBE55 CF                | movsx edx,byte ptr ss:[ebp-31]          |
0040191C | 03C2                     | add eax,edx                             |
0040191E | 0FBE4D C9                | movsx ecx,byte ptr ss:[ebp-37]          |
00401922 | 03C1                     | add eax,ecx                             |
00401924 | B9 0A000000              | mov ecx,A                               | A:'\n'
00401929 | 99                       | cdq                                     |
0040192A | F7F9                     | idiv ecx                                |
0040192C | 8855 BD                  | mov byte ptr ss:[ebp-43],dl             |
0040192F | 0FBE45 D4                | movsx eax,byte ptr ss:[ebp-2C]          |
00401933 | 0FBE55 CE                | movsx edx,byte ptr ss:[ebp-32]          |
00401937 | 03C2                     | add eax,edx                             |
00401939 | 0FBE4D C8                | movsx ecx,byte ptr ss:[ebp-38]          |
0040193D | 03C1                     | add eax,ecx                             |
0040193F | B9 0A000000              | mov ecx,A                               | A:'\n'
00401944 | 99                       | cdq                                     |
00401945 | F7F9                     | idiv ecx                                |
00401947 | 8855 BC                  | mov byte ptr ss:[ebp-44],dl             |
0040194A | 0FBE45 D3                | movsx eax,byte ptr ss:[ebp-2D]          |
0040194E | 0FBE55 CD                | movsx edx,byte ptr ss:[ebp-33]          |
00401952 | 03C2                     | add eax,edx                             |
00401954 | 0FBE4D C7                | movsx ecx,byte ptr ss:[ebp-39]          |
00401958 | 03C1                     | add eax,ecx                             |
0040195A | B9 0A000000              | mov ecx,A                               | A:'\n'
0040195F | 99                       | cdq                                     |
00401960 | F7F9                     | idiv ecx                                |
00401962 | 8855 BB                  | mov byte ptr ss:[ebp-45],dl             |
00401965 | 0FBE45 D2                | movsx eax,byte ptr ss:[ebp-2E]          |
00401969 | 0FBE55 CC                | movsx edx,byte ptr ss:[ebp-34]          |
0040196D | 03C2                     | add eax,edx                             |
0040196F | 0FBE4D C6                | movsx ecx,byte ptr ss:[ebp-3A]          |
00401973 | 03C1                     | add eax,ecx                             |
00401975 | B9 0A000000              | mov ecx,A                               | A:'\n'
0040197A | 99                       | cdq                                     |
0040197B | F7F9                     | idiv ecx                                |
0040197D | 8855 BA                  | mov byte ptr ss:[ebp-46],dl             |
00401980 | 0FBE45 EF                | movsx eax,byte ptr ss:[ebp-11]          |
00401984 | 0FBE55 BF                | movsx edx,byte ptr ss:[ebp-41]          |
00401988 | 03C2                     | add eax,edx                             |
0040198A | B9 0A000000              | mov ecx,A                               | A:'\n'
0040198F | 99                       | cdq                                     |
00401990 | F7F9                     | idiv ecx                                |
00401992 | 80C2 30                  | add dl,30                               |
00401995 | 8B45 0C                  | mov eax,dword ptr ss:[ebp+C]            |
00401998 | 8810                     | mov byte ptr ds:[eax],dl                |
0040199A | 0FBE45 EC                | movsx eax,byte ptr ss:[ebp-14]          |
0040199E | 0FBE55 BE                | movsx edx,byte ptr ss:[ebp-42]          |
004019A2 | 03C2                     | add eax,edx                             |
004019A4 | B9 0A000000              | mov ecx,A                               | A:'\n'
004019A9 | 99                       | cdq                                     |
004019AA | F7F9                     | idiv ecx                                |
004019AC | 80C2 30                  | add dl,30                               |
004019AF | 8B45 0C                  | mov eax,dword ptr ss:[ebp+C]            |
004019B2 | 8850 01                  | mov byte ptr ds:[eax+1],dl              |
004019B5 | 0FBE45 EE                | movsx eax,byte ptr ss:[ebp-12]          |
004019B9 | 0FBE55 BD                | movsx edx,byte ptr ss:[ebp-43]          |
004019BD | 03C2                     | add eax,edx                             |
004019BF | B9 0A000000              | mov ecx,A                               | A:'\n'
004019C4 | 99                       | cdq                                     |
004019C5 | F7F9                     | idiv ecx                                |
004019C7 | 80C2 30                  | add dl,30                               |
004019CA | 8B45 0C                  | mov eax,dword ptr ss:[ebp+C]            |
004019CD | 8850 02                  | mov byte ptr ds:[eax+2],dl              |
004019D0 | 0FBE45 EB                | movsx eax,byte ptr ss:[ebp-15]          |
004019D4 | 0FBE55 BC                | movsx edx,byte ptr ss:[ebp-44]          |
004019D8 | 03C2                     | add eax,edx                             |
004019DA | B9 0A000000              | mov ecx,A                               | A:'\n'
004019DF | 99                       | cdq                                     |
004019E0 | F7F9                     | idiv ecx                                |
004019E2 | 80C2 30                  | add dl,30                               |
004019E5 | 8B45 0C                  | mov eax,dword ptr ss:[ebp+C]            |
004019E8 | 8850 03                  | mov byte ptr ds:[eax+3],dl              |
004019EB | 0FBE45 ED                | movsx eax,byte ptr ss:[ebp-13]          |
004019EF | 0FBE55 BB                | movsx edx,byte ptr ss:[ebp-45]          |
004019F3 | 03C2                     | add eax,edx                             |
004019F5 | B9 0A000000              | mov ecx,A                               | A:'\n'
004019FA | 99                       | cdq                                     |
004019FB | F7F9                     | idiv ecx                                |
004019FD | 80C2 30                  | add dl,30                               |
00401A00 | 8B45 0C                  | mov eax,dword ptr ss:[ebp+C]            |
00401A03 | 8850 04                  | mov byte ptr ds:[eax+4],dl              |
00401A06 | 0FBE45 EA                | movsx eax,byte ptr ss:[ebp-16]          |
00401A0A | 0FBE55 BA                | movsx edx,byte ptr ss:[ebp-46]          |
00401A0E | 03C2                     | add eax,edx                             |
00401A10 | B9 0A000000              | mov ecx,A                               | A:'\n'
00401A15 | 99                       | cdq                                     |
00401A16 | F7F9                     | idiv ecx                                |
00401A18 | 80C2 30                  | add dl,30                               |
00401A1B | 8B45 0C                  | mov eax,dword ptr ss:[ebp+C]            |
00401A1E | 8850 05                  | mov byte ptr ds:[eax+5],dl              |
00401A21 | 8B45 0C                  | mov eax,dword ptr ss:[ebp+C]            |
00401A24 | C640 06 00               | mov byte ptr ds:[eax+6],0               |
00401A28 | B0 01                    | mov al,1                                |
00401A2A | 8BE5                     | mov esp,ebp                             |
00401A2C | 5D                       | pop ebp                                 |
00401A2D | C3                       | ret                                     |

2.计算

现在,拿好草稿纸和笔。当然,因为我在学校,这个东西不在我身边,我会取一个随机数来演示。

IDNum:853948812358

首先,把这个序列号一个一个数字拆开,换算成ASCII码

字符十进制 (Decimal)十六进制 (Hex)
‘0’480x30
‘1’490x31
‘2’500x32
‘3’510x33
‘4’520x34
‘5’530x35
‘6’540x36
‘7’550x37
‘8’560x38
‘9’570x39

例如,我的IDNum换成ASCII如下:

IDNum:853948812358

8  5  3  9  4  8  8  1  2  3  5  8
56 53 51 57 52 56 56 49 50 51 53 56

把这些ASCII相加:

56+53+51+57+52+56+56+49+50+51+53+56=640

把结果分别算出平方和立方:

640
640*640=409600
640*640*640=262144000

这三个数都要记在草稿纸上。

640
409600
262144000

对于这三列数,只保留最后三位:

640 => 640
409600 => 600
262144000 => 000

640
600
000

打上标记,一一对应:

x1 x2 x3
y1 y2 y3
z1 z2 z3

6 4 0
6 0 0
0 0 0

按照y1 (x1+z1) y2 (x2+z2) y3 (x3+z3)排序:

6 (6+0) 0 (4+0) 0 (0+0)
6 6 0 4 0 0

我这里挑的例子比较简单,如果加起来超过了10,那么取个位数:

#假设另外一种情况:
4 14 5 10 6 12
4  4 5  0 6  2

现在,看回IDNum:

IDNum:853948812358

分别取这三个数:

853948812[358] => 358
853948[812]358 => 812
853948[812358] => 812358

记住,取IDNum的10、11、12记为a。7、8、9记为b。7~12记为c。

把a和b分别平方,得到一个六位数,c不动:

358*358=128164
812*812=659344

128164
659344
812358
#特殊情况:
#如果a或者b的平方不到六位数,那么在前面补零
#例如:
130*130=16900
#那么:
016900

还记得上面的六位数吗?排好做竖式加法:

6 6 0 4 0 0
1 2 8 1 6 4
6 5 9 3 4 4
8 1 2 3 5 8
------------
21 14 19 11 15 16

超过10的数字取个位数,就是:

1 4 9 1 5 6

149156

这就是你的超级密码

已在Python实现:

3.AI

好吧,如果你的身边没有纸和笔,也可以让AI帮忙计算。

预设Prompt:

请按照以下特定的算法逻辑,为我计算一个 12 位 ID 对应的 6 位解锁码。

**输入 ID**: `<换成你的IDNum>`

**算法步骤**:

1.  **计算校验和 (Sum)**:
    - 将输入 ID 的 12 个字符的 ASCII 码值相加。
    - 记为 `S`。

2.  **计算核心参数**:
    - 平方数 (Square): `Q = S * S`
    - 立方数 (Cube): `C = S * S * S` (注意:如果计算结果很大,仅关注其最后三位用于后续提取)

3.  **提取位 (Digits Extraction)**:
    - 从 `S` 中提取:百位(S1), 十位(S2), 个位(S3)。
    - 从 `Q` 中提取:百位(Q1), 十位(Q2), 个位(Q3)。
    - 从 `C` 中提取:百位(C1), 十位(C2), 个位(C3)。

4.  **计算混合位 (Mix Digits)**:
    - M1 = (C1 + S1) % 10
    - M2 = (C2 + S2) % 10
    - M3 = (C3 + S3) % 10

5.  **构建基础层 (Base Layer)**:
    - 这是一个 6 位的数组,顺序为:`[Q1, M1, Q2, M2, Q3, M3]`

6.  **计算局部层 (Local Layers)**:
    - **中间层 (Mid)**: 取 ID 的第 7,8,9 位字符组成的数字(例如 "851" -> 851),计算其平方。取该平方数的**最后 6 位**(不足补0),按从高到低顺序拆分。
    - **最后层 (Last)**: 取 ID 的第 10,11,12 位字符组成的数字,计算其平方。取该平方数的**最后 6 位**(不足补0),按从高到低顺序拆分。
    - **原始层 (Raw)**: 取 ID 的第 712 位字符,直接转为对应的数字数值(例如 '5'->5)。

7.  **最终汇总 (Final Assembly)**:
    - 密码的每一位 = (基础层 + 中间层 + 最后层 + 原始层) % 10
    - 对 6 个位置分别进行上述加法运算。

**请直接输出计算过程和最终的 6 位数字代码。**

目前已知Gemini可以得出正确结果,可以先用我上面的IDNum去测试一下是否和我的结果一致。如果不一致建议换个AI。

4.相关文件

bbk.zip

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇