【文章标题】: **Flash播放器V7.63的算法分析+注册机源码
【文章作者】: bxm
【作者邮箱】: bxm78@163.com
【下载地址】: 自己搜索下载
【加壳方式】: 无壳
【保护方式】: 注册码
【编写语言】: dephi
【使用工具】: OD
【操作平台】: winxp
【软件介绍】: 1、启动程序,按打开按钮,选择要播放的文件;
2、在不同的地方按鼠标右键,有不同的功能;
3、可以保存播放列表,也可以打开播放列表;
4、文件夹中双击swf或hhf(黄河Flash播放器列表文件)文件,可以自动播放放;
5、可以无级缩放播放大小;
6、显示播放进度,可以拖放!
7、可以下载网上Flash文件;
8、黄河直播,每天都有新内容;
9、IE缓存搜索及保存;
10、支持网上自动更新;
11、支持从IE中把链接拖到列表播放;
12、支持从资源管理器把文件拖到主界面播放;
13、按键盘上的F5功能键抓图,并保存在 安装目录下的BMP文件夹下。
14、支持最大化播放。
15、支持在IE中点击直接播放。
16、支持在IE中对链接按右键启动播放链接。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
有一些Flash文件需要看一看,手头没有合适的播放器,于是上网下载了一个,顺便破解了一下。注册码计算过程如下:
004B9FF4 |. 0FB630 movzx esi, byte ptr [eax] ; 识别号的第1个字符入ESI
004B9FF7 |. 66:6BC6 64 imul ax, si, 64 ; SI*64,设结果为A
004B9FFB |. 66:8945 F8 mov word ptr [ebp-8], ax
004B9FFF |. 8BC6 mov eax, esi
004BA001 |. C1E0 09 shl eax, 9 ; 识别号的第1个字符左移9位,设结果为B
004BA004 |. 66:8945 F6 mov word ptr [ebp-A], ax
004BA008 |. B3 01 mov bl, 1 ; 1入BL
004BA00A |> 8B45 FC /mov eax, dword ptr [ebp-4]
004BA00D |. E8 92ABF4FF |call 00404BA4 ; 十六进制数D入EAX
004BA012 |. 50 |push eax
004BA013 |. 33C0 |xor eax, eax
004BA015 |. 8AC3 |mov al, bl
004BA017 |. 5A |pop edx
004BA018 |. 8BCA |mov ecx, edx
004BA01A |. 99 |cdq
004BA01B |. F7F9 |idiv ecx
004BA01D |. 8B45 FC |mov eax, dword ptr [ebp-4] ; 识别号入EAX(识别号最后加一个0x1)
004BA020 |. 8A0410 |mov al, byte ptr [eax+edx] ; 识别号依次入AL(从第2个开始)
004BA023 |. 0FB7D6 |movzx edx, si
004BA026 |. C1EA 08 |shr edx, 8
004BA029 |. 32C2 |xor al, dl
004BA02B |. 33D2 |xor edx, edx
004BA02D |. 8AD3 |mov dl, bl
004BA02F |. B9 DCA04B00 |mov ecx, 004BA0DC ; qwert yuiop asdfg hjkl zxcvbnm
004BA034 |. 324411 FF |xor al, byte ptr [ecx+edx-1] ; 上面字符串中相对应的字符与AL异或(第几次循环就取第几个)
004BA038 |. 50 |push eax ; 压栈
004BA039 |. 8B45 FC |mov eax, dword ptr [ebp-4]
004BA03C |. E8 63ABF4FF |call 00404BA4 ; 十六进制数D入EAX
004BA041 |. 5A |pop edx ; 出栈
004BA042 |. 02D0 |add dl, al ; DL+AL
004BA044 |. 8855 FB |mov byte ptr [ebp-5], dl ; 保存
004BA047 |. 33C0 |xor eax, eax
004BA049 |. 8A45 FB |mov al, byte ptr [ebp-5] ; 取出
004BA04C |. B9 3E000000 |mov ecx, 3E ; 3E入ECX
004BA051 |. 99 |cdq
004BA052 |. F7F9 |idiv ecx ; EAX/ECX
004BA054 |. 42 |inc edx ; 余数+1
004BA055 |. 8855 FB |mov byte ptr [ebp-5], dl ; 保存
004BA058 |. 8D45 F0 |lea eax, dword ptr [ebp-10]
004BA05B |. 33D2 |xor edx, edx
004BA05D |. 8A55 FB |mov dl, byte ptr [ebp-5]
004BA060 |. B9 04A14B00 |mov ecx, 004BA104 ; 0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
004BA065 |. 8A5411 FF |mov dl, byte ptr [ecx+edx-1] ; 查表得出注册号的一个字符
004BA069 |. E8 5EAAF4FF |call 00404ACC
004BA06E |. 8B55 F0 |mov edx, dword ptr [ebp-10]
004BA071 |. 8BC7 |mov eax, edi
004BA073 |. E8 34ABF4FF |call 00404BAC
004BA078 |. 33C0 |xor eax, eax
004BA07A |. 8AC3 |mov al, bl
004BA07C |. 8B17 |mov edx, dword ptr [edi]
004BA07E |. 0FB64402 FF |movzx eax, byte ptr [edx+eax-1]
004BA083 |. 66:03F0 |add si, ax ; si+此次循环得出的注册码中的一个字符
004BA086 |. 66:0FAF75 F8 |imul si, word ptr [ebp-8] ; SI*A
004BA08B |. 66:0375 F6 |add si, word ptr [ebp-A] ; SI+B
004BA08F |. 43 |inc ebx
004BA090 |. 80FB 1F |cmp bl, 1F
004BA093 |.^ 0F85 71FFFFFF \jnz 004BA00A ; 循环30次
如我的识别号为:ID2954489354
注册码为:Yhg826B66S0h44bmIb3OMLIblDuKWB
注册机源码如下:
#include<iostream.h>
int main()
{
char cShibiehao[14];
unsigned char cShi; //cShi为识别号在循环体中的暂存字符
char cSerial[31]; //存放注册码
char table1[]={"Qwert yuiop asdfg hjkl zxcvbnm"};
char table2[]={"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"};
int tempA,tempB,i;
int temp; //ESI循环初值
cout<<"请输入识别号:";
cin>>cShibiehao;
cShibiehao[12]=1;cShibiehao[13]=0;
tempA=cShibiehao[0]*0x64;
tempB=cShibiehao[0]<<9;
temp=cShibiehao[0]; //赋初值,识别号的第1个字符
for(i=0;i<30;i++)
{
cShi=cShibiehao[(i+1)%13];
cShi^=(temp>>8);
cShi^=table1[i]; //与表1异或
cShi+=0xD;
cShi=cShi%0x3E;
cSerial[i]=table2[cShi]; //查表得出注册码
temp=(temp+cSerial[i])*tempA+tempB;
temp&=0xFFFF;
}
cSerial[30]=0;
cout<<endl<<"serial:"<<cSerial<<endl;
return 0;
}
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2006年11月25日 下午 07:54:36
[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!