飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3128|回复: 4

[原创] Audiotool net Ease DVD Ripper 1.20 算法分析

[复制链接]
  • TA的每日心情
    开心
    2016-5-16 14:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-2-22 19:59:23 | 显示全部楼层 |阅读模式
    【破文标题】Audiotool net Ease DVD Ripper 1.20 算法分析
    【破文作者】tianxj
    【作者邮箱】tianxj_2007@126.com
    【作者主页】WwW.ChiNaPYG.CoM
    破解工具】PEiD,OD
    【破解平台】Windows XP
    【软件名称】Audiotool net Ease DVD Ripper 1.20
    【软件大小】934 K  
    【更新时间】2009-02-21   
    【软件类别】国外软件 / 视频转换
    【软件语言】英文
    【应用平台】Win9x/WinNT/Win2000/WinXP
    【软件性质】共享(收费)软件
    【原版下载】http://www.audiotool.net/download/easedvdripper.exe
    【保护方式】注册码
    【软件简介】功能强大,简单易用的DVD压制工具, 将DVD转换为VCD, DivX, MPEG, SVCD, AVI等视频文件,转换快速、图像和声音质量高。
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------
    【破解内容】
    --------------------------------------------------------------
    **************************************************************
    一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
    "failed register!"
    **************************************************************
    二、用PEiD对EaseDVDRipper.exe查壳,为 Microsoft Visual C++ 6.0
    **************************************************************
    三、运行OD,打开EaseDVDRipper.exe,下断点bp MessageBoxA
    ==============================================================
    004125E8     55              push ebp
    004125E9     56              push esi
    004125EA     57              push edi
    004125EB     6A 01           push 1
    004125ED     8BF1            mov esi,ecx
    004125EF     E8 2A5A0000     call <jmp.&MFC42.#6334>
    004125F4     8D4C24 14       lea ecx,dword ptr ss:[esp+14]
    004125F8     E8 13030000     call EaseDVDR.00412910
    004125FD     51              push ecx
    004125FE     8DBE 1C010000   lea edi,dword ptr ds:[esi+11C]
    00412604     8BCC            mov ecx,esp
    00412606     896424 10       mov dword ptr ss:[esp+10],esp
    0041260A     57              push edi
    0041260B     C74424 30 00000>mov dword ptr ss:[esp+30],0
    00412613     E8 02580000     call <jmp.&MFC42.#535>
    00412618     51              push ecx
    00412619     8DAE 18010000   lea ebp,dword ptr ds:[esi+118]
    0041261F     8BCC            mov ecx,esp
    00412621     896424 18       mov dword ptr ss:[esp+18],esp
    00412625     55              push ebp
    00412626     C64424 34 01    mov byte ptr ss:[esp+34],1
    0041262B     E8 EA570000     call <jmp.&MFC42.#535>
    00412630     8D4C24 1C       lea ecx,dword ptr ss:[esp+1C]
    00412634     C64424 30 00    mov byte ptr ss:[esp+30],0
    00412639     E8 42090000     call EaseDVDR.00412F80
    0041263E     8D4424 18       lea eax,dword ptr ss:[esp+18]
    00412642     8BCD            mov ecx,ebp
    00412644     50              push eax
    00412645     E8 36550000     call <jmp.&MFC42.#858>
    0041264A     8D4C24 1C       lea ecx,dword ptr ss:[esp+1C]
    0041264E     51              push ecx
    0041264F     8BCF            mov ecx,edi
    00412651     E8 2A550000     call <jmp.&MFC42.#858>
    00412656     51              push ecx
    00412657     8BCC            mov ecx,esp
    00412659     896424 14       mov dword ptr ss:[esp+14],esp
    0041265D     57              push edi
    0041265E     E8 B7570000     call <jmp.&MFC42.#535>
    00412663     51              push ecx
    00412664     C64424 30 02    mov byte ptr ss:[esp+30],2
    00412669     8BCC            mov ecx,esp
    0041266B     896424 14       mov dword ptr ss:[esp+14],esp
    0041266F     55              push ebp
    00412670     E8 A5570000     call <jmp.&MFC42.#535>
    00412675     8D4C24 1C       lea ecx,dword ptr ss:[esp+1C]
    00412679     C64424 30 00    mov byte ptr ss:[esp+30],0
    0041267E     E8 1D050000     call EaseDVDR.00412BA0                   ; //关键CALL
    00412683     84C0            test al,al
    00412685     74 40           je short EaseDVDR.004126C7               ; //关键跳转
    00412687     8D4C24 14       lea ecx,dword ptr ss:[esp+14]
    0041268B     E8 50030000     call EaseDVDR.004129E0
    00412690     84C0            test al,al
    00412692     75 40           jnz short EaseDVDR.004126D4
    00412694     8D4C24 14       lea ecx,dword ptr ss:[esp+14]
    00412698     E8 73090000     call EaseDVDR.00413010
    0041269D     84C0            test al,al
    0041269F     75 33           jnz short EaseDVDR.004126D4
    004126A1     8D4C24 14       lea ecx,dword ptr ss:[esp+14]
    004126A5     E8 16060000     call EaseDVDR.00412CC0
    004126AA     84C0            test al,al
    004126AC     74 19           je short EaseDVDR.004126C7
    004126AE     68 B0144200     push EaseDVDR.004214B0                   ; ASCII "Success register!"
    004126B3     E8 E804FFFF     call EaseDVDR.00402BA0
    004126B8     8B16            mov edx,dword ptr ds:[esi]
    004126BA     83C4 04         add esp,4
    004126BD     8BCE            mov ecx,esi
    004126BF     FF92 CC000000   call dword ptr ds:[edx+CC]
    004126C5     EB 0D           jmp short EaseDVDR.004126D4
    004126C7     68 9C144200     push EaseDVDR.0042149C                   ; ASCII "failed register!"
    004126CC     E8 4F02FFFF     call EaseDVDR.00402920
    004126D1     83C4 04         add esp,4                                ; //返回到这里
    004126D4     8D4C24 14       lea ecx,dword ptr ss:[esp+14]
    004126D8     C74424 28 FFFFF>mov dword ptr ss:[esp+28],-1
    004126E0     E8 9B020000     call EaseDVDR.00412980
    004126E5     8B4C24 20       mov ecx,dword ptr ss:[esp+20]
    004126E9     5F              pop edi
    004126EA     5E              pop esi
    004126EB     64:890D 0000000>mov dword ptr fs:[0],ecx
    004126F2     5D              pop ebp
    004126F3     83C4 20         add esp,20
    004126F6     C3              retn
    ==============================================================
    00412BA0     6A FF           push -1
    00412BA2     68 80964100     push EaseDVDR.00419680
    00412BA7     64:A1 00000000  mov eax,dword ptr fs:[0]
    00412BAD     50              push eax
    00412BAE     64:8925 0000000>mov dword ptr fs:[0],esp
    00412BB5     51              push ecx
    00412BB6     53              push ebx
    00412BB7     55              push ebp
    00412BB8     56              push esi
    00412BB9     57              push edi
    00412BBA     8BF9            mov edi,ecx
    00412BBC     8B5424 28       mov edx,dword ptr ss:[esp+28]
    00412BC0     33DB            xor ebx,ebx
    00412BC2     33C9            xor ecx,ecx
    00412BC4     C74424 1C 01000>mov dword ptr ss:[esp+1C],1
    00412BCC     8B72 F8         mov esi,dword ptr ds:[edx-8]
    00412BCF     3BF3            cmp esi,ebx
    00412BD1     7E 18           jle short EaseDVDR.00412BEB
    00412BD3     8A0411          mov al,byte ptr ds:[ecx+edx]
    00412BD6     3C 30           cmp al,30
    00412BD8     0F8C 9E000000   jl EaseDVDR.00412C7C
    00412BDE     3C 39           cmp al,39
    00412BE0     0F8F 96000000   jg EaseDVDR.00412C7C
    00412BE6     41              inc ecx
    00412BE7     3BCE            cmp ecx,esi
    00412BE9   ^ 7C E8           jl short EaseDVDR.00412BD3               ; //循环,注册码必须全为数字
    00412BEB     8B4424 24       mov eax,dword ptr ss:[esp+24]
    00412BEF     3958 F8         cmp dword ptr ds:[eax-8],ebx
    00412BF2     0F84 84000000   je EaseDVDR.00412C7C                     ; //用户名不能为空
    00412BF8     EB 04           jmp short EaseDVDR.00412BFE
    00412BFA     EB 05           jmp short EaseDVDR.00412C01
    00412BFC     3919            cmp dword ptr ds:[ecx],ebx
    00412BFE     8B7424 24       mov esi,dword ptr ss:[esp+24]
    00412C02     33C9            xor ecx,ecx
    00412C04     33C0            xor eax,eax
    00412C06     8B56 F8         mov edx,dword ptr ds:[esi-8]
    00412C09     3BD3            cmp edx,ebx
    00412C0B     7E 0B           jle short EaseDVDR.00412C18
    00412C0D     0FBE2C30        movsx ebp,byte ptr ds:[eax+esi]
    00412C11     03CD            add ecx,ebp
    00412C13     40              inc eax
    00412C14     3BC2            cmp eax,edx
    00412C16   ^ 7C F5           jl short EaseDVDR.00412C0D               ; //循环,逐一将用户名ASCII值累加至ECX
    00412C18     8BC1            mov eax,ecx                              ; //EAX=ECX
    00412C1A     C1E0 05         shl eax,5                                ; //EAX左移5位
    00412C1D     03C1            add eax,ecx                              ; //EAX=EAX+ECX
    00412C1F     8D1440          lea edx,dword ptr ds:[eax+eax*2]         ; //EDX=EAX*3
    00412C22     8D0491          lea eax,dword ptr ds:[ecx+edx*4]         ; //EAX=ECX+EDX*4
    00412C25     8B4C24 28       mov ecx,dword ptr ss:[esp+28]
    00412C29     51              push ecx                                 ; //假码
    00412C2A     8D3485 E8EA0700 lea esi,dword ptr ds:[eax*4+7EAE8]       ; //ESI=EAX*4+7EAE8
    00412C31     FF15 34A64100   call dword ptr ds:[<&MSVCRT.atol>]       ; //将假码转16进制送EAX
    00412C37     83C4 04         add esp,4
    00412C3A     3BC6            cmp eax,esi                              ; //真假码比较
    00412C3C     75 3E           jnz short EaseDVDR.00412C7C              ; //关键跳转
    00412C3E     51              push ecx
    00412C3F     8D5424 28       lea edx,dword ptr ss:[esp+28]
    00412C43     8BCC            mov ecx,esp
    00412C45     896424 14       mov dword ptr ss:[esp+14],esp
    00412C49     52              push edx
    00412C4A     E8 CB510000     call <jmp.&MFC42.#535>
    00412C4F     8BCF            mov ecx,edi
    00412C51     E8 2A020000     call EaseDVDR.00412E80
    00412C56     3AC3            cmp al,bl
    00412C58     75 22           jnz short EaseDVDR.00412C7C
    00412C5A     8D4C24 24       lea ecx,dword ptr ss:[esp+24]
    00412C5E     885C24 1C       mov byte ptr ss:[esp+1C],bl
    00412C62     E8 114E0000     call <jmp.&MFC42.#800>
    00412C67     8D4C24 28       lea ecx,dword ptr ss:[esp+28]
    00412C6B     C74424 1C FFFFF>mov dword ptr ss:[esp+1C],-1
    00412C73     E8 004E0000     call <jmp.&MFC42.#800>
    00412C78     B0 01           mov al,1
    00412C7A     EB 20           jmp short EaseDVDR.00412C9C
    00412C7C     8D4C24 24       lea ecx,dword ptr ss:[esp+24]
    00412C80     885C24 1C       mov byte ptr ss:[esp+1C],bl
    00412C84     E8 EF4D0000     call <jmp.&MFC42.#800>
    00412C89     8D4C24 28       lea ecx,dword ptr ss:[esp+28]
    00412C8D     C74424 1C FFFFF>mov dword ptr ss:[esp+1C],-1
    00412C95     E8 DE4D0000     call <jmp.&MFC42.#800>
    00412C9A     32C0            xor al,al                                ; //关键赋值
    00412C9C     8B4C24 14       mov ecx,dword ptr ss:[esp+14]
    00412CA0     5F              pop edi
    00412CA1     5E              pop esi
    00412CA2     5D              pop ebp
    00412CA3     64:890D 0000000>mov dword ptr fs:[0],ecx
    00412CAA     5B              pop ebx
    00412CAB     83C4 10         add esp,10
    00412CAE     C2 0800         retn 8
    **************************************************************  
    【破解总结】
    简单算法而且没加壳,这样的软件很少见了
    --------------------------------------------------------------
    【算法总结】
    --------------------------------------------------------------
    【算法注册机
    KeyGen.rek
    .const
    .data
    szHomePage db "http://www.huacolor.com",0
    szEmail    db "mailto:tianxj_2007@126.com",0
    szErrMess  db "请输入用户名!",0
    szFMT db "%u",0
    szBuffer db 50 dup (0)

    .code
      mov esi,eax
    invoke lstrlen,esi
      mov edx,eax
      xor ecx,ecx
      xor eax,eax
    n1:
      movsx ebp,byte ptr ds:[eax+esi]
      add ecx,ebp
      inc eax
      cmp eax,edx
      jl n1
      mov eax,ecx
      shl eax,5
      add eax,ecx
      lea edx,dword ptr ds:[eax+eax*2]
      lea eax,dword ptr ds:[ecx+edx*4]
      lea esi,dword ptr ds:[eax*4+7EAE8h]
    invoke wsprintf,addr szBuffer,addr szFMT,esi
    lea eax,szBuffer
    --------------------------------------------------------------
    【注册信息】
    保存在ease.ini
    --------------------------------------------------------------
    感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及王者之剑、云龙等所有帮助过我的论坛兄弟姐妹们!谢谢
    --------------------------------------------------------------
    【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-22 22:09:39 | 显示全部楼层
    来向老大膜拜了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-24 14:12:01 | 显示全部楼层
    真是高产.../:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-24 18:41:33 | 显示全部楼层
    算法王子的文章... 来学习下~~  /:018
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-28 10:13:14 | 显示全部楼层
    keymake写的注册机偶不会,没说的,膜拜下!T大你太强悍了/:002
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表