中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 看雪学院专区 > 软件调试
**Flash播放器V7.63的算法分析+注册机源码(简单)
作者:佚名 时间:2006-12-11 20:59 出处:pediy.com 责编:月夜寒箫
              摘要:**Flash播放器V7.63的算法分析+注册机源码(简单)
【文章标题】: **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



关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有