【破解软件】Textanz 1.4.0
【下载地址】http://www.newhua.com/soft/50797.htm
【运行环境】Win9x/Me/NT/2000/XP/2003
【软件类别】国外软件/共享版/编辑软件
【保护方式】UPX壳+注册码
【作者声明】初学Crack,只是感兴趣,消遣业余时间,错误之处敬请诸位前辈不吝赐教。
【调试工具】OllyDBD、PEiD
【软件信息】是一款统计词语使用频率的软件。可以扫描文本文件,统计单词、词组在文章中的使用频率。可以减少大量重复性工作,有多种
统计方式,界面友好。
一、破解过程
PEiD查壳:UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
脱壳过程略。
字串参考:"Code is valid. Thank you for registration !" 地址=00517109
在005170B0处下断,F9 点击help --> Registration 断下
005170B0 /$ 55 PUSH EBP
005170B1 |. 8BEC MOV EBP,ESP
005170B3 |. 6A 00 PUSH 0
005170B5 |. 6A 00 PUSH 0
005170B7 |. 6A 00 PUSH 0
005170B9 |. 53 PUSH EBX
005170BA |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
005170BD |. 8D5D FC LEA EBX,DWORD PTR SS:[EBP-4]
005170C0 |. 33C0 XOR EAX,EAX
005170C2 |. 55 PUSH EBP
005170C3 |. 68 61715100 PUSH tk.00517161
005170C8 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
005170CB |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
005170CE |> 8D55 F8 /LEA EDX,DWORD PTR SS:[EBP-8]
005170D1 |. 8B03 |MOV EAX,DWORD PTR DS:[EBX]
005170D3 |. 8B40 64 |MOV EAX,DWORD PTR DS:[EAX+64]
005170D6 |. E8 F9C0FFFF |CALL tk.005131D4 ; 跳出注册码输入框,输入假码:
005170DB |. 84C0 |TEST AL,AL 1234567890223456
005170DD |. 74 67 |JE SHORT tk.00517146
005170DF |. 55 |PUSH EBP
005170E0 |. E8 43FFFFFF |CALL tk.00517028 ; 假码写入Textanz.ini文件
005170E5 |. 59 |POP ECX
005170E6 |. 33D2 |XOR EDX,EDX
005170E8 |. 8B03 |MOV EAX,DWORD PTR DS:[EBX]
005170EA |. E8 E9000000 |CALL tk.005171D8 ; 关键Call F7进入
005170EF |. 8B03 |MOV EAX,DWORD PTR DS:[EBX]
005170F1 |. 8A40 60 |MOV AL,BYTE PTR DS:[EAX+60]
005170F4 | 2C 01 |SUB AL,1
005170F6 | 72 06 |JB SHORT tk.005170FE ; 跳注册成功
005170F8 |. FEC8 |DEC AL
005170FA |. 74 19 |JE SHORT tk.00517115
005170FC |. EB 26 |JMP SHORT tk.00517124
005170FE |> 6A 00 |PUSH 0 ; Case 0 of switch 005170F4
00517100 |. 66:8B0D 70715>|MOV CX,WORD PTR DS:[517170]
00517107 |. B2 02 |MOV DL,2
00517109 |. B8 7C715100 |MOV EAX,tk.0051717C ; "Code is valid. Thank you forregistration !"
0051710E |. E8 5580F7FF |CALL tk.0048F168
00517113 |. EB 31 |JMP SHORT tk.00517146
00517115 |> 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C] ; Case 2 of switch 005170F4
00517118 |. BA B0715100 |MOV EDX,tk.005171B0 ; ASCII "Code expired"
0051711D |. E8 8ACCEEFF |CALL tk.00403DAC
00517122 |. EB 0D |JMP SHORT tk.00517131
00517124 |> 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C] ; Default case of switch 005170F4
00517127 |. BA C8715100 |MOV EDX,tk.005171C8 ; ASCII "Invalid code"
0051712C |. E8 7BCCEEFF |CALL tk.00403DAC
00517131 |> 6A 00 |PUSH 0
00517133 |. 66:8B0D 70715>|MOV CX,WORD PTR DS:[517170]
0051713A |. 33D2 |XOR EDX,EDX
0051713C |. 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C]
0051713F |. E8 2480F7FF |CALL tk.0048F168
00517144 |.^ EB 88 \JMP SHORT tk.005170CE
00517146 |> 33C0 XOR EAX,EAX
00517148 |. 5A POP EDX
00517149 |. 59 POP ECX
0051714A |. 59 POP ECX
0051714B |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0051714E |. 68 68715100 PUSH tk.00517168
00517153 |> 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
00517156 |. BA 02000000 MOV EDX,2
0051715B |. E8 D8CBEEFF CALL tk.00403D38
00517160 \. C3 RETN
005170EA 关键Call F7进入
005171D8 /$ 53 PUSH EBX
005171D9 |. 56 PUSH ESI
005171DA |. 8BDA MOV EBX,EDX
005171DC |. 8BF0 MOV ESI,EAX
005171DE |. B2 01 MOV DL,1
005171E0 |. 8B46 50 MOV EAX,DWORD PTR DS:[ESI+50]
005171E3 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
005171E5 |. FF51 30 CALL NEAR DWORD PTR DS:[ECX+30] ; F7进入
005171E8 |. 807E 60 00 CMP BYTE PTR DS:[ESI+60],0
005171EC |. 0F95C0 SETNE AL ; Al=0 注册失败
005171EF |. 84D8 TEST AL,BL
005171F1 |. 74 0D JE SHORT tk.00517200
005171E5 处F7来到下面:
0050E4A8 . 53 PUSH EBX
0050E4A9 . 56 PUSH ESI
0050E4AA . 83C4 DC ADD ESP,-24
0050E4AD . 881424 MOV BYTE PTR SS:[ESP],DL
0050E4B0 . 8BF0 MOV ESI,EAX
0050E4B2 . C64424 01 00 MOV BYTE PTR SS:[ESP+1],0
0050E4B7 . 8D5424 0A LEA EDX,DWORD PTR SS:[ESP+A]
0050E4BB . 8BC6 MOV EAX,ESI
0050E4BD . 66:BB EEFF MOV BX,0FFEE
0050E4C1 . E8 2A4DEFFF CALL tk.004031F0
0050E4C6 . 8D5424 02 LEA EDX,DWORD PTR SS:[ESP+2]
0050E4CA . 8BC6 MOV EAX,ESI
0050E4CC . 66:BB EFFF MOV BX,0FFEF
0050E4D0 . E8 1B4DEFFF CALL tk.004031F0 ; 检查假码
0050E4D5 . 8BC6 MOV EAX,ESI
0050E4D7 . 66:BB EDFF MOV BX,0FFED
0050E4DB . E8 104DEFFF CALL tk.004031F0
0050E4E0 . 8D5424 0A LEA EDX,DWORD PTR SS:[ESP+A] ; [ESP+A]4个常数地址(n1 n2 n3 n4)
0050E4E4 . B9 10000000 MOV ECX,10
0050E4E9 . E8 D2FAFFFF CALL tk.0050DFC0
0050E4EE . 8D5424 02 LEA EDX,DWORD PTR SS:[ESP+2] ; [ESP+2]假码地址
0050E4F2 . 8D4424 0A LEA EAX,DWORD PTR SS:[ESP+A]
0050E4F6 . E8 A1010000 CALL tk.0050E69C ; 运算假码
0050E4FB . 84C0 TEST AL,AL ; AL=0 注册码错误
0050E4FD . 75 07 JNZ SHORT tk.0050E506 ; AL=01 注册码正确跳
0050E4FF . C64424 01 01 MOV BYTE PTR SS:[ESP+1],1
0050E504 . EB 25 JMP SHORT tk.0050E52B
-------------------中间省略--------------------------
0050E544 . 83C4 24 ADD ESP,24
0050E547 . 5E POP ESI
0050E548 . 5B POP EBX
0050E549 . C3 RETN ; 返回到 005171E8
检查假码:
0050E4D0 处 CALL tk.004031F0 F7 --->
0050E130 处 CALL NEAR DWORD PTR DS:[EBX+40] F7 --->
00516D24 处 E8 F369FFFF CALL tk.0050D71C F7到下面:
0050D71C /$ 55 PUSH EBP
0050D71D |. 8BEC MOV EBP,ESP
0050D71F |. 83C4 E0 ADD ESP,-20
0050D722 |. 53 PUSH EBX
-------------------中间省略--------------------------
0050D73E |. 68 16D85000 PUSH tk.0050D816
0050D743 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0050D746 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0050D749 |. C645 F7 00 MOV BYTE PTR SS:[EBP-9],0
0050D74D |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
0050D750 |. E8 BF65EFFF CALL tk.00403D14
0050D755 |. 8BC7 MOV EAX,EDI
0050D757 |. E8 3868EFFF CALL tk.00403F94 ; 取得假码位数
0050D75C |. 8BD8 MOV EBX,EAX
0050D75E |. 85DB TEST EBX,EBX
0050D760 |. 7E 35 JLE SHORT tk.0050D797
0050D762 |. BE 01000000 MOV ESI,1
0050D767 |> 8A4437 FF /MOV AL,BYTE PTR DS:[EDI+ESI-1] ; 逐位取假码
0050D76B |. E8 0453EFFF |CALL tk.00402A74
0050D770 |. 04 D0 |ADD AL,0D0
0050D772 |. 2C 0A |SUB AL,0A
0050D774 |. 72 06 |JB SHORT tk.0050D77C ; [0..9]在此跳下保留
0050D776 |. 04 F9 |ADD AL,0F9
0050D778 |. 2C 06 |SUB AL,6
0050D77A |. 73 17 |JNB SHORT tk.0050D793 ; [A..F]不跳保留,其余字符跳下剔除
0050D77C |> 8D45 E8 |LEA EAX,DWORD PTR SS:[EBP-18]
0050D77F |. 8A5437 FF |MOV DL,BYTE PTR DS:[EDI+ESI-1] ; [EDI+ESI-1]假码地址
0050D783 |. E8 3467EFFF |CALL tk.00403EBC
0050D788 |. 8B55 E8 |MOV EDX,DWORD PTR SS:[EBP-18]
0050D78B |. 8D45 EC |LEA EAX,DWORD PTR SS:[EBP-14]
0050D78E |. E8 0968EFFF |CALL tk.00403F9C
0050D793 |> 46 |INC ESI
0050D794 |. 4B |DEC EBX ; EBX 计数器
0050D795 |.^ 75 D0 \JNZ SHORT tk.0050D767
0050D797 |> 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; [EBP-14]保留的假码
0050D79A |. E8 F567EFFF CALL tk.00403F94 ; EAX=保留的假码位数
0050D79F |. D1F8 SAR EAX,1 ; 算术右移1位
0050D7A1 |. 79 03 JNS SHORT tk.0050D7A6
0050D7A3 |. 83D0 00 ADC EAX,0
0050D7A6 |> 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8] ; 比较位数是否=8
0050D7A9 |. 75 50 JNZ SHORT tk.0050D7FB
0050D7AB |. 8B5D F8 MOV EBX,DWORD PTR SS:[EBP-8] ; [EBP-8]=8
0050D7AE |. 4B DEC EBX
0050D7AF |. 85DB TEST EBX,EBX
0050D7B1 |. 7C 44 JL SHORT tk.0050D7F7
0050D7B3 |. 43 INC EBX
0050D7B4 |. 33F6 XOR ESI,ESI
0050D7B6 |. 8B7D FC MOV EDI,DWORD PTR SS:[EBP-4]
0050D7B9 |> 8D45 E0 /LEA EAX,DWORD PTR SS:[EBP-20]
0050D7BC |. 50 |PUSH EAX
0050D7BD |. 8BD6 |MOV EDX,ESI
0050D7BF |. 03D2 |ADD EDX,EDX
0050D7C1 |. 42 |INC EDX
0050D7C2 |. B9 02000000 |MOV ECX,2
0050D7C7 |. 8B45 EC |MOV EAX,DWORD PTR SS:[EBP-14] ; [EBP-14]保留的假码
0050D7CA |. E8 CD69EFFF |CALL tk.0040419C
0050D7CF |. 8B4D E0 |MOV ECX,DWORD PTR SS:[EBP-20] ; [EBP-20]=24($)
0050D7D2 |. 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C]
0050D7D5 |. BA 30D85000 |MOV EDX,tk.0050D830
0050D7DA |. E8 0168EFFF |CALL tk.00403FE0
0050D7DF |. 8B45 E4 |MOV EAX,DWORD PTR SS:[EBP-1C]
0050D7E2 |. 8D55 F0 |LEA EDX,DWORD PTR SS:[EBP-10]
0050D7E5 |. E8 F654EFFF |CALL tk.00402CE0 ; 2位假码并成1位
0050D7EA |. 8807 |MOV BYTE PTR DS:[EDI],AL ; 保存
0050D7EC |. 837D F0 00 |CMP DWORD PTR SS:[EBP-10],0
0050D7F0 |. 75 09 |JNZ SHORT tk.0050D7FB
0050D7F2 |. 46 |INC ESI
0050D7F3 |. 47 |INC EDI
0050D7F4 |. 4B |DEC EBX
0050D7F5 |.^ 75 C2 \JNZ SHORT tk.0050D7B9
0050D7F7 |> C645 F7 01 MOV BYTE PTR SS:[EBP-9],1
0050D7FB |> 33C0 XOR EAX,EAX
0050D7FD |. 5A POP EDX
0050D7FE |. 59 POP ECX
0050D7FF |. 59 POP ECX
0050D800 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0050D803 |. 68 1DD85000 PUSH tk.0050D81D
0050D808 |> 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
0050D80B |. BA 04000000 MOV EDX,4
0050D810 |. E8 2365EFFF CALL tk.00403D38
0050D815 \. C3 RETN
0050D816 .- E9 595FEFFF JMP tk.00403774
0050D81B .^ EB EB JMP SHORT tk.0050D808
0050D81D . 8A45 F7 MOV AL,BYTE PTR SS:[EBP-9]
0050D820 . 5F POP EDI
0050D821 . 5E POP ESI
0050D822 . 5B POP EBX
0050D823 . 8BE5 MOV ESP,EBP
0050D825 . 5D POP EBP
0050D826 . C3 RETN ; 返回到 00516D29
这段是将假码中的非法字符剔除并由16压缩成8位,4位一组记为:s1、s2。
0050E4F6 处 CALL tk.0050E69C 来到下面:
0050E69C /$ 83C4 F8 ADD ESP,-8
0050E69F |. 8B0A MOV ECX,DWORD PTR DS:[EDX]
0050E6A1 |. 890C24 MOV DWORD PTR SS:[ESP],ECX
0050E6A4 |. 8B4A 04 MOV ECX,DWORD PTR DS:[EDX+4]
0050E6A7 |. 894C24 04 MOV DWORD PTR SS:[ESP+4],ECX
0050E6AB |. 8BD4 MOV EDX,ESP
0050E6AD |. 33C9 XOR ECX,ECX
0050E6AF |. E8 C8F7FFFF CALL tk.0050DE7C ; 算法Call
0050E6B4 |. 66:813C24 693>CMP WORD PTR SS:[ESP],3C69 ; [ESP]=3C69注册成功
0050E6BA |. 0F94C0 SETE AL
0050E6BD |. 59 POP ECX
0050E6BE |. 5A POP EDX
0050E6BF \. C3 RETN ; 返回到 0050E4FB
0050E6AF处 CALL tk.0050DE7C(算法Call) F7进入
0050DE7C /$ 53 PUSH EBX
0050DE7D |. 56 PUSH ESI
0050DE7E |. 57 PUSH EDI
0050DE7F |. 83C4 E8 ADD ESP,-18
0050DE82 |. 884C24 08 MOV BYTE PTR SS:[ESP+8],CL
0050DE86 |. 895424 04 MOV DWORD PTR SS:[ESP+4],EDX
0050DE8A |. 890424 MOV DWORD PTR SS:[ESP],EAX
0050DE8D |. 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
0050DE91 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
0050DE93 |. 894424 0C MOV DWORD PTR SS:[ESP+C],EAX
0050DE97 |. 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
0050DE9B |. 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4]
0050DE9E |. 894424 10 MOV DWORD PTR SS:[ESP+10],EAX
0050DEA2 |. C74424 14 040>MOV DWORD PTR SS:[ESP+14],4
0050DEAA |. BE 549B5300 MOV ESI,tk.00539B54
0050DEAF |> 8B5424 0C /MOV EDX,DWORD PTR SS:[ESP+C] ; [ESP+C]=s1、06667B5C、A53ECB4C、FABF3DD5
0050DEB3 |. 33C0 |XOR EAX,EAX
0050DEB5 |. 8A4424 08 |MOV AL,BYTE PTR SS:[ESP+8]
0050DEB9 |. 8BD8 |MOV EBX,EAX
0050DEBB |. 03DB |ADD EBX,EBX
0050DEBD |. 8D1C5B |LEA EBX,DWORD PTR DS:[EBX+EBX*2]
0050DEC0 |. 8B04DE |MOV EAX,DWORD PTR DS:[ESI+EBX*8] ; [ESI+EBX*8]=0、2、1、3
0050DEC3 |. 8B0C24 |MOV ECX,DWORD PTR SS:[ESP]
0050DEC6 |. 8B0C81 |MOV ECX,DWORD PTR DS:[ECX+EAX*4] ; [ECX+EAX*4]=n1、n3、n2、n4
0050DEC9 |. 8B44DE 04 |MOV EAX,DWORD PTR DS:[ESI+EBX*8+4] ; [ESI+EBX*8+4]=3、1、0、2
0050DECD |. 8B3C24 |MOV EDI,DWORD PTR SS:[ESP]
0050DED0 |. 8B0487 |MOV EAX,DWORD PTR DS:[EDI+EAX*4] ; [EDI+EAX*4]=n4、n2、n1、n3
0050DED3 |. 8B5CDE 08 |MOV EBX,DWORD PTR DS:[ESI+EBX*8+8] ; [ESI+EBX*8+8]=1、3、2、0
0050DED7 |. 8B3C24 |MOV EDI,DWORD PTR SS:[ESP]
0050DEDA |. 8B1C9F |MOV EBX,DWORD PTR DS:[EDI+EBX*4] ; [EDI+EBX*4]=n2、n4、n3、n1
0050DEDD |. 03D3 |ADD EDX,EBX ; EDX=s1+n3=620C08BD
0050DEDF |. 03DA |ADD EBX,EDX ; EBX=n3+620C08BD=4BC1DD68
0050DEE1 |. 8BFA |MOV EDI,EDX
0050DEE3 |. C1EF 07 |SHR EDI,7 ; EDI=620C08BD shr 7=C41811
0050DEE6 |. 33D7 |XOR EDX,EDI ; EDX=620C08BD xor C41811=62C810AC
0050DEE8 |. 03CA |ADD ECX,EDX ; ECX=n1+62C810AC=68378A7F
0050DEEA |. 03D1 |ADD EDX,ECX
0050DEEC |. 8BF9 |MOV EDI,ECX
0050DEEE |. C1E7 0D |SHL EDI,0D
0050DEF1 |. 33CF |XOR ECX,EDI
0050DEF3 |. 03C1 |ADD EAX,ECX
0050DEF5 |. 03C8 |ADD ECX,EAX
0050DEF7 |. 8BF8 |MOV EDI,EAX
0050DEF9 |. C1EF 11 |SHR EDI,11
0050DEFC |. 33C7 |XOR EAX,EDI
0050DEFE |. 03D8 |ADD EBX,EAX
0050DF00 |. 03C3 |ADD EAX,EBX
0050DF02 |. 8BFB |MOV EDI,EBX
0050DF04 |. C1E7 09 |SHL EDI,9
0050DF07 |. 33DF |XOR EBX,EDI
0050DF09 |. 03D3 |ADD EDX,EBX
0050DF0B |. 03DA |ADD EBX,EDX
0050DF0D |. 8BFA |MOV EDI,EDX
0050DF0F |. C1EF 03 |SHR EDI,3
0050DF12 |. 33D7 |XOR EDX,EDI
0050DF14 |. 03CA |ADD ECX,EDX
0050DF16 |. 8BD1 |MOV EDX,ECX
0050DF18 |. C1E2 07 |SHL EDX,7
0050DF1B |. 33CA |XOR ECX,EDX
0050DF1D |. 03C1 |ADD EAX,ECX
0050DF1F |. 8BD3 |MOV EDX,EBX
0050DF21 |. C1EA 0F |SHR EDX,0F
0050DF24 |. 33C2 |XOR EAX,EDX
0050DF26 |. 03D8 |ADD EBX,EAX
0050DF28 |. 8BC3 |MOV EAX,EBX
0050DF2A |. C1E0 0B |SHL EAX,0B
0050DF2D |. 33D8 |XOR EBX,EAX
0050DF2F |. 8B4424 10 |MOV EAX,DWORD PTR SS:[ESP+10] ; [ESP+10]=s2、s1、06667B5C、A53ECB4C
0050DF33 |. 33C3 |XOR EAX,EBX ; EBX=505259CC、DD68FF5E、FCD94689、3FF02E52
0050DF35 |. 8B5424 0C |MOV EDX,DWORD PTR SS:[ESP+C] ; [ESP+C]=s1、06667B5C、A53ECB4C、FABF3DD5
0050DF39 |. 895424 10 |MOV DWORD PTR SS:[ESP+10],EDX
0050DF3D |. 894424 0C |MOV DWORD PTR SS:[ESP+C],EAX ; EAX=06667B5C、A53ECB4C、FABF3DD5、9ACEE51E
0050DF41 |. 83C6 0C |ADD ESI,0C
0050DF44 |. FF4C24 14 |DEC DWORD PTR SS:[ESP+14] ; [ESP+14]=4 (循环次数)
0050DF48 |.^ 0F85 61FFFFFF \JNZ tk.0050DEAF
0050DF4E |. 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] ; [ESP+4]=假码
0050DF52 |. 8B5424 10 MOV EDX,DWORD PTR SS:[ESP+10] ; [ESP+10]=FABF3DD5
0050DF56 |. 8910 MOV DWORD PTR DS:[EAX],EDX ; 替换假码前4位
0050DF58 |. 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
0050DF5C |. 8B5424 0C MOV EDX,DWORD PTR SS:[ESP+C] ; [ESP+C]=9ACEE51E
0050DF60 |. 8950 04 MOV DWORD PTR DS:[EAX+4],EDX ; 替换假码后4位
0050DF63 |. 83C4 18 ADD ESP,18
0050DF66 |. 5F POP EDI
0050DF67 |. 5E POP ESI
0050DF68 |. 5B POP EBX
0050DF69 \. C3 RETN ; 返回到 0050E6B4 0050E5F3
算法小结:
1.注册码要求16位,范围是(0 、1 ……E、F)16进制数的基本元素。
2.将16位注册码压缩为8位。
若输入注册码:1234567A9F223456 进行如下压缩。
内存中存储的次序:
(0x 31 32 33 34 35 36 37 41 39 46 32 32 33 34 35 36)
变成 (0x 12 34 56 7A 9F 22 34 56)
3.压缩后注册码分成2组:
s1=7A563412 s2=5634229F
4.s1、s2与4个常数(n1=056F79E2 n2=E9B5D4AB n3=9F6E0C3B n4=C6DE0DCC)
进行4轮循环运算。
5.运算结果的第3、4位如果等于3C69,则注册成功。
6.一组通过验证的注册码:75457544B77FDE8E
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)