【破文标题】Audio To Video Mixer 3.1 注册码分析
【破文作者】foresee
【作者邮箱】vangjian#hotmail.com
【作者主页】无
【破解工具】OD、PEiD
【破解平台】Win2000
【软件名称】Audio To Video Mixer 3.1
【软件大小】708KB
【原版下载】http://www.009soft.com/products/audio-video-mixer.htm
【保护方式】无
【软件简介】Audio to Video Mixer is a video editing tool to mix audio files into video. It can remove original sound from your home video, add background music, narration or more sound tracks to the video
【破解声明】存属爱好,无恶意目的
------------------------------------------------------------------------
运行程序,尝试错误提示,关闭,然后OD载入,查找错误字串,很好找到下断之处
00416B50 . 83EC 0C sub esp, 0C ; esp=00096AAC
00416B53 . 55 push ebp ; ebp=00096AB8
00416B54 . 56 push esi ; esi=0044B410 (a2vmixer.0044B410)
00416B55 . 57 push edi ; edi=00000001
00416B56 . BF 01000000 mov edi, 1
00416B5B . 57 push edi
00416B5C . 8BF1 mov esi, ecx ; ecx=00097084
00416B5E . E8 9DB40100 call 00432000
00416B63 . 8B46 70 mov eax, dword ptr [esi+70] ; 堆栈 ds:[000970F4]=00DB5448, (ASCII "foresee")
00416B66 . 8B68 F4 mov ebp, dword ptr [eax-C] ; ds:[00DB543C]=00000007,用户名长度
00416B69 . 83FD 02 cmp ebp, 2 ; 用户名必须在两位或两位以上
00416B6C . 7D 15 jge short 00416B83 ; 如果小于,弹出Please input correct User Name!大于或等于跳走
00416B6E . 6A 00 push 0
00416B70 . 6A 00 push 0
00416B72 . 68 C0884400 push 004488C0 ; 004488C0=004488C0 (ASCII "Please input correct User Name!")
00416B77 . E8 84510200 call 0043BD00
00416B7C . 5F pop edi
00416B7D . 5E pop esi
00416B7E . 5D pop ebp
00416B7F . 83C4 0C add esp, 0C
00416B82 . C3 retn
00416B83 > 8B4E 74 mov ecx, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5468, (ASCII "1234567890")
00416B86 . 8379 F4 08 cmp dword ptr [ecx-C], 8 ; 序列号长度 ds:[00DB545C]=0000000A,序列号长度要大于等于8
00416B8A . 7D 15 jge short 00416BA1 ; 如果小于,弹出Please input correct Registration Code!,大于或等于跳走
00416B8C . 6A 00 push 0
00416B8E . 6A 00 push 0
00416B90 . 68 98884400 push 00448898 ; 00448898=00448898 (ASCII "Please input correct Registration Code!")
00416B95 . E8 66510200 call 0043BD00
00416B9A . 5F pop edi
00416B9B . 5E pop esi
00416B9C . 5D pop ebp
00416B9D . 83C4 0C add esp, 0C
00416BA0 . C3 retn
00416BA1 > 8B46 70 mov eax, dword ptr [esi+70] ; 堆栈 ds:[000970F4]=00DB5448, (ASCII "foresee")
00416BA4 . 8B48 F4 mov ecx, dword ptr [eax-C] ; ds:[00DB543C]=00000007
00416BA7 . 85C9 test ecx, ecx
00416BA9 . 7D 0A jge short 00416BB5
00416BAB . 68 57000780 push 80070057
00416BB0 . E8 4BA7FEFF call 00401300
00416BB5 > 8A10 mov dl, byte ptr [eax] ; ds:[00DB5448]=66 ('f')
00416BB7 . 8B46 70 mov eax, dword ptr [esi+70] ; 堆栈 ds:[000970F4]=00DB5448, (ASCII "foresee")
00416BBA . 3978 F4 cmp dword ptr [eax-C], edi ; edi=00000001 ds:[00DB543C]=00000007
00416BBD . 7D 0A jge short 00416BC9
00416BBF . 68 57000780 push 80070057
00416BC4 . E8 37A7FEFF call 00401300
00416BC9 > 8A40 01 mov al, byte ptr [eax+1] ; ds:[00DB5449]=6F ('o')
00416BCC . 884424 0E mov byte ptr [esp+E], al
00416BD0 . 8B46 70 mov eax, dword ptr [esi+70] ; 堆栈 ds:[000970F4]=00DB5448, (ASCII "foresee")
00416BD3 . 8B48 F4 mov ecx, dword ptr [eax-C] ; ds:[00DB543C]=00000007
00416BD6 . 85C9 test ecx, ecx
00416BD8 . 7D 0A jge short 00416BE4
00416BDA . 68 57000780 push 80070057
00416BDF . E8 1CA7FEFF call 00401300
00416BE4 > 8B4E 70 mov ecx, dword ptr [esi+70] ; 堆栈 ds:[000970F4]=00DB5448, (ASCII "foresee")
00416BE7 . 53 push ebx ; ebx=00000111
00416BE8 . 8A18 mov bl, byte ptr [eax] ; ds:[00DB5448]=66 ('f')
00416BEA . 3979 F4 cmp dword ptr [ecx-C], edi ; edi=00000001
00416BED . 7D 0A jge short 00416BF9
00416BEF . 68 57000780 push 80070057
00416BF4 . E8 07A7FEFF call 00401300
00416BF9 > 0FB6C2 movzx eax, dl ; dl=66 ('f')
00416BFC . 83C8 41 or eax, 41 ; 第一个字母和41或操作
00416BFF . 99 cdq
00416C00 . BF 0A000000 mov edi, 0A ; 0A->edi
00416C05 . F7FF idiv edi ; eax/edi,余数放edx
00416C07 . 0FB64424 12 movzx eax, byte ptr [esp+12] ; 堆栈 ss:[00096AA2]=6F ('o'),用户名第二位
00416C0C . 83C8 32 or eax, 32 ; 与32或操作
00416C0F . 885424 16 mov byte ptr [esp+16], dl ; 保存第一次运算所得的余数,dl=3
00416C13 . 99 cdq
00416C14 . F7FF idiv edi ; eax/edi,余数存入dx
00416C16 . 0FB6C3 movzx eax, bl ; bl=66 ('f')
00416C19 . 83C8 56 or eax, 56 ; 56->eax
00416C1C . 885424 12 mov byte ptr [esp+12], dl ; 保存第二次运算所得余数,dl=7
00416C20 . 99 cdq
00416C21 . F7FF idiv edi
00416C23 . 0FB641 01 movzx eax, byte ptr [ecx+1] ; ds:[00DB5449]=6F ('o')
00416C27 . 83C8 4D or eax, 4D ; 4D->eax
00416C2A . 8BCF mov ecx, edi ; edi=0000000A->ecx
00416C2C . 885424 17 mov byte ptr [esp+17], dl ; dl=08 (Backspace)
00416C30 . 99 cdq
00416C31 . F7F9 idiv ecx ; edi->ecx->10
00416C33 . 33C0 xor eax, eax
00416C35 . 33C9 xor ecx, ecx
00416C37 . 85ED test ebp, ebp
00416C39 . 885424 18 mov byte ptr [esp+18], dl ; dl=01
00416C3D . 7E 20 jle short 00416C5F
00416C3F . 90 nop
00416C40 > 85C9 test ecx, ecx
00416C42 . 0F8C D2000000 jl 00416D1A
00416C48 . 8B7E 70 mov edi, dword ptr [esi+70] ; 堆栈 ds:[000970F4]=00DB5448, (ASCII "foresee")
00416C4B . 3B4F F4 cmp ecx, dword ptr [edi-C] ; ds:[00DB543C]=00000007
00416C4E . 0F8F C6000000 jg 00416D1A
00416C54 . 0FB6140F movzx edx, byte ptr [edi+ecx] ; ds:[00DB5448]=66 ('f')
00416C58 . 03C2 add eax, edx
00416C5A . 41 inc ecx
00416C5B . 3BCD cmp ecx, ebp
00416C5D .^ 7C E1 jl short 00416C40
00416C5F > 8B4E 74 mov ecx, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5468, (ASCII "1234567890")
00416C62 . 8B51 F4 mov edx, dword ptr [ecx-C] ; ds:[00DB545C]=0000000A
00416C65 . 85D2 test edx, edx
00416C67 . 7D 0A jge short 00416C73
00416C69 . 68 57000780 push 80070057
00416C6E . E8 8DA6FEFF call 00401300
00416C73 > 8A11 mov dl, byte ptr [ecx] ; ds:[00DB5468]=31 ('1')
00416C75 . 8B4E 74 mov ecx, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5468, (ASCII "1234567890")
00416C78 . 8379 F4 01 cmp dword ptr [ecx-C], 1 ; ds:[00DB545C]=0000000A
00416C7C . 885424 19 mov byte ptr [esp+19], dl
00416C80 . 7D 0A jge short 00416C8C
00416C82 . 68 57000780 push 80070057
00416C87 . E8 74A6FEFF call 00401300
00416C8C > 8A49 01 mov cl, byte ptr [ecx+1] ; ds:[00DB5469]=32 ('2')
00416C8F . 8B7E 74 mov edi, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5468, (ASCII "1234567890")
00416C92 . 884C24 13 mov byte ptr [esp+13], cl ; cl=32 ('2')
00416C96 . 837F F4 02 cmp dword ptr [edi-C], 2 ; ds:[00DB545C]=0000000A
00416C9A . 7D 0A jge short 00416CA6
00416C9C . 68 57000780 push 80070057
00416CA1 . E8 5AA6FEFF call 00401300
00416CA6 > 8A4F 02 mov cl, byte ptr [edi+2] ; ds:[00DB546A]=33 ('3')
00416CA9 . 8B7E 74 mov edi, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5468, (ASCII "1234567890")
00416CAC . 884C24 14 mov byte ptr [esp+14], cl ; cl=33 ('3')
00416CB0 . 837F F4 03 cmp dword ptr [edi-C], 3 ; ds:[00DB545C]=0000000A
00416CB4 . 7D 0A jge short 00416CC0
00416CB6 . 68 57000780 push 80070057
00416CBB . E8 40A6FEFF call 00401300
00416CC0 > 8A4F 03 mov cl, byte ptr [edi+3] ; ds:[00DB542B]=34 ('4')
00416CC3 . 8B7E 74 mov edi, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5428, (ASCII "1234567890")
00416CC6 . 884C24 15 mov byte ptr [esp+15], cl ; cl=34 ('4')
00416CCA . 837F F4 04 cmp dword ptr [edi-C], 4 ; ds:[00DB541C]=0000000A
00416CCE . 7D 0A jge short 00416CDA
00416CD0 . 68 57000780 push 80070057
00416CD5 . E8 26A6FEFF call 00401300
00416CDA > 8A4F 04 mov cl, byte ptr [edi+4] ; ds:[00DB542C]=35 ('5')
00416CDD . 8B7E 74 mov edi, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5428, (ASCII "1234567890")
00416CE0 . 837F F4 05 cmp dword ptr [edi-C], 5 ; ds:[00DB541C]=0000000A
00416CE4 . 7D 0A jge short 00416CF0
00416CE6 . 68 57000780 push 80070057
00416CEB . E8 10A6FEFF call 00401300
00416CF0 > 8A5F 05 mov bl, byte ptr [edi+5] ; ds:[00DB542D]=36 ('6')
00416CF3 . 8B7E 74 mov edi, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5428, (ASCII "1234567890")
00416CF6 . 885C24 1A mov byte ptr [esp+1A], bl ; bl=36 ('6')
00416CFA . 837F F4 06 cmp dword ptr [edi-C], 6 ; ds:[00DB541C]=0000000A
00416CFE . 7D 0A jge short 00416D0A
00416D00 . 68 57000780 push 80070057
00416D05 . E8 F6A5FEFF call 00401300
00416D0A > 8A5F 06 mov bl, byte ptr [edi+6] ; ds:[00DB542E]=37 ('7')
00416D0D . 8B7E 74 mov edi, dword ptr [esi+74] ; 堆栈 ds:[000970F8]=00DB5428, (ASCII "1234567890")
00416D10 . 885C24 1B mov byte ptr [esp+1B], bl ; bl=37 ('7')
00416D14 . 837F F4 07 cmp dword ptr [edi-C], 7
00416D18 . 7D 0A jge short 00416D24
00416D1A > 68 57000780 push 80070057
00416D1F . E8 DCA5FEFF call 00401300
00416D24 > 8A5F 07 mov bl, byte ptr [edi+7] ; ds:[00DB542F]=38 ('8')
00416D27 . 0FB67C24 16 movzx edi, byte ptr [esp+16] ; 堆栈 ss:[00096AA6]=03
00416D2C . 0FB6D2 movzx edx, dl ; dl=31 ('1')
00416D2F . 83EA 30 sub edx, 30 ; edx=00000031
00416D32 . 3BFA cmp edi, edx
00416D34 . 75 48 jnz short 00416D7E ; 判断第一位是否为3
00416D36 . 0FB65424 13 movzx edx, byte ptr [esp+13]
00416D3B . 0FB67C24 12 movzx edi, byte ptr [esp+12]
00416D40 . 83EA 30 sub edx, 30
00416D43 . 3BFA cmp edi, edx
00416D45 . 75 37 jnz short 00416D7E ; 判断第二位是否为7
00416D47 . 0FB65424 14 movzx edx, byte ptr [esp+14]
00416D4C . 0FB67C24 17 movzx edi, byte ptr [esp+17]
00416D51 . 83EA 30 sub edx, 30
00416D54 . 3BFA cmp edi, edx ; 判断真假注册码第三位是否为8
00416D56 . 75 26 jnz short 00416D7E
00416D58 . 0FB65424 15 movzx edx, byte ptr [esp+15]
00416D5D . 0FB67C24 18 movzx edi, byte ptr [esp+18]
00416D62 . 83EA 30 sub edx, 30
00416D65 . 3BFA cmp edi, edx ; 判断第四位是否为1
00416D67 . 75 15 jnz short 00416D7E
00416D69 . 99 cdq
00416D6A . BF 0A000000 mov edi, 0A
00416D6F . F7FF idiv edi
00416D71 . 0FB6C2 movzx eax, dl ; dl=05
00416D74 . 0FB6D1 movzx edx, cl ; cl=31 ('1')
00416D77 . 83EA 30 sub edx, 30 ; edx=00000031
00416D7A . 3BC2 cmp eax, edx ; 判断第五位是否为5
00416D7C . 74 3A je short 00416DB8
00416D7E > 807C24 19 31 cmp byte ptr [esp+19], 31 ; 堆栈 ss:[00096AA9]=31 ('1')
00416D83 . 0F85 85000000 jnz 00416E0E
00416D89 . 807C24 13 32 cmp byte ptr [esp+13], 32
00416D8E . 75 7E jnz short 00416E0E
00416D90 . 8A5424 14 mov dl, byte ptr [esp+14]
00416D94 . B0 38 mov al, 38
00416D96 . 3AD0 cmp dl, al
00416D98 . 75 74 jnz short 00416E0E
00416D9A . 807C24 15 30 cmp byte ptr [esp+15], 30
00416D9F . 75 6D jnz short 00416E0E
00416DA1 . 80F9 37 cmp cl, 37
00416DA4 . 75 68 jnz short 00416E0E
00416DA6 . 384424 1A cmp byte ptr [esp+1A], al
00416DAA . 75 62 jnz short 00416E0E
00416DAC . 807C24 1B 33 cmp byte ptr [esp+1B], 33
00416DB1 . 75 5B jnz short 00416E0E
00416DB3 . 80FB 35 cmp bl, 35
00416DB6 . 75 56 jnz short 00416E0E
00416DB8 > 6A 00 push 0
00416DBA . 6A 00 push 0
00416DBC . 68 7C884400 push 0044887C ; ASCII "Registration has succeeded!"
00416DC1 . E8 3A4F0200 call 0043BD00
00416DC6 . 8B7E 70 mov edi, dword ptr [esi+70]
00416DC9 . E8 1B8E0200 call 0043FBE9
00416DCE . 8B40 04 mov eax, dword ptr [eax+4]
00416DD1 . 57 push edi ; /Arg3
00416DD2 . 68 547C4400 push 00447C54 ; |Arg2 = 00447C54 ASCII "username"
00416DD7 . 68 4C7C4400 push 00447C4C ; |Arg1 = 00447C4C ASCII "Option"
00416DDC . 8BC8 mov ecx, eax ; |
00416DDE . E8 23500200 call 0043BE06 ; \a2vmixer.0043BE06
00416DE3 . 8B7E 74 mov edi, dword ptr [esi+74]
00416DE6 . E8 FE8D0200 call 0043FBE9
00416DEB . 8B40 04 mov eax, dword ptr [eax+4]
00416DEE . 57 push edi ; /Arg3
00416DEF . 68 387C4400 push 00447C38 ; |Arg2 = 00447C38 ASCII "registration_code"
00416DF4 . 68 4C7C4400 push 00447C4C ; |Arg1 = 00447C4C ASCII "Option"
00416DF9 . 8BC8 mov ecx, eax ; |
00416DFB . E8 06500200 call 0043BE06 ; \a2vmixer.0043BE06
00416E00 . 5B pop ebx
00416E01 . 5F pop edi
00416E02 . 8BCE mov ecx, esi
00416E04 . 5E pop esi
00416E05 . 5D pop ebp
00416E06 . 83C4 0C add esp, 0C
00416E09 . E9 84F10100 jmp 00435F92
00416E0E > 6A 00 push 0
00416E10 . 6A 00 push 0
00416E12 . 68 64884400 push 00448864 ; ASCII "Registration failed!"
00416E17 . E8 E44E0200 call 0043BD00
00416E1C . 5B pop ebx
00416E1D . 5F pop edi
00416E1E . 5E pop esi
00416E1F . 5D pop ebp
00416E20 . 83C4 0C add esp, 0C
00416E23 . C3 retn ------------------------------------------------------------------------
【破解总结】 提供一组可用注册码:
用户名:foresee
注册码:37815888
------------------------------------------------------------------------
【版权声明】本文系作者原创,首次发贴都在看雪论坛, 转载请注明作者并保持文章出处的完整, 谢谢!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)