抱歉,我自以为发帖子很神圣,尤其在这个论坛上.但我求学心急,这个问题我不知道那里的问题?我发了好几个消息给别人了.但没回复,一急之下就有了下文!~
SORRY
星空电影院 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
开始→程序→附件→“计算器” ^_^。
这个问题是我昨天就开始想,今天早晨又看了看,还是不懂,真心希望各位大侠给予指教及批评!
我想问以下:
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 ; 不相等提示注册码错误信息
这个地方为什么要得到的注册码加上机器码的前6位呢?
我不理解,希望能给予指点
004E0AA0 3B05 D43A5800 cmp eax,dword ptr ds:[583AD4]
这一句应该是上面 EAX-ESI的到的结果
为什么取D[583AD4]这个段的3F141 呢?应该去EAX才对啊
不知道你们能否明白我的表述...恳请给予指点..感激~~
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!