【原創】Audio To Video Mixer 3.0簡單演算法分析 發帖人:zmw1224
【破解作者】 zmw1224[CZG][DFCG]
【作者郵箱】 zmw1224@yahoo.com.cn
【使用工具】 OD
【破解平臺】 win2003
【軟體名稱】 Audio To Video Mixer 3.0
【下載地址】 http://www.onlinedown.net/soft/39614.htm
【軟體簡介】 Audio to Video Mixer是一款影片編輯工具,用於將音訊檔案混合入影片中。它能夠將你的家庭影片的原音消除,加入背景音樂,解說或更多的音軌。
【軟體大小】 697KB
【加殼方式】 無
【破解宣告】 本筆記只用於學習交流, 初學Crack,只是感興趣技術,沒有其他目的, 如有不妥之處, 希望作者諒解.
--------------------------------------------------------------------------------
【破解內容】
查殼無,OD載入,查詢字串,快速的上下翻了下,看見了重要資訊--------> "Please input correct User Name!"
雙擊來到下面:
輸入相關資訊:
使用者名稱:zmw1224
註冊碼:123567890
確定後馬上被斷:
004169F3 . 55 push ebp ;在這下斷
004169F4 . 56 push esi
004169F5 . 57 push edi
004169F6 . BF 01000000 mov edi,1
004169FB . 57 push edi
004169FC . 8BF1 mov esi,ecx
004169FE . E8 BDB40100 call a2vmixer.00431EC0
00416A03 . 8B46 70 mov eax,dword ptr ds:[esi+70]
00416A06 . 8B68 F4 mov ebp,dword ptr ds:[eax-C]
00416A09 . 83FD 02 cmp ebp,2 ; 使用者名稱必須大於2位
00416A0C . 7D 15 jge short a2vmixer.00416A23
00416A0E . 6A 00 push 0
00416A10 . 6A 00 push 0
00416A12 . 68 DC874400 push a2vmixer.004487DC ; ASCII "Please input correct User Name!"
00416A17 . E8 A4510200 call a2vmixer.0043BBC0
00416A1C . 5F pop edi
00416A1D . 5E pop esi
00416A1E . 5D pop ebp
00416A1F . 83C4 0C add esp,0C
00416A22 . C3 retn
00416A23 > 8B4E 74 mov ecx,dword ptr ds:[esi+74]
00416A26 . 8379 F4 08 cmp dword ptr ds:[ecx-C],8 ; 註冊碼必須大於8位(其實註冊判斷只是前5位起做用,後面的N位無關緊要隨意輸,這是分析完註冊演算法後得出的結果。)
00416A2A . 7D 15 jge short a2vmixer.00416A41
00416A2C . 6A 00 push 0
00416A2E . 6A 00 push 0
00416A30 . 68 B4874400 push a2vmixer.004487B4 ; ASCII "Please input correct Registration Code!"
00416A35 . E8 86510200 call a2vmixer.0043BBC0
00416A3A . 5F pop edi
00416A3B . 5E pop esi
00416A3C . 5D pop ebp
00416A3D . 83C4 0C add esp,0C
00416A40 . C3 retn
00416A41 > 8B46 70 mov eax,dword ptr ds:[esi+70]
00416A44 . 8B48 F4 mov ecx,dword ptr ds:[eax-C]
00416A47 . 85C9 test ecx,ecx
00416A49 . 7D 0A jge short a2vmixer.00416A55
00416A4B . 68 57000780 push 80070057
00416A50 . E8 ABA8FEFF call a2vmixer.00401300
00416A55 > 8A10 mov dl,byte ptr ds:[eax]
00416A57 . 8B46 70 mov eax,dword ptr ds:[esi+70]
00416A5A . 3978 F4 cmp dword ptr ds:[eax-C],edi
00416A5D . 7D 0A jge short a2vmixer.00416A69
00416A5F . 68 57000780 push 80070057
00416A64 . E8 97A8FEFF call a2vmixer.00401300
00416A69 > 8A40 01 mov al,byte ptr ds:[eax+1]
00416A6C . 884424 0E mov byte ptr ss:[esp+E],al
00416A70 . 8B46 70 mov eax,dword ptr ds:[esi+70]
00416A73 . 8B48 F4 mov ecx,dword ptr ds:[eax-C]
00416A76 . 85C9 test ecx,ecx
00416A78 . 7D 0A jge short a2vmixer.00416A84
00416A7A . 68 57000780 push 80070057
00416A7F . E8 7CA8FEFF call a2vmixer.00401300
00416A84 > 8B4E 70 mov ecx,dword ptr ds:[esi+70]
00416A87 . 53 push ebx
00416A88 . 8A18 mov bl,byte ptr ds:[eax]
00416A8A . 3979 F4 cmp dword ptr ds:[ecx-C],edi
00416A8D . 7D 0A jge short a2vmixer.00416A99
00416A8F . 68 57000780 push 80070057
00416A94 . E8 67A8FEFF call a2vmixer.00401300
00416A99 > 0FB6C2 movzx eax,dl ; 第一個字元(z)送到EAX裡。
00416A9C . 83C8 41 or eax,41 ; EAX=EAX or 0x41
00416A9F . 99 cdq
00416AA0 . BF 0A000000 mov edi,0A
00416AA5 . F7FF idiv edi ; EAX=EAX/EDI(0A),餘數在EDX裡,EDX=3
00416AA7 . 0FB64424 12 movzx eax,byte ptr ss:[esp+12] ; 第二個字元(m)送到EAX裡
00416AAC . 83C8 32 or eax,32 ; EAX=EAX or 0x32
00416AAF . 885424 16 mov byte ptr ss:[esp+16],dl ; 把第一次算的餘數先儲存起來。
00416AB3 . 99 cdq
00416AB4 . F7FF idiv edi ; (EDI裡的值一直沒變,一直都是除以A)EAX=EAX/EDI(0A),餘數在EDX裡,EDX=7
00416AB6 . 0FB6C3 movzx eax,bl ; 再次把第一個字元(z)送到EAX裡,EAX=7A
00416AB9 . 83C8 56 or eax,56 ; EAX=EAX or 0x56
00416ABC . 885424 12 mov byte ptr ss:[esp+12],dl ; 把第二次算的餘數先儲存起來。
00416AC0 . 99 cdq
00416AC1 . F7FF idiv edi ; EAX=EAX/EDI(0A),餘數在EDX裡,EDX=6
00416AC3 . 0FB641 01 movzx eax,byte ptr ds:[ecx+1] ; 再次把第二個字元(m)送到EAX裡,EAX=6D
00416AC7 . 83C8 4D or eax,4D ; EAX=EAX or 0x4D
00416ACA . 8BCF mov ecx,edi
00416ACC . 885424 17 mov byte ptr ss:[esp+17],dl ; 把第三次算的餘數先儲存起來。
00416AD0 . 99 cdq
00416AD1 . F7F9 idiv ecx ; EAX=EAX/ECX(0A),餘數在EDX裡,EDX=9
00416AD3 . 33C0 xor eax,eax ; EAX清0
00416AD5 . 33C9 xor ecx,ecx ; ECX清0
00416AD7 . 85ED test ebp,ebp
00416AD9 . 885424 18 mov byte ptr ss:[esp+18],dl ; 把第四次算的餘數先儲存起來。(四次的餘數,分別為3、7、6、9)
00416ADD . 7E 20 jle short a2vmixer.00416AFF
00416ADF . 90 nop
00416AE0 > 85C9 test ecx,ecx
00416AE2 . 0F8C D2000000 jl a2vmixer.00416BBA
00416AE8 . 8B7E 70 mov edi,dword ptr ds:[esi+70]
00416AEB . 3B4F F4 cmp ecx,dword ptr ds:[edi-C]
00416AEE . 0F8F C6000000 jg a2vmixer.00416BBA
00416AF4 . 0FB6140F movzx edx,byte ptr ds:[edi+ecx] ; 這部分是累加用名用的ASCii值
00416AF8 . 03C2 add eax,edx
00416AFA . 41 inc ecx ; 即zmw1224---->EAX=0x227
00416AFB . 3BCD cmp ecx,ebp
00416AFD .^ 7C E1 jl short a2vmixer.00416AE0
00416AFF > 8B4E 74 mov ecx,dword ptr ds:[esi+74] ; 假註冊碼送到ECX裡,ECX=123456789
00416B02 . 8B51 F4 mov edx,dword ptr ds:[ecx-C]
00416B05 . 85D2 test edx,edx
00416B07 . 7D 0A jge short a2vmixer.00416B13
00416B09 . 68 57000780 push 80070057
00416B0E . E8 EDA7FEFF call a2vmixer.00401300
00416B13 > 8A11 mov dl,byte ptr ds:[ecx]
00416B15 . 8B4E 74 mov ecx,dword ptr ds:[esi+74]
00416B18 . 8379 F4 01 cmp dword ptr ds:[ecx-C],1
00416B1C . 885424 19 mov byte ptr ss:[esp+19],dl
00416B20 . 7D 0A jge short a2vmixer.00416B2C
00416B22 . 68 57000780 push 80070057
00416B27 . E8 D4A7FEFF call a2vmixer.00401300
00416B2C > 8A49 01 mov cl,byte ptr ds:[ecx+1]
00416B2F . 8B7E 74 mov edi,dword ptr ds:[esi+74]
00416B32 . 884C24 13 mov byte ptr ss:[esp+13],cl
00416B36 . 837F F4 02 cmp dword ptr ds:[edi-C],2
00416B3A . 7D 0A jge short a2vmixer.00416B46
00416B3C . 68 57000780 push 80070057
00416B41 . E8 BAA7FEFF call a2vmixer.00401300
00416B46 > 8A4F 02 mov cl,byte ptr ds:[edi+2]
00416B49 . 8B7E 74 mov edi,dword ptr ds:[esi+74]
00416B4C . 884C24 14 mov byte ptr ss:[esp+14],cl
00416B50 . 837F F4 03 cmp dword ptr ds:[edi-C],3
00416B54 . 7D 0A jge short a2vmixer.00416B60
00416B56 . 68 57000780 push 80070057
00416B5B . E8 A0A7FEFF call a2vmixer.00401300
00416B60 > 8A4F 03 mov cl,byte ptr ds:[edi+3]
00416B63 . 8B7E 74 mov edi,dword ptr ds:[esi+74]
00416B66 . 884C24 15 mov byte ptr ss:[esp+15],cl
00416B6A . 837F F4 04 cmp dword ptr ds:[edi-C],4
00416B6E . 7D 0A jge short a2vmixer.00416B7A
00416B70 . 68 57000780 push 80070057
00416B75 . E8 86A7FEFF call a2vmixer.00401300
00416B7A > 8A4F 04 mov cl,byte ptr ds:[edi+4]
00416B7D . 8B7E 74 mov edi,dword ptr ds:[esi+74]
00416B80 . 837F F4 05 cmp dword ptr ds:[edi-C],5
00416B84 . 7D 0A jge short a2vmixer.00416B90
00416B86 . 68 57000780 push 80070057
00416B8B . E8 70A7FEFF call a2vmixer.00401300
00416B90 > 8A5F 05 mov bl,byte ptr ds:[edi+5]
00416B93 . 8B7E 74 mov edi,dword ptr ds:[esi+74]
00416B96 . 885C24 1A mov byte ptr ss:[esp+1A],bl
00416B9A . 837F F4 06 cmp dword ptr ds:[edi-C],6
00416B9E . 7D 0A jge short a2vmixer.00416BAA
00416BA0 . 68 57000780 push 80070057
00416BA5 . E8 56A7FEFF call a2vmixer.00401300
00416BAA > 8A5F 06 mov bl,byte ptr ds:[edi+6]
00416BAD . 8B7E 74 mov edi,dword ptr ds:[esi+74]
00416BB0 . 885C24 1B mov byte ptr ss:[esp+1B],bl
00416BB4 . 837F F4 07 cmp dword ptr ds:[edi-C],7
00416BB8 . 7D 0A jge short a2vmixer.00416BC4
00416BBA > 68 57000780 push 80070057
00416BBF . E8 3CA7FEFF call a2vmixer.00401300
00416BC4 > 8A5F 07 mov bl,byte ptr ds:[edi+7]
00416BC7 . 0FB67C24 16 movzx edi,byte ptr ss:[esp+16]
00416BCC . 0FB6D2 movzx edx,dl
00416BCF . 83EA 30 sub edx,30
00416BD2 . 3BFA cmp edi,edx
00416BD4 . 75 48 jnz short a2vmixer.00416C1E
00416BD6 . 0FB65424 13 movzx edx,byte ptr ss:[esp+13]
00416BDB . 0FB67C24 12 movzx edi,byte ptr ss:[esp+12]
00416BE0 . 83EA 30 sub edx,30
00416BE3 . 3BFA cmp edi,edx
00416BE5 . 75 37 jnz short a2vmixer.00416C1E ; 這部分的四個跳轉JNZ是判斷註冊碼的前四前是否是3、7、6、9
00416BE7 . 0FB65424 14 movzx edx,byte ptr ss:[esp+14]
00416BEC . 0FB67C24 17 movzx edi,byte ptr ss:[esp+17]
00416BF1 . 83EA 30 sub edx,30
00416BF4 . 3BFA cmp edi,edx
00416BF6 . 75 26 jnz short a2vmixer.00416C1E
00416BF8 . 0FB65424 15 movzx edx,byte ptr ss:[esp+15]
00416BFD . 0FB67C24 18 movzx edi,byte ptr ss:[esp+18]
00416C02 . 83EA 30 sub edx,30
00416C05 . 3BFA cmp edi,edx
00416C07 . 75 15 jnz short a2vmixer.00416C1E
00416C09 . 99 cdq
00416C0A . BF 0A000000 mov edi,0A ; 如果上面四個餘數正確的話,我們就快成功了,繼續往下走吧!
00416C0F . F7FF idiv edi ; 這裡是使用者名稱的ASCii累加值除以A,EAX=0x227/A,餘數在EDX裡,EDX=1
00416C11 . 0FB6C2 movzx eax,dl ; 餘數1,送到EAX裡,EAX=1
00416C14 . 0FB6D1 movzx edx,cl ; 判斷我們假註冊碼的第五位數,是否為餘數1,不是就OVER了
00416C17 . 83EA 30 sub edx,30
00416C1A . 3BC2 cmp eax,edx
00416C1C . 74 3A je short a2vmixer.00416C58 ; 相等的話就註冊成功了! 雖然要滿足8位註冊碼,但只有前5位起作用,後面N位無關緊要。
00416C1E > 807C24 19 31 cmp byte ptr ss:[esp+19],31
00416C23 . 0F85 85000000 jnz a2vmixer.00416CAE
00416C29 . 807C24 13 32 cmp byte ptr ss:[esp+13],32
00416C2E . 75 7E jnz short a2vmixer.00416CAE
00416C30 . 8A5424 14 mov dl,byte ptr ss:[esp+14]
00416C34 . B0 38 mov al,38
00416C36 . 3AD0 cmp dl,al
00416C38 . 75 74 jnz short a2vmixer.00416CAE
00416C3A . 807C24 15 30 cmp byte ptr ss:[esp+15],30
00416C3F . 75 6D jnz short a2vmixer.00416CAE
00416C41 . 80F9 37 cmp cl,37
00416C44 . 75 68 jnz short a2vmixer.00416CAE
00416C46 . 384424 1A cmp byte ptr ss:[esp+1A],al
00416C4A . 75 62 jnz short a2vmixer.00416CAE
00416C4C . 807C24 1B 33 cmp byte ptr ss:[esp+1B],33
00416C51 . 75 5B jnz short a2vmixer.00416CAE
00416C53 . 80FB 35 cmp bl,35
00416C56 . 75 56 jnz short a2vmixer.00416CAE
00416C58 > 6A 00 push 0
00416C5A . 6A 00 push 0 ; 註冊成功對話方塊,然後把註冊碼寫到登錄檔裡。
00416C5C . 68 98874400 push a2vmixer.00448798 ; ASCII "Registration has succeeded!"
00416C61 . E8 5A4F0200 call a2vmixer.0043BBC0
00416C66 . 8B7E 70 mov edi,dword ptr ds:[esi+70]
00416C69 . E8 3B8E0200 call a2vmixer.0043FAA9
00416C6E . 8B40 04 mov eax,dword ptr ds:[eax+4]
00416C71 . 57 push edi ; /Arg3
00416C72 . 68 547C4400 push a2vmixer.00447C54 ; |Arg2 = 00447C54 ASCII "username"
00416C77 . 68 4C7C4400 push a2vmixer.00447C4C ; |Arg1 = 00447C4C ASCII "Option"
00416C7C . 8BC8 mov ecx,eax ; |
00416C7E . E8 43500200 call a2vmixer.0043BCC6 ; \a2vmixer.0043BCC6
00416C83 . 8B7E 74 mov edi,dword ptr ds:[esi+74]
00416C86 . E8 1E8E0200 call a2vmixer.0043FAA9
00416C8B . 8B40 04 mov eax,dword ptr ds:[eax+4]
00416C8E . 57 push edi ; /Arg3
00416C8F . 68 387C4400 push a2vmixer.00447C38 ; |Arg2 = 00447C38 ASCII "registration_code"
00416C94 . 68 4C7C4400 push a2vmixer.00447C4C ; |Arg1 = 00447C4C ASCII "Option"
00416C99 . 8BC8 mov ecx,eax ; |
00416C9B . E8 26500200 call a2vmixer.0043BCC6 ; \a2vmixer.0043BCC6
00416CA0 . 5B pop ebx
00416CA1 . 5F pop edi
00416CA2 . 8BCE mov ecx,esi
00416CA4 . 5E pop esi
00416CA5 . 5D pop ebp
00416CA6 . 83C4 0C add esp,0C
00416CA9 . E9 A4F10100 jmp a2vmixer.00435E52
00416CAE > 6A 00 push 0
00416CB0 . 6A 00 push 0 ; 錯誤對話方塊!
00416CB2 . 68 80874400 push a2vmixer.00448780 ; ASCII "Registration failed!"
00416CB7 . E8 044F0200 call a2vmixer.0043BBC0
00416CBC . 5B pop ebx
00416CBD . 5F pop edi
00416CBE . 5E pop esi
00416CBF . 5D pop ebp
00416CC0 . 83C4 0C add esp,0C
00416CC3 . C3 retn
--------------------------------------------------------------------------------
【破解總結】
註冊碼和使用者名稱有關,註冊碼必須不小於8位,8位裡只有前5位起作用,後面N位無關緊要!
--------------------------------------------------------------------------------
【演算法序號產生器】
#include <stdio.h>
int main()
{ int i,n,n1,n2,n3,n4,n5=0;
char name[255]={0};
printf("Crack by zmw1224[CZG][DFCG]\n");
printf("___________________________\n");
printf("請輸入你的使用者名稱(使用者名稱大於2位):");
scanf("%s",&name);
n=strlen(name);
for (i=0;i<n;i++)
n5+=name[i];
n5%=0xA;
n1=name[0]|0x41;
n1%=0xA;
n2=name[1]|0x32;
n2%=0xA;
n3=name[0]|0x56;
n3%=0xA;
n4=name[1]|0x4D;
n4%=0xA;
printf("你的註冊碼是:%d%d%d%d%d888",n1,n2,n3,n4,n5);
return 0;
}
--------------------------------------------------------------------------------
【使用者名稱、密碼】
使用者名稱:zmw1224
註冊碼:37691888
--------------------------------------------------------------------------------
【版權宣告】 本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝!
相關文章
- Easy Audio Mixer Mac(音訊混音器)2022-02-10Mac音訊
- 【原創】簡單替換加密2015-11-15加密
- [原創]簡單演算法――函式影像大師V
4.52015-11-15演算法函式
- [原創]破解-分析Crackme演算法2009-06-13演算法
- audio和video元素2015-12-22IDE
- 原創-XNview v1.65演算法分析2015-11-15View演算法
- 分析原始碼:istio mixer2018-12-21原始碼
- Native Audio and Native Video2019-02-16IDE
- Teleport
pro 演算法簡單分析2004-07-15演算法
- 【原創】TextPad 4.7.3序列號演算法分析2015-11-15演算法
- HTML5播放video或者audio2017-11-21HTMLIDE
- 簡單演算法――古今大戰80分 V3.0 Beta2015-11-15演算法
- 怎麼查紅網微博貼吧發帖人IP地址找到發帖人詳細資訊2017-12-13
- 怎麼查發帖人IP地址,透過帖子怎麼找到發帖人詳細資訊!!2015-02-07
- 【原創】Ubuntu安裝和簡單使用初感2020-04-05Ubuntu
- 怎麼防止機器人發帖2017-06-12機器人
- HTML5 Audio & Video 屬性解析2019-02-16HTMLIDE
- HTML5 video audio 元素詳解2018-03-09HTMLIDE
- 【原創】FileRecoveryAngel 演算法分析+序號產生器2015-11-15演算法
- [原創]一個佇列的簡單Java實現2008-03-25佇列Java
- Istio Mixer Adapter開發 (四)Mixer基本概念與元件2019-02-21APT元件
- 本人天涯被造謠了,怎麼透過帖子查到發帖人IP詳細地址找到發帖人2015-02-07
- [原創]Focus
Magic V3.01 註冊演算法分析2015-11-15演算法
- DeTitle V1.33簡單演算法分析2003-08-06演算法
- Disk
Chief 1.2 簡單註冊演算法分析2015-11-15演算法
- Source Insight 3.5 演算法簡單分析2015-11-15演算法
- [原創視訊]PHP在netbeans中的簡單使用2009-12-04PHPBean
- 多頻段調音臺:Blue Cat Audio Blue Cats MB-7 Mixer for mac2024-01-29Mac
- 簡單演算法---A Speeder
V2.5破解的簡要分析!2015-11-15演算法
- WEB3.0智慧合約量化跟單機器人系統技術開發(程式碼分析)2023-03-31Web機器人
- 青少兒發育分析和身高預測註冊演算法(簡單)2015-11-15演算法
- Istio Mixer Adapter開發 (三)自定義Mixer Grpc Adapter部署2019-02-20APTRPC
- html5聲頻audio和視訊video2017-01-10HTMLIDE
- [原創]簡單分析暴風影音讀取m3u格式檔案漏洞(0day)2010-05-09
- [原創] 研發人員績效管理之KPI設定2019-04-09KPI
- 【原創】一個彩票軟體演算法分析過程(詳細)2015-11-15演算法
- HTML5的video事件簡單介紹2017-02-23HTMLIDE事件
- [轉帖]【全網首發】一些可以顯著提高 Java 啟動速度方法原創2024-05-18Java