星空电影院 V2.16 注册算法分析

软件下载地址: http://219.129.216.109/zhencui/xkdy.htm

《星空电影院》:是娱乐所属在线软件,包罗了全国和海外引进的3000多部动画片、电影、港台、大陆、日韩 、欧美电影,并设为独特的秘密观看区,足以使您一饱眼福。1000M光纤接入,IBM专业服务器组,提供在线观看使您即刻体验极速的全方位视觉感受。关于软件的更多特色介绍,速度快质量高的精彩视频,专人实时跟踪更新升级,本软件具有自动升级功能。 通过独特的合作资源,提供超过400套超高清晰的卫星电视节目,高速HBO大片,BBC新闻,日本MM、港台凤凰、华娱、星空、TVB系列,国内中央及各省卫星电视节目;



--------------------------------------------------------------------------------------------------
004E09A8 >  55              push ebp                              ; <-TForm1@Button1Click
004E09A9    8BEC            mov ebp,esp
004E09AB    B9 08000000     mov ecx,8
004E09B0    6A 00           push 0
004E09B2    6A 00           push 0
004E09B4    49              dec ecx
004E09B5  ^ 75 F9           jnz short 星空电影.004E09B0
004E09B7    53              push ebx
004E09B8    56              push esi
004E09B9    57              push edi
004E09BA    8945 FC         mov dword ptr ss:[ebp-4],eax
004E09BD    33C0            xor eax,eax
004E09BF    55              push ebp
004E09C0    68 490C4E00     push <星空电影.->System.@HandleFinally;>
004E09C5    64:FF30         push dword ptr fs:[eax]
004E09C8    64:8920         mov dword ptr fs:[eax],esp
004E09CB    803D D8605800 0>cmp byte ptr ds:[5860D8],0
004E09D2    74 1A           je short 星空电影.004E09EE
004E09D4    6A 00           push 0
004E09D6    66:8B0D 580C4E0>mov cx,word ptr ds:[4E0C58]
004E09DD    B2 02           mov dl,2
004E09DF    B8 640C4E00     mov eax,星空电影.004E0C64
004E09E4    E8 8B00F5FF     call 星空电影.00430A74
004E09E9    E9 FE010000     jmp 星空电影.004E0BEC
004E09EE    8D55 F0         lea edx,dword ptr ss:[ebp-10]
004E09F1    8B45 FC         mov eax,dword ptr ss:[ebp-4]
004E09F4 >  8B80 38030000   mov eax,dword ptr ds:[eax+338]        ; *Edit1:N.A.
004E09FA >  E8 CD69F6FF     call 星空电影.004473CC                    ; ->Controls.TControl.GetText(TControl):TCaption;
004E09FF    837D F0 00      cmp dword ptr ss:[ebp-10],0           ; 注册码
004E0A03    74 1E           je short 星空电影.004E0A23                ; 注册码为空Over!
004E0A05    8D55 EC         lea edx,dword ptr ss:[ebp-14]
004E0A08    8B45 FC         mov eax,dword ptr ss:[ebp-4]
004E0A0B >  8B80 38030000   mov eax,dword ptr ds:[eax+338]        ; *Edit1:N.A.
004E0A11 >  E8 B669F6FF     call 星空电影.004473CC                    ; ->Controls.TControl.GetText(TControl):TCaption;
004E0A16    8B45 EC         mov eax,dword ptr ss:[ebp-14]         ; 注册码
004E0A19 >  E8 763AF2FF     call 星空电影.00404494                    ; ->System.@LStrLen(String):Integer;<+>
004E0A1E    83F8 08         cmp eax,8                             ; 注册码长度
004E0A21    7E 0F           jle short 星空电影.004E0A32               ; 注册码长度<8 over!
004E0A23    B8 8C0C4E00     mov eax,星空电影.004E0C8C
004E0A28 >  E8 3F01F5FF     call 星空电影.00430B6C                    ; ->Dialogs.ShowMessage(AnsiString);
004E0A2D    E9 BA010000     jmp 星空电影.004E0BEC
004E0A32    8D45 E4         lea eax,dword ptr ss:[ebp-1C]
004E0A35    50              push eax
004E0A36    8D55 E0         lea edx,dword ptr ss:[ebp-20]
004E0A39    8B45 FC         mov eax,dword ptr ss:[ebp-4]
004E0A3C >  8B80 3C030000   mov eax,dword ptr ds:[eax+33C]        ; *Edit2:N.A.
004E0A42 >  E8 8569F6FF     call 星空电影.004473CC                    ; ->Controls.TControl.GetText(TControl):TCaption;
004E0A47    8B45 E0         mov eax,dword ptr ss:[ebp-20]         ; 机器码
004E0A4A    B9 06000000     mov ecx,6
004E0A4F    BA 01000000     mov edx,1
004E0A54 >  E8 9B3CF2FF     call 星空电影.004046F4                    ; ->System.@LStrCopy;
004E0A59    8B4D E4         mov ecx,dword ptr ss:[ebp-1C]         ; 机器码1-6位
004E0A5C    8D45 E8         lea eax,dword ptr ss:[ebp-18]
004E0A5F    BA B80C4E00     mov edx,星空电影.004E0CB8                 ; ASCII "0x"
004E0A64 >  E8 773AF2FF     call 星空电影.004044E0                    ; ->System.@LStrCat3;
004E0A69    8B45 E8         mov eax,dword ptr ss:[ebp-18]
004E0A6C >  E8 BF82F2FF     call 星空电影.00408D30                    ; ->SysUtils.StrToInt(AnsiString):Integer;
004E0A71    8BF0            mov esi,eax                           ; 机器码1-6位转换成数值 记为M
004E0A73    33C0            xor eax,eax
004E0A75    55              push ebp
004E0A76    68 A30B4E00     push <星空电影.->System.@HandleOnExceptio>
004E0A7B    64:FF30         push dword ptr fs:[eax]
004E0A7E    64:8920         mov dword ptr fs:[eax],esp
004E0A81    8D55 DC         lea edx,dword ptr ss:[ebp-24]
004E0A84    8B45 FC         mov eax,dword ptr ss:[ebp-4]
004E0A87 >  8B80 38030000   mov eax,dword ptr ds:[eax+338]        ; *Edit1:N.A.
004E0A8D >  E8 3A69F6FF     call 星空电影.004473CC                    ; ->Controls.TControl.GetText(TControl):TCaption;
004E0A92    8B45 DC         mov eax,dword ptr ss:[ebp-24]         ; 注册码
004E0A95 >  E8 9682F2FF     call 星空电影.00408D30                    ; ->SysUtils.StrToInt(AnsiString):Integer;
004E0A9A    8BD8            mov ebx,eax                           ; 注册码转换为数值 记为N
004E0A9C    8BC3            mov eax,ebx
004E0A9E    2BC6            sub eax,esi                           ; N-M
004E0AA0    3B05 D43A5800   cmp eax,dword ptr ds:[583AD4]         ; N-M=0003F141
004E0AA6    74 38           je short 星空电影.004E0AE0                ; 不相等提示注册码错误信息
004E0AA8    68 C40C4E00     push 星空电影.004E0CC4
004E0AAD    8D55 D4         lea edx,dword ptr ss:[ebp-2C]
004E0AB0    8B45 FC         mov eax,dword ptr ss:[ebp-4]
004E0AB3 >  8B80 38030000   mov eax,dword ptr ds:[eax+338]        ; *Edit1:N.A.
004E0AB9 >  E8 0E69F6FF     call 星空电影.004473CC                    ; ->Controls.TControl.GetText(TControl):TCaption;
004E0ABE    FF75 D4         push dword ptr ss:[ebp-2C]
004E0AC1    68 E00C4E00     push 星空电影.004E0CE0
004E0AC6    8D45 D8         lea eax,dword ptr ss:[ebp-28]
004E0AC9    BA 03000000     mov edx,3
004E0ACE >  E8 813AF2FF     call 星空电影.00404554                    ; ->System.@LStrCatN;
004E0AD3    8B45 D8         mov eax,dword ptr ss:[ebp-28]
004E0AD6 >  E8 9100F5FF     call 星空电影.00430B6C                    ; ->Dialogs.ShowMessage(AnsiString);
004E0ADB    E9 B9000000     jmp 星空电影.004E0B99
004E0AE0    8D55 F4         lea edx,dword ptr ss:[ebp-C]          ; 开始保存注册信息
004E0AE3    A1 D83A5800     mov eax,dword ptr ds:[583AD8]
004E0AE8    03C3            add eax,ebx
004E0AEA >  E8 0581F2FF     call 星空电影.00408BF4                    ; ->SysUtils.IntToStr(Integer):AnsiString;overload;
004E0AEF    8D55 C8         lea edx,dword ptr ss:[ebp-38]
004E0AF2    A1 74405800     mov eax,dword ptr ds:[584074]
004E0AF7    8B00            mov eax,dword ptr ds:[eax]
004E0AF9 >  E8 DE6EF8FF     call 星空电影.004679DC                    ; ->DdeMan.TDdeMgr.GetExeName(TDdeMgr):AnsiString;<+>
004E0AFE    8B45 C8         mov eax,dword ptr ss:[ebp-38]
004E0B01    8D55 CC         lea edx,dword ptr ss:[ebp-34]
004E0B04 >  E8 8386F2FF     call 星空电影.0040918C                    ; ->SysUtils.ExtractFilePath(AnsiString):AnsiString;
004E0B09    FF75 CC         push dword ptr ss:[ebp-34]
004E0B0C    68 000D4E00     push 星空电影.004E0D00                    ; ASCII "set"
004E0B11    FF75 F4         push dword ptr ss:[ebp-C]
004E0B14    68 0C0D4E00     push 星空电影.004E0D0C                    ; ASCII ".ini"
004E0B19    8D45 D0         lea eax,dword ptr ss:[ebp-30]
004E0B1C    BA 04000000     mov edx,4
004E0B21 >  E8 2E3AF2FF     call 星空电影.00404554                    ; ->System.@LStrCatN;
004E0B26    8B4D D0         mov ecx,dword ptr ss:[ebp-30]
004E0B29    B2 01           mov dl,1
004E0B2B    A1 98624300     mov eax,dword ptr ds:[436298]
004E0B30 >  E8 1358F5FF     call 星空电影.00436348                    ; ->AxCtrls.TOleStream.Create(TOleStream;boolean;IStream);<+>
004E0B35    8945 F8         mov dword ptr ss:[ebp-8],eax
004E0B38    33C0            xor eax,eax
004E0B3A    55              push ebp
004E0B3B    68 700B4E00     push <星空电影.->System.@HandleFinally;>
004E0B40    64:FF30         push dword ptr fs:[eax]
004E0B43    64:8920         mov dword ptr fs:[eax],esp
004E0B46    6A 01           push 1
004E0B48    B9 1C0D4E00     mov ecx,星空电影.004E0D1C                 ; ASCII "Reg"
004E0B4D    BA 280D4E00     mov edx,星空电影.004E0D28                 ; ASCII "Option"
004E0B52    8B45 F8         mov eax,dword ptr ss:[ebp-8]
004E0B55    8B18            mov ebx,dword ptr ds:[eax]
004E0B57    FF53 14         call dword ptr ds:[ebx+14]
004E0B5A    33C0            xor eax,eax
004E0B5C    5A              pop edx
004E0B5D    59              pop ecx
004E0B5E    59              pop ecx
004E0B5F    64:8910         mov dword ptr fs:[eax],edx
004E0B62    68 770B4E00     push 星空电影.004E0B77
004E0B67    8B45 F8         mov eax,dword ptr ss:[ebp-8]
004E0B6A >  E8 5528F2FF     call 星空电影.004033C4                    ; ->System.TObject.Free(TObject);
004E0B6F    C3              retn
004E0B70 >^ E9 A32FF2FF     jmp 星空电影.00403B18                     ; ->System.@HandleFinally;
004E0B75  ^ EB F0           jmp short 星空电影.004E0B67
004E0B77    6A 00           push 0
004E0B79    66:8B0D 580C4E0>mov cx,word ptr ds:[4E0C58]
004E0B80    B2 02           mov dl,2
004E0B82    B8 380D4E00     mov eax,星空电影.004E0D38                 ; 注册成功提示
004E0B87    E8 E8FEF4FF     call 星空电影.00430A74
004E0B8C    48              dec eax
004E0B8D    75 0A           jnz short 星空电影.004E0B99
004E0B8F    A1 D4605800     mov eax,dword ptr ds:[5860D4]
004E0B94 >  E8 F330F8FF     call 星空电影.00463C8C                    ; ->Forms.TCustomForm.Close(TCustomForm);
004E0B99    33C0            xor eax,eax
004E0B9B    5A              pop edx
004E0B9C    59              pop ecx
004E0B9D    59              pop ecx
004E0B9E    64:8910         mov dword ptr fs:[eax],edx
004E0BA1    EB 49           jmp short 星空电影.004E0BEC
004E0BA3 >^ E9 E82DF2FF     jmp 星空电影.00403990                     ; ->System.@HandleOnException;
004E0BA8    0100            add dword ptr ds:[eax],eax
004E0BAA    0000            add byte ptr ds:[eax],al
004E0BAC    60              pushad
004E0BAD    7F 40           jg short 星空电影.004E0BEF
004E0BAF    00B40B 4E0068C4 add byte ptr ds:[ebx+ecx+C468004E],dh
004E0BB6    0C 4E           or al,4E
004E0BB8    008D 55C08B45   add byte ptr ss:[ebp+458BC055],cl
004E0BBE    FC              cld
004E0BBF >  8B80 38030000   mov eax,dword ptr ds:[eax+338]        ; *Edit1:N.A.
004E0BC5 >  E8 0268F6FF     call 星空电影.004473CC                    ; ->Controls.TControl.GetText(TControl):TCaption;
004E0BCA    FF75 C0         push dword ptr ss:[ebp-40]
004E0BCD    68 E00C4E00     push 星空电影.004E0CE0
004E0BD2    8D45 C4         lea eax,dword ptr ss:[ebp-3C]
004E0BD5    BA 03000000     mov edx,3
004E0BDA >  E8 7539F2FF     call 星空电影.00404554                    ; ->System.@LStrCatN;
004E0BDF    8B45 C4         mov eax,dword ptr ss:[ebp-3C]
004E0BE2 >  E8 85FFF4FF     call 星空电影.00430B6C                    ; ->Dialogs.ShowMessage(AnsiString);
004E0BE7 >  E8 E02FF2FF     call 星空电影.00403BCC                    ; ->System.@DoneExcept;
004E0BEC    33C0            xor eax,eax
004E0BEE    5A              pop edx
004E0BEF    59              pop ecx
004E0BF0    59              pop ecx
004E0BF1    64:8910         mov dword ptr fs:[eax],edx
004E0BF4    68 500C4E00     push 星空电影.004E0C50
004E0BF9    8D45 C0         lea eax,dword ptr ss:[ebp-40]
004E0BFC >  E8 D335F2FF     call 星空电影.004041D4                    ; ->System.@LStrClr(void;void);
004E0C01    8D45 C4         lea eax,dword ptr ss:[ebp-3C]
004E0C04    BA 04000000     mov edx,4
004E0C09 >  E8 EA35F2FF     call 星空电影.004041F8                    ; ->System.@LStrArrayClr(void;void;Integer);
004E0C0E    8D45 D4         lea eax,dword ptr ss:[ebp-2C]
004E0C11 >  E8 BE35F2FF     call 星空电影.004041D4                    ; ->System.@LStrClr(void;void);
004E0C16    8D45 D8         lea eax,dword ptr ss:[ebp-28]
004E0C19 >  E8 B635F2FF     call 星空电影.004041D4                    ; ->System.@LStrClr(void;void);
004E0C1E    8D45 DC         lea eax,dword ptr ss:[ebp-24]
004E0C21    BA 03000000     mov edx,3
004E0C26 >  E8 CD35F2FF     call 星空电影.004041F8                    ; ->System.@LStrArrayClr(void;void;Integer);
004E0C2B    8D45 E8         lea eax,dword ptr ss:[ebp-18]
004E0C2E >  E8 A135F2FF     call 星空电影.004041D4                    ; ->System.@LStrClr(void;void);
004E0C33    8D45 EC         lea eax,dword ptr ss:[ebp-14]
004E0C36    BA 02000000     mov edx,2
004E0C3B >  E8 B835F2FF     call 星空电影.004041F8                    ; ->System.@LStrArrayClr(void;void;Integer);
004E0C40    8D45 F4         lea eax,dword ptr ss:[ebp-C]
004E0C43 >  E8 8C35F2FF     call 星空电影.004041D4                    ; ->System.@LStrClr(void;void);
004E0C48    C3              retn
004E0C49 >^ E9 CA2EF2FF     jmp 星空电影.00403B18                     ; ->System.@HandleFinally;
004E0C4E  ^ EB A9           jmp short 星空电影.004E0BF9
004E0C50    5F              pop edi
004E0C51    5E              pop esi
004E0C52    5B              pop ebx
004E0C53    8BE5            mov esp,ebp
004E0C55    5D              pop ebp
004E0C56    C3              retn

--------------------------------------------------------------------------------------------------
算法超级简单:

StrToInt(注册码)-StrToInt(机器码前6位)=$0003F141

注册码=$0003F141+StrToInt(机器码前6位)

我的机器码=BFD98E81
我的注册码=$BFD98E+$0003F141=$C3CACF=12831439(8位十进制)

这种文章对技术交流没有什么用途,但我也希望大家在学习技术的空余时间也可有“免费”网络电影看看。所以就贴上来了,你注册了吗?Go
开始→程序→附件→“计算器”  ^_^。

  • 标 题: 答复
  • 作 者:icytear
  • 时 间:2005-04-03 14:27

引用:
最初由 shuair 发布
我想问以下:
这个地方为什么要得到的注册码加上机器码的前6位呢? 




//注册算法
int f(注册码,机器码)
{
    int code = atoi(注册码)-atoi(机器码前6位)
    return code;
}

regcode = f(输入的注册码,机器码)

if(regcode == 0x0003F141)
{
   MessageBox("注册成功!");
}
else
{
   MessageBox("注册失败!");
}

不知道这样可不可以帮助你理解