首页
社区
课程
招聘
[分享](简单)Magic DVD Copier 5.01算法分析
2007-6-1 19:33 4804

[分享](简单)Magic DVD Copier 5.01算法分析

2007-6-1 19:33
4804
【文章标题】: (简单)Magic DVD Copier 5.01算法分析
【文章作者】: 坚持到底
【软件名称】: Magic DVD Copier 5.01
【下载地址】: http://www.newhua.com/soft/55065.htm
【保护方式】: 注册码
【使用工具】: flyod,peid
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  在OD中搜索字符串
  Register Code is not correct!
  Please copy and paste your user name and register code.
  
  有好几处 最后找到这里有用的
  
  输入
  
  insist
  123456789
  
  
  0041DF10   .  55                     push ebp
  0041DF11   .  8BEC                   mov ebp,esp
  0041DF13   .  83C4 AC                add esp,-54
  0041DF16   .  53                     push ebx
  0041DF17   .  56                     push esi
  0041DF18   .  57                     push edi
  0041DF19   .  8945 B8                mov dword ptr ss:[ebp-48],eax
  0041DF1C   .  B8 24335300            mov eax,MagicDVD.00533324
  0041DF21   .  E8 EE3D0E00            call MagicDVD.00501D14
  0041DF26   .  66:C745 CC 0800        mov word ptr ss:[ebp-34],8
  0041DF2C   .  66:C745 CC 0800        mov word ptr ss:[ebp-34],8
  0041DF32   .  66:C745 CC 2000        mov word ptr ss:[ebp-34],20
  0041DF38   .  33C0                   xor eax,eax
  0041DF3A   .  33F6                   xor esi,esi
  0041DF3C   .  8945 F4                mov dword ptr ss:[ebp-C],eax
  0041DF3F   .  8D55 F4                lea edx,dword ptr ss:[ebp-C]
  0041DF42   .  FF45 D8                inc dword ptr ss:[ebp-28]
  0041DF45   .  8B4D B8                mov ecx,dword ptr ss:[ebp-48]
  0041DF48   .  8B81 F8020000          mov eax,dword ptr ds:[ecx+2F8]
  0041DF4E   .  E8 D9110B00            call MagicDVD.004CF12C
  0041DF53   .  8D45 F4                lea eax,dword ptr ss:[ebp-C]
  0041DF56   .  8B00                   mov eax,dword ptr ds:[eax]
  0041DF58   .  33D2                   xor edx,edx
  0041DF5A   .  8955 FC                mov dword ptr ss:[ebp-4],edx
  0041DF5D   .  8D55 FC                lea edx,dword ptr ss:[ebp-4]
  0041DF60   .  FF45 D8                inc dword ptr ss:[ebp-28]
  0041DF63   .  E8 1C310500            call MagicDVD.00471084
  0041DF68   .  FF4D D8                dec dword ptr ss:[ebp-28]
  0041DF6B   .  8D45 F4                lea eax,dword ptr ss:[ebp-C]
  0041DF6E   .  BA 02000000            mov edx,2
  0041DF73   .  E8 34290F00            call MagicDVD.005108AC
  0041DF78   .  66:C745 CC 1400        mov word ptr ss:[ebp-34],14
  0041DF7E   .  837D FC 00             cmp dword ptr ss:[ebp-4],0
  0041DF82   .  74 05                  je short MagicDVD.0041DF89
  0041DF84   .  8B45 FC                mov eax,dword ptr ss:[ebp-4]
  0041DF87   .  EB 05                  jmp short MagicDVD.0041DF8E
  0041DF89   >  B8 9B315300            mov eax,MagicDVD.0053319B
  0041DF8E   >  8945 B4                mov dword ptr ss:[ebp-4C],eax
  0041DF91   .  33FF                   xor edi,edi
  0041DF93   .  8B45 B4                mov eax,dword ptr ss:[ebp-4C]
  0041DF96   .  8BD8                   mov ebx,eax
  0041DF98   .  EB 08                  jmp short MagicDVD.0041DFA2
  0041DF9A   >  33C0                   xor eax,eax
  0041DF9C   .  8A03                   mov al,byte ptr ds:[ebx]
  0041DF9E   .  03F0                   add esi,eax                            ;  //用户名累加在esi
  0041DFA0   .  47                     inc edi
  0041DFA1   .  43                     inc ebx
  0041DFA2   >  8B55 B4                mov edx,dword ptr ss:[ebp-4C]
  0041DFA5   .  52                     push edx
  0041DFA6   .  E8 21390E00            call MagicDVD.005018CC
  0041DFAB   .  59                     pop ecx
  0041DFAC   .  3BF8                   cmp edi,eax
  0041DFAE   .^ 72 EA                  jb short MagicDVD.0041DF9A
  0041DFB0   .  81E6 FFFF0080          and esi,8000FFFF
  0041DFB6   .  79 08                  jns short MagicDVD.0041DFC0
  0041DFB8   .  4E                     dec esi
  0041DFB9   .  81CE 0000FFFF          or esi,FFFF0000
  0041DFBF   .  46                     inc esi
  0041DFC0   >  56                     push esi                               ; /Arg3
  0041DFC1   .  68 9C315300            push MagicDVD.0053319C                 ; |Arg2 = 0053319C ASCII "%04X"
  0041DFC6   .  8D4D AC                lea ecx,dword ptr ss:[ebp-54]          ; |
  0041DFC9   .  51                     push ecx                               ; |Arg1
  0041DFCA   .  E8 B9730E00            call MagicDVD.00505388                 ; \MagicDVD.00505388
  0041DFCF   .  66:C745 CC 2C00        mov word ptr ss:[ebp-34],2C            ;  //用户名累加和的格式化字串 我这里是 092A
  0041DFD5   .  33C0                   xor eax,eax
  0041DFD7   .  83C4 0C                add esp,0C
  0041DFDA   .  8945 F0                mov dword ptr ss:[ebp-10],eax
  0041DFDD   .  8D55 F0                lea edx,dword ptr ss:[ebp-10]
  0041DFE0   .  FF45 D8                inc dword ptr ss:[ebp-28]
  0041DFE3   .  8B4D B8                mov ecx,dword ptr ss:[ebp-48]
  0041DFE6   .  8B81 FC020000          mov eax,dword ptr ds:[ecx+2FC]
  0041DFEC   .  E8 3B110B00            call MagicDVD.004CF12C
  0041DFF1   .  8D45 F0                lea eax,dword ptr ss:[ebp-10]
  0041DFF4   .  8B00                   mov eax,dword ptr ds:[eax]
  0041DFF6   .  33D2                   xor edx,edx
  0041DFF8   .  8955 EC                mov dword ptr ss:[ebp-14],edx
  0041DFFB   .  8D55 EC                lea edx,dword ptr ss:[ebp-14]
  0041DFFE   .  FF45 D8                inc dword ptr ss:[ebp-28]
  0041E001   .  E8 7E300500            call MagicDVD.00471084
  0041E006   .  8D45 EC                lea eax,dword ptr ss:[ebp-14]
  0041E009   .  33C9                   xor ecx,ecx
  0041E00B   .  894D F8                mov dword ptr ss:[ebp-8],ecx
  0041E00E   .  8D55 F8                lea edx,dword ptr ss:[ebp-8]
  0041E011   .  FF45 D8                inc dword ptr ss:[ebp-28]
  0041E014   .  E8 532B0F00            call MagicDVD.00510B6C
  0041E019   .  FF4D D8                dec dword ptr ss:[ebp-28]
  0041E01C   .  8D45 EC                lea eax,dword ptr ss:[ebp-14]
  0041E01F   .  BA 02000000            mov edx,2
  0041E024   .  E8 83280F00            call MagicDVD.005108AC
  0041E029   .  FF4D D8                dec dword ptr ss:[ebp-28]
  0041E02C   .  8D45 F0                lea eax,dword ptr ss:[ebp-10]
  0041E02F   .  BA 02000000            mov edx,2
  0041E034   .  E8 73280F00            call MagicDVD.005108AC
  0041E039   .  66:C745 CC 1400        mov word ptr ss:[ebp-34],14
  0041E03F   .  837D F8 00             cmp dword ptr ss:[ebp-8],0
  0041E043   .  74 05                  je short MagicDVD.0041E04A
  0041E045   .  8B75 F8                mov esi,dword ptr ss:[ebp-8]
  0041E048   .  EB 05                  jmp short MagicDVD.0041E04F
  0041E04A   >  BE A1315300            mov esi,MagicDVD.005331A1
  0041E04F   >  33FF                   xor edi,edi
  0041E051   .  8BDE                   mov ebx,esi
  0041E053   .  EB 12                  jmp short MagicDVD.0041E067
  0041E055   >  0FBE03                 movsx eax,byte ptr ds:[ebx]
  0041E058   .  83F8 6F                cmp eax,6F
  0041E05B   .  74 05                  je short MagicDVD.0041E062
  0041E05D   .  83F8 4F                cmp eax,4F
  0041E060   .  75 03                  jnz short MagicDVD.0041E065
  0041E062   >  C603 30                mov byte ptr ds:[ebx],30
  0041E065   >  47                     inc edi                                ;  
  0041E066   .  43                     inc ebx
  0041E067   >  56                     push esi
  0041E068   .  E8 5F380E00            call MagicDVD.005018CC
  0041E06D   .  59                     pop ecx
  0041E06E   .  3BF8                   cmp edi,eax
  0041E070   .^ 72 E3                  jb short MagicDVD.0041E055
  0041E072   .  66:C745 CC 3800        mov word ptr ss:[ebp-34],38
  0041E078   .  8D45 E8                lea eax,dword ptr ss:[ebp-18]
  0041E07B   .  8BD6                   mov edx,esi
  0041E07D   .  E8 16270F00            call MagicDVD.00510798
  0041E082   .  FF45 D8                inc dword ptr ss:[ebp-28]
  0041E085   .  8B10                   mov edx,dword ptr ds:[eax]
  0041E087   .  8B45 B8                mov eax,dword ptr ss:[ebp-48]
  0041E08A   .  8B80 FC020000          mov eax,dword ptr ds:[eax+2FC]
  0041E090   .  E8 C7100B00            call MagicDVD.004CF15C
  0041E095   .  FF4D D8                dec dword ptr ss:[ebp-28]
  0041E098   .  8D45 E8                lea eax,dword ptr ss:[ebp-18]
  0041E09B   .  BA 02000000            mov edx,2
  0041E0A0   .  E8 07280F00            call MagicDVD.005108AC
  0041E0A5   .  8A4E 05                mov cl,byte ptr ds:[esi+5]
  0041E0A8   .  3A4D AC                cmp cl,byte ptr ss:[ebp-54]            ;  //注册码第6位等于用户名累加和格式化串的第1位 0
  0041E0AB   .  75 26                  jnz short MagicDVD.0041E0D3
  0041E0AD   .  8A46 04                mov al,byte ptr ds:[esi+4]
  0041E0B0   .  3A45 AD                cmp al,byte ptr ss:[ebp-53]            ;  //注册码第5位等于用户名累加和格式化串的第2位  2
  0041E0B3   .  75 1E                  jnz short MagicDVD.0041E0D3
  0041E0B5   .  8A56 12                mov dl,byte ptr ds:[esi+12]            ;  //注册码第19位等于用户名累加和格式化串的第3位 9
  0041E0B8   .  3A55 AE                cmp dl,byte ptr ss:[ebp-52]
  0041E0BB   .  75 16                  jnz short MagicDVD.0041E0D3
  0041E0BD   .  8A0E                   mov cl,byte ptr ds:[esi]
  0041E0BF   .  3A4D AF                cmp cl,byte ptr ss:[ebp-51]            ;  //注册码第1位等于用户名累加和格式化串的第4位 A
  0041E0C2   .  75 0F                  jnz short MagicDVD.0041E0D3
  0041E0C4   .  8B45 B8                mov eax,dword ptr ss:[ebp-48]
  0041E0C7   .  C780 4C020000 01000000 mov dword ptr ds:[eax+24C],1
  0041E0D1   .  EB 3E                  jmp short MagicDVD.0041E111
  0041E0D3   >  66:C745 CC 4400        mov word ptr ss:[ebp-34],44
  0041E0D9   .  BA A2315300            mov edx,MagicDVD.005331A2              ;  ASCII "Register Code is not correct!
  Please copy and paste your user name and register code."
  0041E0DE   .  8D45 E4                lea eax,dword ptr ss:[ebp-1C]
  0041E0E1   .  E8 B2260F00            call MagicDVD.00510798
  0041E0E6   .  FF45 D8                inc dword ptr ss:[ebp-28]
  
  注册码保存在程序目录中的 MagicDVDRipper.INI中
  
  一组可用注册码
  
  insist
  A123208910129123459
  
--------------------------------------------------------------------------------
【经验总结】
  
  keygen代码
  
          UpdateData(true);
          int i,sum=0;
          char data[]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
          char name[64]={0};
          char serial[64]={0};
          char temp[4]={0};
          strcpy(name,m_EDIT1);
    for (i=0;i < strlen(name);i++)
          sum+=name[i];
    sprintf(temp,"%.4X",sum);
          for (i=0;i<20;i++)//注册码位数随便只要大于19位
    serial[i]=data[rand()%62]; //其他位数随机产生
          serial[0]=temp[3];
          serial[4]=temp[1];
          serial[5]=temp[0];
          serial[18]=temp[2];
          m_EDIT2=serial;
      UpdateData(false);
  
    代码写的有点乱。。。。测试了几组可以通过。。。。不懂有没有BUG。。。。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞7
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回