sdrf5678lk 发表于 2011-3-16 13:53:58

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;
}

老万 发表于 2011-3-16 20:31:18

学习了,谢谢分享

22p 发表于 2011-3-16 22:09:53

新手学习了。。。。

pyingyue 发表于 2011-3-23 07:15:17

谢谢分享~~~~~~

cfc1680 发表于 2012-4-1 21:13:44

学习了,分析的不错哦,呵呵

xinbinchi 发表于 2016-7-2 14:53:28

谢谢分享,感谢 。
页: [1]
查看完整版本: 3GP to iPod Converter算法分析和软件的算法注册机代码