【破解作者】 kyc[dfcg][czg]
【作者邮箱】 muyang008@163.com
【使用工具】 FLYold1.10c
【破解平台】 win2003
【软件名称】 冰盾系统安全专家 V3.3
软件大小: 2582 KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 系统安全
应用平台: Win9x/NT/2000/XP
软件介绍:嵌入式内核技术全面替代硬盘保护卡领跑系统安全软件。本软件可以极其有效的防止病毒、木马及其他恶意代码或人为
对系统造成的不同程度的危害,真正实现注册表内容防删除、防篡改,文件防删、硬盘防格式化及其它众多系统安全功能,
如:文件加密、隐藏、黑客软件扫描、病毒预警、系统敏感功能限制等40余项系统底层功能,可全面深层的保护您的计算机免受侵害!
下载地址:http://www.skycn.com/soft/2992.html
【加壳方式】 无壳
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】vc编写保护方式BASE64加密,但注册码以明文出现,如果觉得简单高手就略过吧。 00409A32 |. 68 FFF24200 push Registry.0042F2FF ; SE handler installation
00409A37 |. 64:A1 00000000 mov eax,dword ptr fs:[0]
00409A3D |. 50 push eax ; 因为使用了 BASE64加密算法利用PEID显示的地址下断
00409A3E |. 64:8925 00000000 mov dword ptr fs:[0],esp
00409A45 |. 83EC 30 sub esp,30
00409A48 |. 56 push esi
00409A49 |. 8BF1 mov esi,ecx
00409A4B |. C74424 10 00000000 mov dword ptr ss:[esp+10],0
00409A53 |. A1 F0CB4300 mov eax,dword ptr ds:[43CBF0]
00409A58 |. C74424 3C 01000000 mov dword ptr ss:[esp+3C],1
00409A60 |. 894424 04 mov dword ptr ss:[esp+4],eax
00409A64 |. 8D4C24 48 lea ecx,dword ptr ss:[esp+48] ; ecx=机器码
00409A68 |. C64424 3C 02 mov byte ptr ss:[esp+3C],2
00409A6D |. 51 push ecx
00409A6E |. 8D4C24 10 lea ecx,dword ptr ss:[esp+10]
00409A72 |. E8 02CB0100 call Registry.00426579
00409A77 |. 8D5424 0C lea edx,dword ptr ss:[esp+C] ; eDx=机器码
00409A7B |. 8D4C24 18 lea ecx,dword ptr ss:[esp+18]
00409A7F |. 52 push edx ; eDx=机器码
00409A80 |. 6A 01 push 1
00409A82 |. 6A 00 push 0
00409A84 |. C64424 48 03 mov byte ptr ss:[esp+48],3
00409A89 |. E8 E298FFFF call Registry.00403370 ; f7 base64加密
*******************************************************************************************************
00403370 /$ 8B4424 0C mov eax,dword ptr ss:[esp+C]
00403374 |. 56 push esi
00403375 |. 8BF1 mov esi,ecx
00403377 |. 8B5424 0C mov edx,dword ptr ss:[esp+C]
0040337B |. C706 58174300 mov dword ptr ds:[esi],Registry.00431758
00403381 |. 8B00 mov eax,dword ptr ds:[eax] ; 机器码
00403383 |. 8B48 F8 mov ecx,dword ptr ds:[eax-8] ; 机器码长度
00403386 |. 51 push ecx
00403387 |. 50 push eax
00403388 |. 8B4424 10 mov eax,dword ptr ss:[esp+10]
0040338C |. 52 push edx
0040338D |. 50 push eax
0040338E |. 8BCE mov ecx,esi
00403390 |. E8 6B000000 call Registry.00403400 ******f7 base64加密
//////////////////////////////////////////////////////////////////////////////////////////////////////// 00403400 /$ 64:A1 00000000 mov eax,dword ptr fs:[0]
00403406 |. 6A FF push -1
00403408 |. 68 A6EC4200 push Registry.0042ECA6
0040340D |. 50 push eax
0040340E |. 8B4424 14 mov eax,dword ptr ss:[esp+14]
00403412 |. 64:8925 00000000 mov dword ptr fs:[0],esp
00403419 |. 53 push ebx
0040341A |. 56 push esi
0040341B |. 8BF1 mov esi,ecx
0040341D |. 57 push edi
0040341E |. 85C0 test eax,eax
00403420 |. 8D7E 08 lea edi,dword ptr ds:[esi+8]
00403423 |. 8D5E 0C lea ebx,dword ptr ds:[esi+C]
00403426 |. C707 00000000 mov dword ptr ds:[edi],0
0040342C |. C703 00000000 mov dword ptr ds:[ebx],0
00403432 |. 75 23 jnz short Registry.00403457
00403434 |. 6A 04 push 4
00403436 |. E8 0A310200 call Registry.00426545
0040343B |. 83C4 04 add esp,4
0040343E |. 894424 20 mov dword ptr ss:[esp+20],eax
00403442 |. 85C0 test eax,eax
00403444 |. C74424 14 00000000 mov dword ptr ss:[esp+14],0
0040344C |. 74 31 je short Registry.0040347F
0040344E |. 8BC8 mov ecx,eax
00403450 |. E8 1BFCFFFF call Registry.00403070
00403455 |. EB 2A jmp short Registry.00403481
00403457 |> 83F8 01 cmp eax,1
0040345A |. 75 30 jnz short Registry.0040348C
0040345C |. 6A 60 push 60
0040345E |. E8 E2300200 call Registry.00426545
00403463 |. 83C4 04 add esp,4
00403466 |. 894424 20 mov dword ptr ss:[esp+20],eax
0040346A |. 85C0 test eax,eax
0040346C |. C74424 14 01000000 mov dword ptr ss:[esp+14],1
00403474 |. 74 09 je short Registry.0040347F
00403476 |. 8BC8 mov ecx,eax
00403478 |. E8 C3F2FFFF call Registry.00402740 ; BASE64加密
///////////////////////////////////////////////////////////////////////////////////////
00402740 /$ 6A FF push -1
00402742 |. 68 63EC4200 push Registry.0042EC63 ; SE handler installation
00402747 |. 64:A1 00000000 mov eax,dword ptr fs:[0]
0040274D |. 50 push eax
0040274E |. 64:8925 00000000 mov dword ptr fs:[0],esp
00402755 |. 83EC 54 sub esp,54
00402758 |. 53 push ebx
00402759 |. 55 push ebp
0040275A |. 56 push esi
0040275B |. 8BE9 mov ebp,ecx
0040275D |. 57 push edi
0040275E |. 896C24 1C mov dword ptr ss:[esp+1C],ebp
00402762 |. E8 09090000 call Registry.00403070
00402767 |. 33C0 xor eax,eax
00402769 |. C745 44 44174300 mov dword ptr ss:[ebp+44],Registry.00431744 ; ASCII "alB"
00402770 |. 894424 6C mov dword ptr ss:[esp+6C],eax
00402774 |. 8945 48 mov dword ptr ss:[ebp+48],eax
00402777 |. C745 4C 11000000 mov dword ptr ss:[ebp+4C],11
0040277E |. 8945 50 mov dword ptr ss:[ebp+50],eax
00402781 |. 8945 54 mov dword ptr ss:[ebp+54],eax
00402784 |. 8945 58 mov dword ptr ss:[ebp+58],eax
00402787 |. C745 5C 0A000000 mov dword ptr ss:[ebp+5C],0A
0040278E |. B9 10000000 mov ecx,10
00402793 |. BE 30C14300 mov esi,Registry.0043C130 ; ASCII "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
00402798 |. 8D7C24 20 lea edi,dword ptr ss:[esp+20]
0040279C |. C745 00 3C174300 mov dword ptr ss:[ebp],Registry.0043173C
004027A3 |. F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[esi]
004027A5 |. 894424 14 mov dword ptr ss:[esp+14],eax
004027A9 |. 8BC5 mov eax,ebp
004027AB |. 8D4C24 20 lea ecx,dword ptr ss:[esp+20]
004027AF |. C64424 6C 01 mov byte ptr ss:[esp+6C],1
004027B4 |. 2BC1 sub eax,ecx
004027B6 |. 83C0 04 add eax,4
004027B9 |. A4 movs byte ptr es:[edi],byte ptr ds:[esi]
004027BA |. 894424 18 mov dword ptr ss:[esp+18],eax
004027BE |> 8B5424 14 /mov edx,dword ptr ss:[esp+14]
004027C2 |. 8A4C14 20 |mov cl,byte ptr ss:[esp+edx+20]
004027C6 |. 8D4414 20 |lea eax,dword ptr ss:[esp+edx+20]
004027CA |. 8B5424 18 |mov edx,dword ptr ss:[esp+18]
004027CE |. 884C24 10 |mov byte ptr ss:[esp+10],cl
004027D2 |. 880C02 |mov byte ptr ds:[edx+eax],cl
004027D5 |. 8B4424 10 |mov eax,dword ptr ss:[esp+10]
004027D9 |. 8B75 4C |mov esi,dword ptr ss:[ebp+4C]
004027DC |. 25 FF000000 |and eax,0FF
004027E1 |. C1E8 04 |shr eax,4
004027E4 |. 33D2 |xor edx,edx
004027E6 |. 8B4D 48 |mov ecx,dword ptr ss:[ebp+48]
004027E9 |. F7F6 |div esi
004027EB |. 85C9 |test ecx,ecx
004027ED |. 8BDA |mov ebx,edx
004027EF |. 74 26 |je short Registry.00402817
004027F1 |. 8B0499 |mov eax,dword ptr ds:[ecx+ebx*4]
004027F4 |. 85C0 |test eax,eax
004027F6 |. 74 1B |je short Registry.00402813
004027F8 |> 8A50 08 |/mov dl,byte ptr ds:[eax+8]
004027FB |. 3A5424 10 ||cmp dl,byte ptr ss:[esp+10]
004027FF |. 74 08 ||je short Registry.00402809
00402801 |. 8B00 ||mov eax,dword ptr ds:[eax]
00402803 |. 85C0 ||test eax,eax
00402805 |.^ 75 F1 |\jnz short Registry.004027F8
00402807 |. EB 0A |jmp short Registry.00402813
00402809 |> 85C0 |test eax,eax
0040280B |. 8BF8 |mov edi,eax
0040280D |. 0F85 98000000 |jnz Registry.004028AB
00402813 |> 85C9 |test ecx,ecx
00402815 |. 75 2C |jnz short Registry.00402843
00402817 |> 8D3CB5 00000000 |lea edi,dword ptr ds:[esi*4]
0040281E |. 57 |push edi
0040281F |. E8 213D0200 |call Registry.00426545
00402824 |. 8BD0 |mov edx,eax
00402826 |. 8BCF |mov ecx,edi
00402828 |. 8955 48 |mov dword ptr ss:[ebp+48],edx
0040282B |. 8BFA |mov edi,edx
0040282D |. 8BD1 |mov edx,ecx
0040282F |. 33C0 |xor eax,eax
00402831 |. C1E9 02 |shr ecx,2
00402834 |. F3:AB |rep stos dword ptr es:[edi]
00402836 |. 8BCA |mov ecx,edx
00402838 |. 83C4 04 |add esp,4
0040283B |. 83E1 03 |and ecx,3
0040283E |. F3:AA |rep stos byte ptr es:[edi]
00402840 |. 8975 4C |mov dword ptr ss:[ebp+4C],esi
00402843 |> 8B45 54 |mov eax,dword ptr ss:[ebp+54]
00402846 |. 85C0 |test eax,eax
00402848 |. 75 30 |jnz short Registry.0040287A
0040284A |. 8B45 5C |mov eax,dword ptr ss:[ebp+5C]
0040284D |. 6A 0C |push 0C
0040284F |. 8D4D 58 |lea ecx,dword ptr ss:[ebp+58]
00402852 |. 50 |push eax
00402853 |. 51 |push ecx
00402854 |. E8 90000200 |call Registry.004228E9
00402859 |. 8B4D 5C |mov ecx,dword ptr ss:[ebp+5C]
0040285C |. 83C0 04 |add eax,4
0040285F |. 8D1449 |lea edx,dword ptr ds:[ecx+ecx*2]
00402862 |. 49 |dec ecx
00402863 |. 85C9 |test ecx,ecx
00402865 |. 8D4490 F4 |lea eax,dword ptr ds:[eax+edx*4-C]
00402869 |. 7C 0F |jl short Registry.0040287A
0040286B |. 41 |inc ecx
0040286C |> 8B55 54 |/mov edx,dword ptr ss:[ebp+54]
0040286F |. 8910 ||mov dword ptr ds:[eax],edx
00402871 |. 8945 54 ||mov dword ptr ss:[ebp+54],eax
00402874 |. 83E8 0C ||sub eax,0C
00402877 |. 49 ||dec ecx
00402878 |.^ 75 F2 |\jnz short Registry.0040286C
0040287A |> 8B45 54 |mov eax,dword ptr ss:[ebp+54]
0040287D |. 8A5424 10 |mov dl,byte ptr ss:[esp+10]
00402881 |. 8BF8 |mov edi,eax
00402883 |. 8B08 |mov ecx,dword ptr ds:[eax]
00402885 |. 894D 54 |mov dword ptr ss:[ebp+54],ecx
00402888 |. 8B4D 50 |mov ecx,dword ptr ss:[ebp+50]
0040288B |. 41 |inc ecx
0040288C |. 894D 50 |mov dword ptr ss:[ebp+50],ecx
0040288F |. C640 08 00 |mov byte ptr ds:[eax+8],0
00402893 |. C640 09 00 |mov byte ptr ds:[eax+9],0
00402897 |. 8958 04 |mov dword ptr ds:[eax+4],ebx
0040289A |. 8850 08 |mov byte ptr ds:[eax+8],dl
0040289D |. 8B4D 48 |mov ecx,dword ptr ss:[ebp+48]
004028A0 |. 8B1499 |mov edx,dword ptr ds:[ecx+ebx*4]
004028A3 |. 8910 |mov dword ptr ds:[eax],edx
004028A5 |. 8B4D 48 |mov ecx,dword ptr ss:[ebp+48]
004028A8 |. 890499 |mov dword ptr ds:[ecx+ebx*4],eax
004028AB |> 8B4424 14 |mov eax,dword ptr ss:[esp+14]
004028AF |. 8847 09 |mov byte ptr ds:[edi+9],al
004028B2 |. 40 |inc eax
004028B3 |. 83F8 40 |cmp eax,40
004028B6 |. 894424 14 |mov dword ptr ss:[esp+14],eax
004028BA |.^ 0F8C FEFEFFFF \jl Registry.004027BE
004028C0 |. 8B4C24 64 mov ecx,dword ptr ss:[esp+64]
004028C4 |. 5F pop edi
004028C5 |. 8BC5 mov eax,ebp
004028C7 |. 5E pop esi
004028C8 |. 5D pop ebp
004028C9 |. 5B pop ebx
004028CA |. 64:890D 00000000 mov dword ptr fs:[0],ecx
004028D1 |. 83C4 60 add esp,60
///////////////////////////////////////////////////////////////////////////
00409A8E |. 8D4C24 18 lea ecx,dword ptr ss:[esp+18]
00409A92 |. C64424 3C 04 mov byte ptr ss:[esp+3C],4
00409A97 |. E8 5499FFFF call Registry.004033F0
00409A9C |. 50 push eax
00409A9D |. 8D4C24 08 lea ecx,dword ptr ss:[esp+8]
00409AA1 |. E8 A3CE0100 call Registry.00426949
00409AA6 |. 6A 3D push 3D
00409AA8 |. 8D4C24 08 lea ecx,dword ptr ss:[esp+8]
00409AAC |. E8 70840100 call Registry.00421F21
00409AB1 |. 6A 2B push 2B
00409AB3 |. 8D4C24 08 lea ecx,dword ptr ss:[esp+8]
00409AB7 |. E8 65840100 call Registry.00421F21
00409ABC |. 6A 2F push 2F
00409ABE |. 8D4C24 08 lea ecx,dword ptr ss:[esp+8]
00409AC2 |. E8 5A840100 call Registry.00421F21
00409AC7 |. 51 push ecx
00409AC8 |. 8D4424 08 lea eax,dword ptr ss:[esp+8]
00409ACC |. 8BCC mov ecx,esp
00409ACE |. 896424 18 mov dword ptr ss:[esp+18],esp
00409AD2 |. 50 push eax
00409AD3 |. E8 A1CA0100 call Registry.00426579
00409AD8 |. 8D4C24 0C lea ecx,dword ptr ss:[esp+C] ; |
00409ADC |. 51 push ecx ; |Arg1
00409ADD |. 8BCE mov ecx,esi ; |
00409ADF |. E8 8C020000 call Registry.00409D70 ; \f7关键算法
/////////////////////////////////////////////////////////////////////////////////
00409D70 /$ 6A FF push -1
00409D72 |. 68 57F34200 push Registry.0042F357 ; SE handler installation
00409D77 |. 64:A1 00000000 mov eax,dword ptr fs:[0]
00409D7D |. 50 push eax
00409D7E |. 64:8925 00000000 mov dword ptr fs:[0],esp
00409D85 |. 83EC 08 sub esp,8
00409D88 |. 55 push ebp
00409D89 |. 56 push esi
00409D8A |. 57 push edi
00409D8B |. C74424 10 00000000 mov dword ptr ss:[esp+10],0
00409D93 |. A1 F0CB4300 mov eax,dword ptr ds:[43CBF0]
00409D98 |. C74424 1C 01000000 mov dword ptr ss:[esp+1C],1
00409DA0 |. 894424 0C mov dword ptr ss:[esp+C],eax
00409DA4 |. 8B4C24 28 mov ecx,dword ptr ss:[esp+28]
00409DA8 |. C64424 1C 02 mov byte ptr ss:[esp+1C],2
00409DAD |. 8B69 F8 mov ebp,dword ptr ds:[ecx-8]
00409DB0 |. 8D7D 01 lea edi,dword ptr ss:[ebp+1]
00409DB3 |. 57 push edi
00409DB4 |. E8 8CC70100 call Registry.00426545
00409DB9 |. 8BCF mov ecx,edi
00409DBB |. 8BF0 mov esi,eax
00409DBD |. 8BD1 mov edx,ecx
00409DBF |. 33C0 xor eax,eax
00409DC1 |. 8BFE mov edi,esi
00409DC3 |. 83C4 04 add esp,4
00409DC6 |. C1E9 02 shr ecx,2
00409DC9 |. F3:AB rep stos dword ptr es:[edi]
00409DCB |. 8BCA mov ecx,edx
00409DCD |. 83E1 03 and ecx,3
00409DD0 |. F3:AA rep stos byte ptr es:[edi]
00409DD2 |. 33C9 xor ecx,ecx
00409DD4 |. 85ED test ebp,ebp
00409DD6 |. 7E 37 jle short Registry.00409E0F
00409DD8 |> 8B4424 28 /mov eax,dword ptr ss:[esp+28]
00409DDC |. 8A0401 |mov al,byte ptr ds:[ecx+eax]
00409DDF |. 3C 41 |cmp al,41
00409DE1 |. 74 22 |je short Registry.00409E05 ; 如果RES[I]是41=A或61=a就RES[I]+=1
00409DE3 |. 3C 61 |cmp al,61
00409DE5 |. 74 1E |je short Registry.00409E05
00409DE7 |. 3C 5A |cmp al,5A ; 如果RES[I]是5A=Z或7A=z就RES[I]-=1
00409DE9 |. 74 16 |je short Registry.00409E01
00409DEB |. 3C 7A |cmp al,7A
00409DED |. 74 12 |je short Registry.00409E01
00409DEF |. 0FBED0 |movsx edx,al
00409DF2 |. 81E2 01000080 |and edx,80000001 ; res[i] and 80000001
00409DF8 |. 79 05 |jns short Registry.00409DFF
00409DFA |. 4A |dec edx
00409DFB |. 83CA FE |or edx,FFFFFFFE
00409DFE |. 42 |inc edx
00409DFF |> 74 04 |je short Registry.00409E05 ; res[i] and 80000001等于0就res[i]+1
00409E01 |> FEC8 |dec al ; res[i] and 80000001不等于0就res[i]-1
00409E03 |. EB 02 |jmp short Registry.00409E07
00409E05 |> FEC0 |inc al
00409E07 |> 880431 |mov byte ptr ds:[ecx+esi],al ; 形成真码
00409E0A |. 41 |inc ecx
00409E0B |. 3BCD |cmp ecx,ebp
00409E0D |.^ 7C C9 \jl short Registry.00409DD8
00409E0F |> 56 push esi
00409E10 |. 8D4C24 10 lea ecx,dword ptr ss:[esp+10]
00409E14 |. E8 30CB0100 call Registry.00426949
00409E19 |. 56 push esi
00409E1A |. E8 4FC70100 call Registry.0042656E
00409E1F |. 8B7424 28 mov esi,dword ptr ss:[esp+28]
00409E23 |. 83C4 04 add esp,4
00409E26 |. 8D4424 0C lea eax,dword ptr ss:[esp+C]
00409E2A |. 8BCE mov ecx,esi
////////////////////////////////////////////////////////////////////////////////////////////////////
总结:注册方式为对机器码进行BASE64加密后对其结果进行了一些处理形成注册码,详见注册机C源码。
BASE64C代码参考了网上不知哪位大虾编的。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h> /* Windows special */
char* alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
char* encode(char data[], int length)
{
int i, index, val;
int quad, trip; /* bool type: 0 or 1 */
char* out;
//out = (char*)malloc((((length+2)/3)*4)*sizeof(char));
out=new char[(((length+2)/3)*4)*sizeof(char)];
for (i=0, index=0; i<length; i+=3, index+=4)
{
quad = 0;
trip = 0;
val=(0xFF & (int) data[i]);
val<<=8;
if((i+1)<length)
{
val|=(0xFF&(int)data[i+1]);
trip = 1;
}
val<<=8;
if ((i+2)<length)
{
val|=(0xFF&(int)data[i+2]);
quad = 1;
}
out[index+3] = alphabet[(quad ?(val&0x3F):64)];
val>>=6;
out[index+2] = alphabet[(trip?(val&0x3F):64)];
val>>=6;
out[index+1] = alphabet[val&0x3F];
val>>=6;
out[index+0] = alphabet[val&0x3F];
}
out[index] = '\0';
return out;
}
void init_codes(char codes[])
{
int i;
for (i =0; i< 256; i++)
codes[i] = -1;
for (i = 'A'; i <= 'Z'; i++)
codes[i] = i -'A';
for (i='a'; i<='z';i++)
codes[i] = 26 + i- 'a';
for (i='0';i<='9'; i++)
codes[i]= 52+i-'0';
codes['+'] = 62;
codes['/'] = 63;
}
char* decode(char data[],int length)
{
int value, ix;
int shift = 0; /* # of excess bits stored in accum */
int accum = 0; /* excess bits */
int index = 0;
int len;
char codes[256];
char* out;
len=((length + 3)/4)*3;
if(length>0 && data[length-1] =='=')
--len;
if (length>1&&data[length-2] =='=')
--len;
printf("%d\n",sizeof(char));
//out = (char*)malloc(len * sizeof(char));
out=new char[len*sizeof(char)];
init_codes(codes);
for (ix=0; ix<length; ix++)
{
value = codes[data[ix] & 0xFF]; /* ignore high byte of char */
if ( value >= 0 )
{ /* skip over non-code */
accum <<= 6; /* bits shift up by 6 each time thru */
shift += 6; /* loop, with new bits being put in */
accum |= value; /* at the bottom. */
if ( shift >= 8 )
{ /* whenever there are 8 or more shifted in, */
shift -= 8; /* write them out (from the top, leaving any */
out[index++] = ((accum >> shift) & 0xff); /* excess at the bottom for next iterati on. */
}
}
}
out[index] = '\0';
if (index != len)
printf("miscalculated data length!\n");
return out;
}
char* fu1(char *data, int length)
{
int index;
char* out1;
out1=new char[length*sizeof(char)];
strcpy(out1,data);
for (index=0; index<length; index++)
{
if(out1[index]=='a'||out1[index]=='A')
out1[index]=out1[index]+1;
else if(out1[index]=='Z'||out1[index]=='z')
out1[index]=out1[index]-1;
else if((out1[index]&0x80000001)==0)
out1[index]=out1[index]+1;
else out1[index]=out1[index]-1;
}
out1[index-1] = '\0';
return out1;
}
void main()
{
char data1[255]={0},data2[255]={0};
printf("请输入机器码: \n");
scanf( "%s", &data2 ); char* out1;
char* out2;
char* res;
out2 = encode(data2,strlen(data2)); //加密
res = fu1(out2,strlen(out2)); //对加密结果简单处理形成真正注册码
out1 = decode(out2,strlen(out2)); //解密
printf("%s\n%s\n",out2,out1);
printf("您的注册码是:\n%s\n",res);
system("pause"); /* Windows special */
}
注册后虽然出现注册成功,但是,还是没有真正注册上。可能还有什么暗桩 但是,没有发现。
不过通过破解学习了BASE64加密解密算法,要不然真难以去理解枯燥的算法。
失误或得罪之处多多包涵。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)