首页
论坛
课程
招聘
[原创]**Flash播放器V7.63的算法分析+注册机源码(简单)
2006-11-25 20:25 5575

[原创]**Flash播放器V7.63的算法分析+注册机源码(简单)

bxm 活跃值
29
2006-11-25 20:25
5575
【文章标题】: **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

[2023春季班]《安卓高级研修班(网课)》月薪两万班招生中~

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
KAN 活跃值 6 2006-11-25 20:54
2
0
佩服 + 牛 X = 强人
雪    币: 202
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
binbinbin 活跃值 28 2006-11-26 10:54
3
0
代码这么点,但是运算比较大。要循环30次,哇靠
游客
登录 | 注册 方可回帖
返回