|
刚才发现偶写的第三篇申请里的软件已经更新了,偶也跟着更新啊~~算法没有任何改变~只是为了方便老大核对~~
【文章标题】: 易通文件夹锁2006 3.0.5.0算法分析
【文章作者】: 网游难民
【作者主页】: www.chinapyg.com
【软件名称】: 易通文件夹锁2006 3.0.5.0
【软件大小】: 3099KB
【下载地址】: http://www.newhua.com/soft/43125.htm
【加壳方式】: aspack
【保护方式】: 壳,注册码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OD PEID
【操作平台】: XP SP2
【软件介绍】: 四大保护功能,三种保护方式。集文件夹锁、文件锁、磁盘锁、增强锁于一体.提供锁定、隐藏、移动三种保护方式。防删除,复制等.是您文件资料的安全屏障。
1.文件夹保护功能:文件夹保护功能具有文件夹加锁和文件夹深度隐藏两种文件夹保护方式。用户可以通过右击想要保护的文件夹,选择[易通加锁/解锁]菜单来实现保护,也可以直接进入软件主界面的文件夹锁功能区里面进行保护与解除保护。同时,保护后的文件夹可以防止复制,删除等操作。
2.文件保护功能:文件保护功能具有文件加锁和文件深度隐藏两种文件保护方式。用户可以通过右击想要保护的文件,选择[易通文件加密]菜单来实现保护,也可以直接进入软件主界面的文件锁功能区里面进行保护与解除保护。
3.磁盘保护功能:磁盘保护功能具有磁盘驱动器加锁和磁盘驱动器隐藏两种磁盘保护方式。用户可以进入软件主界面的磁盘锁功能区里面进行选择需要保护的磁盘驱动器。另外还提供了禁止使用USB设备,如U盘,USB移动硬盘等USB接口设备和禁止USB存储设备的写入功能等,保护您的资料不能通过U盘、移动硬盘等外接设备带走。
4.增强保护功能:增强加锁功能目前为您提供了文件夹移动保护、程序锁、文件夹伪装、高强压缩加密等功能。在以后软件的升级版本中我们还会努力为您提供更多、更实用的加锁保护功能,敬请期待!
【作者声明】: 刚把2006 3_0_2_928算法分析贴出来,发现它更新了,郁闷,再来~~~
--------------------------------------------------------------------------------
【详细过程】
不要问偶怎么脱壳的,偶是壳盲,交给OD自己搞定,然后修复下就OK^__^
下下bp MessageBoxA断点,找合适的地方下断,下面开始分析拉~~
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
005A2220 55 PUSH EBP
005A2221 68 82245A00 PUSH etdirloc.005A2482
005A2226 64:FF30 PUSH DWORD PTR FS:[EAX]
005A2229 64:8920 MOV DWORD PTR FS:[EAX],ESP
005A222C 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
005A222F 8B83 20030000 MOV EAX,DWORD PTR DS:[EBX+320]
005A2235 E8 1EDAFAFF CALL etdirloc.0054FC58
005A223A 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 用户名放入EAX~~
005A223D 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
005A2240 E8 D76CF7FF CALL etdirloc.00518F1C
005A2245 837D F8 00 CMP DWORD PTR SS:[EBP-8],0
005A2249 0F84 80000000 JE etdirloc.005A22CF
005A224F 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
005A2252 8B83 24030000 MOV EAX,DWORD PTR DS:[EBX+324]
005A2258 E8 FBD9FAFF CALL etdirloc.0054FC58
005A225D 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; 第一列注册码
005A2260 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
005A2263 E8 B46CF7FF CALL etdirloc.00518F1C
005A2268 837D F0 00 CMP DWORD PTR SS:[EBP-10],0
005A226C 0F85 9A000000 JNZ etdirloc.005A230C
005A2272 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]
005A2275 8B83 2C030000 MOV EAX,DWORD PTR DS:[EBX+32C]
005A227B E8 D8D9FAFF CALL etdirloc.0054FC58
005A2280 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C]
005A2283 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
005A2286 E8 916CF7FF CALL etdirloc.00518F1C
005A228B 837D E8 00 CMP DWORD PTR SS:[EBP-18],0
005A228F 75 7B JNZ SHORT etdirloc.005A230C
005A2291 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
005A2294 8B83 30030000 MOV EAX,DWORD PTR DS:[EBX+330]
005A229A E8 B9D9FAFF CALL etdirloc.0054FC58
005A229F 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24]
005A22A2 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
005A22A5 E8 726CF7FF CALL etdirloc.00518F1C
005A22AA 837D E0 00 CMP DWORD PTR SS:[EBP-20],0
005A22AE 75 5C JNZ SHORT etdirloc.005A230C
005A22B0 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C]
005A22B3 8B83 34030000 MOV EAX,DWORD PTR DS:[EBX+334]
005A22B9 E8 9AD9FAFF CALL etdirloc.0054FC58
005A22BE 8B45 D4 MOV EAX,DWORD PTR SS:[EBP-2C]
005A22C1 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
005A22C4 E8 536CF7FF CALL etdirloc.00518F1C
005A22C9 837D D8 00 CMP DWORD PTR SS:[EBP-28],0
005A22CD 75 3D JNZ SHORT etdirloc.005A230C
005A22CF 68 30000400 PUSH 40030
005A22D4 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
005A22D7 B8 9C245A00 MOV EAX,etdirloc.005A249C
005A22DC E8 DB4BFEFF CALL etdirloc.00586EBC
005A22E1 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30]
005A22E4 E8 3B2BF7FF CALL etdirloc.00514E24
005A22E9 50 PUSH EAX
005A22EA 8D55 CC LEA EDX,DWORD PTR SS:[EBP-34]
005A22ED B8 B4245A00 MOV EAX,etdirloc.005A24B4
005A22F2 E8 C54BFEFF CALL etdirloc.00586EBC
005A22F7 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34]
005A22FA E8 252BF7FF CALL etdirloc.00514E24
005A22FF 50 PUSH EAX
005A2300 6A 00 PUSH 0
005A2302 E8 3D56F7FF CALL etdirloc.00517944 ; JMP 到 user32.MessageBoxA
005A2307 E9 EC000000 JMP etdirloc.005A23F8
005A230C 8D55 C8 LEA EDX,DWORD PTR SS:[EBP-38]
005A230F 8B83 24030000 MOV EAX,DWORD PTR DS:[EBX+324]
005A2315 E8 3ED9FAFF CALL etdirloc.0054FC58
005A231A FF75 C8 PUSH DWORD PTR SS:[EBP-38]
005A231D 8D55 C4 LEA EDX,DWORD PTR SS:[EBP-3C]
005A2320 8B83 2C030000 MOV EAX,DWORD PTR DS:[EBX+32C]
005A2326 E8 2DD9FAFF CALL etdirloc.0054FC58
005A232B FF75 C4 PUSH DWORD PTR SS:[EBP-3C] ; 第二列
005A232E 8D55 C0 LEA EDX,DWORD PTR SS:[EBP-40]
005A2331 8B83 30030000 MOV EAX,DWORD PTR DS:[EBX+330]
005A2337 E8 1CD9FAFF CALL etdirloc.0054FC58
005A233C FF75 C0 PUSH DWORD PTR SS:[EBP-40] ; 第三列
005A233F 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44]
005A2342 8B83 34030000 MOV EAX,DWORD PTR DS:[EBX+334]
005A2348 E8 0BD9FAFF CALL etdirloc.0054FC58
005A234D FF75 BC PUSH DWORD PTR SS:[EBP-44] ; 第四列
005A2350 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
005A2353 BA 04000000 MOV EDX,4
005A2358 E8 8F29F7FF CALL etdirloc.00514CEC
005A235D 8D55 B8 LEA EDX,DWORD PTR SS:[EBP-48]
005A2360 8B83 20030000 MOV EAX,DWORD PTR DS:[EBX+320]
005A2366 E8 EDD8FAFF CALL etdirloc.0054FC58
005A236B 8B55 B8 MOV EDX,DWORD PTR SS:[EBP-48] ; 用户名
005A236E 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 注册码
005A2371 E8 4E4FFEFF CALL etdirloc.005872C4 ; 关键CALL,跟进~
005A2376 84C0 TEST AL,AL ; 标志位检验
005A2378 74 46 JE SHORT etdirloc.005A23C0 ; 爆破点~
005A237A 68 40000400 PUSH 40040
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
跟进上面的算法CALL:
005872DA 55 PUSH EBP
005872DB 68 1A745800 PUSH etdirloc.0058741A
005872E0 64:FF30 PUSH DWORD PTR FS:[EAX]
005872E3 64:8920 MOV DWORD PTR FS:[EAX],ESP
005872E6 C645 FF 00 MOV BYTE PTR SS:[EBP-1],0
005872EA B8 50695800 MOV EAX,etdirloc.00586950
005872EF E8 64F8FFFF CALL etdirloc.00586B58
005872F4 84C0 TEST AL,AL
005872F6 74 0C JE SHORT etdirloc.00587304
005872F8 A1 2CC15A00 MOV EAX,DWORD PTR DS:[5AC12C]
005872FD 8B00 MOV EAX,DWORD PTR DS:[EAX]
005872FF E8 3C81FEFF CALL etdirloc.0056F440
00587304 B8 04675800 MOV EAX,etdirloc.00586704
00587309 E8 4AF8FFFF CALL etdirloc.00586B58
0058730E 84C0 TEST AL,AL
00587310 74 0C JE SHORT etdirloc.0058731E
00587312 A1 2CC15A00 MOV EAX,DWORD PTR DS:[5AC12C]
00587317 8B00 MOV EAX,DWORD PTR DS:[EAX]
00587319 E8 2281FEFF CALL etdirloc.0056F440
0058731E B8 18685800 MOV EAX,etdirloc.00586818
00587323 E8 30F8FFFF CALL etdirloc.00586B58
00587328 84C0 TEST AL,AL
0058732A 74 0C JE SHORT etdirloc.00587338
0058732C A1 2CC15A00 MOV EAX,DWORD PTR DS:[5AC12C]
00587331 8B00 MOV EAX,DWORD PTR DS:[EAX]
00587333 E8 0881FEFF CALL etdirloc.0056F440
00587338 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
0058733B E8 BCFAFFFF CALL etdirloc.00586DFC ; 算法CALL(1)
00587340 8D4D F0 LEA ECX,DWORD PTR SS:[EBP-10]
00587343 8BD7 MOV EDX,EDI
00587345 A1 7CDC5A00 MOV EAX,DWORD PTR DS:[5ADC7C]
0058734A E8 BDFCFFFF CALL etdirloc.0058700C ; 算法CALL(2)
0058734F 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 注册码出来了~~
00587352 8BD6 MOV EDX,ESI
00587354 E8 17DAF8FF CALL etdirloc.00514D70
00587359 0F85 A0000000 JNZ etdirloc.005873FF
0058735F B2 01 MOV DL,1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
上面的算法CALL(1)是介绍怎么根据硬盘号取得机器码的:
00586E17 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00586E1A E8 5DFEFFFF CALL etdirloc.00586C7C
00586E1F 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
00586E22 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 硬盘号放入EAX中~~
00586E25 E8 F220F9FF CALL etdirloc.00518F1C
00586E2A 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
00586E2D 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00586E30 E8 D7DBF8FF CALL etdirloc.00514A0C
00586E35 837D FC 00 CMP DWORD PTR SS:[EBP-4],0
00586E39 74 22 JE SHORT etdirloc.00586E5D
00586E3B 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
00586E3E 50 PUSH EAX
00586E3F 33C9 XOR ECX,ECX
00586E41 BA 12000000 MOV EDX,12
00586E46 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 硬盘号放入EAX中~~
00586E49 E8 FA000000 CALL etdirloc.00586F48 ; 算法CALL(3),跟进~~
00586E4E 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 机器码
00586E51 B8 7CDC5A00 MOV EAX,etdirloc.005ADC7C
00586E56 E8 6DDBF8FF CALL etdirloc.005149C8
00586E5B EB 28 JMP SHORT etdirloc.00586E85
00586E5D 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
00586E60 50 PUSH EAX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
跟进算法CALL(3):
00586F48 55 PUSH EBP
00586F49 8BEC MOV EBP,ESP
00586F4B 83C4 EC ADD ESP,-14
00586F4E 53 PUSH EBX
00586F4F 56 PUSH ESI
00586F50 57 PUSH EDI
00586F51 33DB XOR EBX,EBX
00586F53 895D EC MOV DWORD PTR SS:[EBP-14],EBX
00586F56 895D F0 MOV DWORD PTR SS:[EBP-10],EBX
00586F59 894D F4 MOV DWORD PTR SS:[EBP-C],ECX
00586F5C 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
00586F5F 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00586F62 33C0 XOR EAX,EAX
00586F64 55 PUSH EBP
00586F65 68 FA6F5800 PUSH etdirloc.00586FFA
00586F6A 64:FF30 PUSH DWORD PTR FS:[EAX]
00586F6D 64:8920 MOV DWORD PTR FS:[EAX],ESP
00586F70 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 机器码放入EAX~~
00586F73 E8 B4DCF8FF CALL etdirloc.00514C2C ; 机器码位数~
00586F78 8BF8 MOV EDI,EAX
00586F7A 85FF TEST EDI,EDI
00586F7C 7E 61 JLE SHORT etdirloc.00586FDF
00586F7E BE 01000000 MOV ESI,1
00586F83 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00586F86 0FB64430 FF MOVZX EAX,BYTE PTR DS:[EAX+ESI-1] ; 逐位取机器码ASCII码~
00586F8B 99 CDQ ; 扩展指令
00586F8C F77D F8 IDIV DWORD PTR SS:[EBP-8] ; 除以12,余数放进EDX中~
00586F8F 8BDA MOV EBX,EDX
00586F91 33DE XOR EBX,ESI ; 上面得到的余数与循环次数逻辑异或运算~
00586F93 837D F4 01 CMP DWORD PTR SS:[EBP-C],1
00586F97 75 2A JNZ SHORT etdirloc.00586FC3
00586F99 8BC3 MOV EAX,EBX
00586F9B B9 24000000 MOV ECX,24
00586FA0 99 CDQ
00586FA1 F7F9 IDIV ECX
00586FA3 8BDA MOV EBX,EDX
00586FA5 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
00586FA8 8A93 90B75A00 MOV DL,BYTE PTR DS:[EBX+5AB790]
00586FAE E8 A1DBF8FF CALL etdirloc.00514B54
00586FB3 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]
00586FB6 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00586FB9 E8 76DCF8FF CALL etdirloc.00514C34
00586FBE 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00586FC1 EB 18 JMP SHORT etdirloc.00586FDB
00586FC3 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
00586FC6 8BC3 MOV EAX,EBX
00586FC8 E8 6B21F9FF CALL etdirloc.00519138 ; 把上面的计算得到数转换为十进制
00586FCD 8B55 EC MOV EDX,DWORD PTR SS:[EBP-14]
00586FD0 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00586FD3 E8 5CDCF8FF CALL etdirloc.00514C34
00586FD8 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00586FDB 46 INC ESI
00586FDC 4F DEC EDI
00586FDD ^ 75 A4 JNZ SHORT etdirloc.00586F83 ; 循环结束,上面转换成十进制的数字连接起来就是机器码
00586FDF 33C0 XOR EAX,EAX
00586FE1 5A POP EDX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
跟进算法CALL(2):
0058700C 55 PUSH EBP
0058700D 8BEC MOV EBP,ESP
0058700F 83C4 E0 ADD ESP,-20
00587012 53 PUSH EBX
00587013 56 PUSH ESI
00587014 57 PUSH EDI
00587015 33DB XOR EBX,EBX
00587017 895D E0 MOV DWORD PTR SS:[EBP-20],EBX
0058701A 895D E4 MOV DWORD PTR SS:[EBP-1C],EBX
0058701D 894D F4 MOV DWORD PTR SS:[EBP-C],ECX
00587020 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
00587023 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00587026 33C0 XOR EAX,EAX
00587028 55 PUSH EBP
00587029 68 19715800 PUSH etdirloc.00587119
0058702E 64:FF30 PUSH DWORD PTR FS:[EAX]
00587031 64:8920 MOV DWORD PTR FS:[EAX],ESP
00587034 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
00587037 E8 38D9F8FF CALL etdirloc.00514974
0058703C 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0058703F E8 E8DBF8FF CALL etdirloc.00514C2C
00587044 85C0 TEST EAX,EAX
00587046 0F84 B2000000 JE etdirloc.005870FE
0058704C 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0058704F E8 D8DBF8FF CALL etdirloc.00514C2C
00587054 85C0 TEST EAX,EAX
00587056 0F84 A2000000 JE etdirloc.005870FE
0058705C 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
0058705F E8 10D9F8FF CALL etdirloc.00514974
00587064 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00587067 E8 C0DBF8FF CALL etdirloc.00514C2C
0058706C 8945 EC MOV DWORD PTR SS:[EBP-14],EAX
0058706F 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
00587072 E8 B5DBF8FF CALL etdirloc.00514C2C
00587077 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX
0058707A BF 01000000 MOV EDI,1 ; EDX置1
0058707F BB 01000000 MOV EBX,1 ; EBX置1
00587084 C745 F0 0100000>MOV DWORD PTR SS:[EBP-10],1 ; SS:[EBP-10]置1
0058708B 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 求出注册码,循环开始~~~
0058708E 0FB64438 FF MOVZX EAX,BYTE PTR DS:[EAX+EDI-1] ; 机器码ASCII码逐位放入EAX~
00587093 2B45 F0 SUB EAX,DWORD PTR SS:[EBP-10] ; 减去 SS:[EBP-10]中的值
00587096 03C7 ADD EAX,EDI ; 加上EDI
00587098 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
0058709B 0FB6541A FF MOVZX EDX,BYTE PTR DS:[EDX+EBX-1] ; 用户名ASCII码逐位放入EDX~
005870A0 33C2 XOR EAX,EDX ; 上面两个数异或运算~
005870A2 03C3 ADD EAX,EBX ; 上面得到的值加上EBX~
005870A4 99 CDQ ; 扩展指令
005870A5 33C2 XOR EAX,EDX
005870A7 2BC2 SUB EAX,EDX
005870A9 8BF0 MOV ESI,EAX
005870AB 8BC6 MOV EAX,ESI
005870AD B9 24000000 MOV ECX,24 ; ECX的值为24
005870B2 99 CDQ ; 扩展指令
005870B3 F7F9 IDIV ECX ; EAX中的值除以24,余数放在EDX中~
005870B5 8BF2 MOV ESI,EDX ; EDX中的值放在ESI中~
005870B7 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20] ; 找到内存对应的表中相应的值,把这些值连接起来就是真码~
005870BA 8A96 90B75A00 MOV DL,BYTE PTR DS:[ESI+5AB790]
005870C0 E8 8FDAF8FF CALL etdirloc.00514B54
005870C5 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20]
005870C8 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
005870CB E8 64DBF8FF CALL etdirloc.00514C34
005870D0 3B7D EC CMP EDI,DWORD PTR SS:[EBP-14] ; EDI中的值和机器码位数比较~
005870D3 7D 03 JGE SHORT etdirloc.005870D8
005870D5 47 INC EDI
005870D6 EB 05 JMP SHORT etdirloc.005870DD
005870D8 BB 01000000 MOV EBX,1
005870DD 3B5D E8 CMP EBX,DWORD PTR SS:[EBP-18] ; EBX中的值和用户名位数比~
005870E0 7D 03 JGE SHORT etdirloc.005870E5
005870E2 43 INC EBX
005870E3 EB 05 JMP SHORT etdirloc.005870EA
005870E5 BB 01000000 MOV EBX,1
005870EA FF45 F0 INC DWORD PTR SS:[EBP-10] ; SS:[EBP-10]中的值加1
005870ED 837D F0 15 CMP DWORD PTR SS:[EBP-10],15 ; SS:[EBP-10]的值和15h比较,控制循环次数
005870F1 ^ 75 98 JNZ SHORT etdirloc.0058708B ; 循环结束~~
005870F3 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
005870F6 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C]
005870F9 E8 CAD8F8FF CALL etdirloc.005149C8
005870FE 33C0 XOR EAX,EAX
00587100 5A POP EDX
--------------------------------------------------------------------------------
【经验总结】
机器码的算法小结:
逐位取机器码的ASCII码除以12,余数与相应的循环次数逻辑异或运算,结果转换为十进制连接起来就是机器码。
下面总结下上面的关键循环:
分两种情况:
一,当用户名位数小于机器码位数时:
当循环次数不大于用户名位数时,是机器码ASCII码与用户名ASCII码异或运算后的值加上循环次数,然后除以24得到的余
数在内存表中对应的值,
当循环次数大于用户名位数小于机器码位数时,是机器码ASCII码与用户名ASCII码异或运算后的值从1开始加起,得到的值
除以24得到的余数在内存表中对应的值
当循环次数大于机器码位数是,是机器码最后一位ASCII码减去循环次数,加上机器码位数后的值,与用户名第二位逻辑异
或运算,的到的值加上2,然后除以24得到的余数在内存表中对应的值。
把上面得到的值连接起来就是真码~
二。当用户名位数大于机器码位数时:
当循环次数不大于用机器码数时,是机器码ASCII码与用户名ASCII码异或运算后的值加上循环次数,然后除以24得到的余数
在内存表中对应的值,
当循环次数大于机器码位数是,是机器码最后一位ASCII码减去循环次数,加上机器码位数后的值,与用户名第二位逻辑异
或运算,的到的值加上2,然后除以24得到的余数在内存表中对应的值。
把上面得到的值连接起来就是真码~
那张内存表见附件。
偶的语言表达能力有限,看不太懂的朋友请自己跟下啊~~
--------------------------------------------------------------------------------
【版权声明】: 菜鸟初学算法, 失误之处敬请诸位大侠赐教,转载请注明作者并保持文章的完整, 谢谢! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|