3GP to iPod Converter算法分析和软件的算法注册机代码
软件大小: 5.31 M 软件性质: 共享软件更新时间: 2007-05-25
下载次数: 1406 开 发 商: http://www.pop-software.net/
软件语言: 英文 软件类别: 国外软件 / 视频转换
应用平台: Win2003/WinXP/Win2000/WinNT/Win9x
软件介绍: 是一个功能强大的智能视频转换工具,可以将手机支持3GP格式的视频文件转换为iPod支持的视频格式。它使用方便,批量转换,可以实现最快的转换速
这些就软件提供的用户名~~~~
我们注册软件时就一定要用他们的用户名注册`
004A7A74004A09E0ASCII "VS88T6-Vs86"
004A7A78004A09F4ASCII "TV66P6-TV66"
004A7A7C004A0A08ASCII "S1R6P6-SV66"
004A7A80004A0A1CASCII "TDR6p6-SV66"
004A7A84004A0A30ASCII "TDR6p6-EVS"
004A7A88004A0A44ASCII "TDR6p6-ST1"
004A7A8C004A0A58ASCII "Tsf6p6-VB1"
004A7A90004A0A6CASCII "B8sf6p6-VB1"
004A7A94004A0A80ASCII "B8TDf6p6-VB1"
004A7A98004A0A98ASCII "BS45f6p6-VB1"
004A7A9C004A0AB0ASCII "Osrf6p6-VB1"
004A7AA0004A0AC4ASCII "Ofrg6p6-VB1"
004A7AA4004A0AD8ASCII "ESrg6p6-VB1"
004A7AA8004A0AECASCII "IUrg6p6-VB1"
004A7AAC004A0B00ASCII "IUDT6-BX1"
004A7AB0004A0B14ASCII "DUIT6-tV1"
004A7AB4004A0B28ASCII "S1IT6-DV1"
004A7AB8004A0B3CASCII "SNMS6-DV1"
004A7ABC004A0B50ASCII "SNWS6-TN1"
004A7AC0004A0B64ASCII "SNWS6-MN3"
004A7AC4004A0B78ASCII "TDVS6-MN3"
004A0C94 /$55 push ebp
004A0C95 |.8BEC mov ebp,esp
004A0C97 |.33C9 xor ecx,ecx
004A0C99 |.51 push ecx
004A0C9A |.51 push ecx
004A0C9B |.51 push ecx
004A0C9C |.51 push ecx
004A0C9D |.51 push ecx
004A0C9E |.51 push ecx
004A0C9F |.51 push ecx
004A0CA0 |.53 push ebx
004A0CA1 |.56 push esi
004A0CA2 |.57 push edi
004A0CA3 |.8945 FC mov ,eax
004A0CA6 |.33C0 xor eax,eax
004A0CA8 |.55 push ebp
004A0CA9 |.68 8C0E4A00 push 3GP_to_i.004A0E8C
004A0CAE |.64:FF30 push dword ptr fs:
004A0CB1 |.64:8920 mov dword ptr fs:,esp
004A0CB4 |.B3 01 mov bl,1
004A0CB6 |.8D55 F0 lea edx,
004A0CB9 |.8B45 FC mov eax,
004A0CBC |.8B80 F8020000 mov eax,dword ptr ds:
004A0CC2 |.E8 41E3FBFF call 3GP_to_i.0045F008 ;取用户名把用户名位数给EAX
004A0CC7 |.8B45 F0 mov eax, ;ASCII "wangwei"
004A0CCA |.8D55 F8 lea edx,
004A0CCD |.E8 B279F6FF call 3GP_to_i.00408684
004A0CD2 |.8D55 EC lea edx,
004A0CD5 |.8B45 F8 mov eax,
004A0CD8 |.E8 DB79F6FF call 3GP_to_i.004086B8
004A0CDD |.8B55 EC mov edx, ;ASCII "wangwei"
004A0CE0 |.8D45 F8 lea eax,
004A0CE3 |.E8 CC35F6FF call 3GP_to_i.004042B4
004A0CE8 |.BF 15000000 mov edi,15 ;EDI=15
004A0CED |.BE 747A4A00 mov esi,3GP_to_i.004A7A74
004A0CF2 |>8B45 F8 /mov eax, ;----------------->
004A0CF5 |.8B16 |mov edx,dword ptr ds: ;ASCII "VS88T6-Vs86"
004A0CF7 |.E8 2C39F6FF |call 3GP_to_i.00404628 ;这个些代码是测试我们输入在用户名是否在
004A0CFC |.75 04 |jnz short 3GP_to_i.004A0D02 ;软件用户列表中有,如果我们输入的用户名在这列表
004A0CFE |.33DB |xor ebx,ebx ;中没有就出错
004A0D00 |.EB 06 |jmp short 3GP_to_i.004A0D08
004A0D02 |>83C6 04 |add esi,4
004A0D05 |.4F |dec edi
004A0D06 |.^ 75 EA \jnz short 3GP_to_i.004A0CF2 ;<--------------------
004A0D08 |>84DB test bl,bl
004A0D0A |.74 1A je short 3GP_to_i.004A0D26
004A0D0C |.6A 00 push 0 ; /Arg1 = 00000000
004A0D0E |.66:8B0D 9C0E4A0>mov cx,word ptr ds: ; |
004A0D15 |.B2 02 mov dl,2 ; |
004A0D17 |.B8 A80E4A00 mov eax,3GP_to_i.004A0EA8 ; |ASCII "Invalid register code! Please retry!"
004A0D1C |.E8 4B4AF9FF call 3GP_to_i.0043576C ; \3GP_to_i.0043576C
004A0D21 |.E9 2B010000 jmp 3GP_to_i.004A0E51
004A0D26 |>8D55 E8 lea edx,
004A0D29 |.8B45 FC mov eax,
004A0D2C |.8B80 FC020000 mov eax,dword ptr ds:
004A0D32 |.E8 D1E2FBFF call 3GP_to_i.0045F008 ;取假码
004A0D37 |.8B45 E8 mov eax, ;ASCII "11111111111111111"
004A0D3A |.8D55 F4 lea edx,
004A0D3D |.E8 4279F6FF call 3GP_to_i.00408684
004A0D42 |.8D55 E4 lea edx,
004A0D45 |.8B45 F4 mov eax,
004A0D48 |.E8 6B79F6FF call 3GP_to_i.004086B8
004A0D4D |.8B55 E4 mov edx,
004A0D50 |.8D45 F4 lea eax,
004A0D53 |.E8 5C35F6FF call 3GP_to_i.004042B4
004A0D58 |.837D F8 00 cmp ,0
004A0D5C |.0F84 EF000000 je 3GP_to_i.004A0E51 ;用户名是否为空
004A0D62 |.837D F4 00 cmp ,0
004A0D66 |.0F84 E5000000 je 3GP_to_i.004A0E51 ;注册码是否为空
004A0D6C |.8B45 F4 mov eax,
004A0D6F |.E8 6837F6FF call 3GP_to_i.004044DC
004A0D74 |.85C0 test eax,eax
004A0D76 |.7E 35 jle short 3GP_to_i.004A0DAD
004A0D78 |.BA 01000000 mov edx,1 ;EDX置1
004A0D7D |>8B4D F4 /mov ecx, ;---------------------->
004A0D80 |.0FB64C11 FF |movzx ecx,byte ptr ds:[ecx+edx->;检测我们输的注册码是否为0-9的数字
004A0D85 |.83F9 30 |cmp ecx,30
004A0D88 |.7C 05 |jl short 3GP_to_i.004A0D8F
004A0D8A |.83F9 39 |cmp ecx,39
004A0D8D |.7E 1A |jle short 3GP_to_i.004A0DA9
004A0D8F |>6A 00 |push 0 ; /Arg1 = 00000000
004A0D91 |.66:8B0D 9C0E4A0>|mov cx,word ptr ds: ; |
004A0D98 |.B2 02 |mov dl,2 ; |
004A0D9A |.B8 A80E4A00 |mov eax,3GP_to_i.004A0EA8 ; |ASCII "Invalid register code! Please retry!"
004A0D9F |.E8 C849F9FF |call 3GP_to_i.0043576C ; \3GP_to_i.0043576C
004A0DA4 |.E9 A8000000 |jmp 3GP_to_i.004A0E51
004A0DA9 |>42 |inc edx
004A0DAA |.48 |dec eax
004A0DAB |.^ 75 D0 \jnz short 3GP_to_i.004A0D7D ;<-------------------------
004A0DAD |>33F6 xor esi,esi
004A0DAF |.8B45 F8 mov eax, ;ASCII "VS88T6-Vs86"
004A0DB2 |.E8 2537F6FF call 3GP_to_i.004044DC ;取用户名的位数~~~作下面运算的控制参数
004A0DB7 |.85C0 test eax,eax
004A0DB9 |.7E 13 jle short 3GP_to_i.004A0DCE
004A0DBB |.BF 01000000 mov edi,1 ;EDI=1
004A0DC0 |>8B55 F8 /mov edx,
004A0DC3 |.0FB6543A FF |movzx edx,byte ptr ds:[edx+edi->;逐位取用户名的ACSSII值
004A0DC8 |.03F2 |add esi,edx ;初始化ESI是为0的ESI=ESI+用户名的ACSSII值
004A0DCA |.47 |inc edi ;EDI++
004A0DCB |.48 |dec eax
004A0DCC |.^ 75 F2 \jnz short 3GP_to_i.004A0DC0
004A0DCE |>69C6 3CE50C00 imul eax,esi,0CE53C ;用户名的ACSSII相加后 *0X0CE53C
004A0DD4 |.83C0 20 add eax,20 ;EAX=EAX+20
004A0DD7 |.D1F8 sar eax,1 ;EAX算术右移1位
004A0DD9 |.79 03 jns short 3GP_to_i.004A0DDE
004A0DDB |.83D0 00 adc eax,0
004A0DDE |>8BF0 mov esi,eax
004A0DE0 |.8B45 F4 mov eax,
004A0DE3 |.E8 F07AF6FF call 3GP_to_i.004088D8 ;把我输入的注册码转化16进制数
004A0DE8 |.3BF0 cmp esi,eax ;把用户名运算结果与注册码的16进制比较相同注册成功
004A0DEA |.75 50 jnz short 3GP_to_i.004A0E3C
004A0DEC |.6A 00 push 0 ; /Arg1 = 00000000
004A0DEE |.66:8B0D 9C0E4A0>mov cx,word ptr ds: ; |
004A0DF5 |.B2 02 mov dl,2 ; |
004A0DF7 |.B8 D80E4A00 mov eax,3GP_to_i.004A0ED8 ; |ASCII "Congratuation! You have successfully registered!"
004A0DFC |.E8 6B49F9FF call 3GP_to_i.0043576C ; \3GP_to_i.0043576C
004A0E01 |.A1 AC7D4A00 mov eax,dword ptr ds:
004A0E06 |.C600 01 mov byte ptr ds:,1
004A0E09 |.A1 A47E4A00 mov eax,dword ptr ds:
004A0E0E |.8B00 mov eax,dword ptr ds:
004A0E10 |.33C9 xor ecx,ecx
004A0E12 |.33D2 xor edx,edx
004A0E14 |.8B18 mov ebx,dword ptr ds:
004A0E16 |.FF53 14 call dword ptr ds:
004A0E19 |.8B15 AC7D4A00 mov edx,dword ptr ds: ;3GP_to_i.004A9D96
004A0E1F |.A1 A47E4A00 mov eax,dword ptr ds:
004A0E24 |.8B00 mov eax,dword ptr ds:
004A0E26 |.B9 01000000 mov ecx,1
004A0E2B |.E8 B8DAF7FF call 3GP_to_i.0041E8E8
004A0E30 |.A1 789D4A00 mov eax,dword ptr ds:
004A0E35 |.E8 0EA7FDFF call 3GP_to_i.0047B548
004A0E3A |.EB 15 jmp short 3GP_to_i.004A0E51
004A0E3C |>6A 00 push 0 ; /Arg1 = 00000000
004A0E3E |.66:8B0D 9C0E4A0>mov cx,word ptr ds: ; |
004A0E45 |.B2 02 mov dl,2 ; |
004A0E47 |.B8 A80E4A00 mov eax,3GP_to_i.004A0EA8 ; |ASCII "Invalid register code! Please retry!"
004A0E4C |.E8 1B49F9FF call 3GP_to_i.0043576C ; \3GP_to_i.0043576C
现在我来总结一下这个软件的算法!!!!!!!!!!!!!!!
1.总的来说这个软件很间单~~~。因为我要这么个软件。
2.软件第一是进行一个检查我们输入的是不是作者给定的用户名。如果不是就提示出错.
3.作者把用户名的ACSSII进行一个自加。
3.用户名自加后乘上0X0CE53C在加上0X20最后把结果算术右移1位。
4.作用把我们输入注册码转化16进制数.
5就是把用户名运算出来的结果与我们输入注册码转化16进制数进行比较~~~相同就注册成功。
不相同就提示注册不成功.
6.下面的C++代码就是我写的一个算法注册机~~~~~~~~~~~呵呵就多指教!!!!
#include <iostream>
using namespace std;
void main()
{
char a;
cout<<"请输入软件给定的用户名"<<endl;
cin>>a;
int i,b,c=0;
b=strlen(a);
for(i=0;i<b;i++)
{
c=c+a;
}
c=c*0X0CE53C;
c=c+0X20;
c=c>>1;
cout<<c<<endl;
}
学习了,谢谢分享 新手学习了。。。。 谢谢分享~~~~~~ 学习了,分析的不错哦,呵呵 谢谢分享,感谢 。
页:
[1]