Melody V1.52破解

看雪資料發表於2003-07-02

【軟體名稱】:Melody V1.52

【軟體大小】:495 KB

【軟體類別】:國外軟體 / 共享版 / 媒體播放

【加入時間】:2003-07-01 15:32:34

【開 發 商】:http://www.lighttek.com/

【軟體簡介】:Melody是一個可以用來播放WAV、MPEG (MP3)、MIDI、MOD、IT*、XM*、S3*、ME*、MPP、MDZ檔案及音樂CD的多媒體播放程式。整體的操作介面非常類似檔案管理軟體,它是以目錄切換的方式來直接呈現/播放所支援的檔案型別(歌曲),所以在歌曲的播放控制上別有一種獨特的風格。

【作    者】:cyclotron

【破解過程】:用Fi2.45檢查,Delphi編寫,無殼。於是用W32Dasm反彙編後查詢錯誤資訊,找到關鍵點如下:

:004472DB 53                      push ebx
/* 在這裡設斷 */
:004472DC 56                      push esi
:004472DD 8BD8                    mov ebx, eax
:004472DF 33C0                    xor eax, eax
:004472E1 55                      push ebp
:004472E2 688B744400              push 0044748B
:004472E7 64FF30                  push dword ptr fs:[eax]
:004472EA 648920                  mov dword ptr fs:[eax], esp
:004472ED 8D55F4                  lea edx, dword ptr [ebp-0C]
:004472F0 8B83E0010000            mov eax, dword ptr [ebx+000001E0]
:004472F6 E80D6FFDFF              call 0041E208
/* 使用者名稱是否為空? */
:004472FB 837DF400                cmp dword ptr [ebp-0C], 00000000

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004472B9(C)
|
:004472FF 0F845B010000            je 00447460
:00447305 8D55F0                  lea edx, dword ptr [ebp-10]
:00447308 8B83DC010000            mov eax, dword ptr [ebx+000001DC]
:0044730E E8F56EFDFF              call 0041E208
/* 試煉碼是否為空? */
:00447313 837DF000                cmp dword ptr [ebp-10], 00000000
:00447317 0F8443010000            je 00447460
:0044731D 8D55F4                  lea edx, dword ptr [ebp-0C]
/* edx取得試煉碼地址 */
:00447320 8B83E0010000            mov eax, dword ptr [ebx+000001E0]
:00447326 E8DD6EFDFF              call 0041E208
/* 取試煉碼長度 */
:0044732B 8B45F4                  mov eax, dword ptr [ebp-0C]
:0044732E E865FAFBFF              call 00406D98
/* 將試煉碼轉為16進位制 */
:00447333 8945EC                  mov dword ptr [ebp-14], eax
:00447336 DB45EC                  fild dword ptr [ebp-14]
:00447339 E88AB6FBFF              call 004029C8
:0044733E 8945FC                  mov dword ptr [ebp-04], eax
/* 存入區域性變數[ebp-04] */
:00447341 8D55F8                  lea edx, dword ptr [ebp-08]
:00447344 8B83DC010000            mov eax, dword ptr [ebx+000001DC]
:0044734A E8B96EFDFF              call 0041E208
:0044734F 33F6                    xor esi, esi
:00447351 8B45F8                  mov eax, dword ptr [ebp-08]
/* eax取得使用者名稱地址 */
:00447354 E86BC8FBFF              call 00403BC4
/* 取使用者名稱長度 */
:00447359 85C0                    test eax, eax
/* 是否大於0? */
:0044735B 7E13                    jle 00447370
:0044735D BA01000000              mov edx, 00000001

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044736E(C)
|
:00447362 8B4DF8                  mov ecx, dword ptr [ebp-08]
:00447365 0FB64C11FF              movzx ecx, byte ptr [ecx+edx-01]
:0044736A 03F1                    add esi, ecx
:0044736C 42                      inc edx
:0044736D 48                      dec eax
:0044736E 75F2                    jne 00447362
/* esi取得使用者名稱各位的ASCII和 */

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044735B(C)
|
:00447370 8975EC                  mov dword ptr [ebp-14], esi
/* 存入區域性變數[ebp-14] */
:00447373 DB45EC                  fild dword ptr [ebp-14]
:00447376 E84DB6FBFF              call 004029C8
:0044737B 8BD0                    mov edx, eax
/* 取出前面的和送到edx */
:0044737D C1E007                  shl eax, 07
/* 邏輯左移7位 */
:00447380 03C2                    add eax, edx
/* 與原值相加 */
:00447382 8BF0                    mov esi, eax
/* 送esi */
:00447384 3B75FC                  cmp esi, dword ptr [ebp-04]
/* 關鍵比較 */
:00447387 0F85C9000000            jne 00447456
/* 這裡絕對不能跳 */
/* 下面的程式段處理註冊資訊在介面上的顯示 */
:0044738D B201                    mov dl, 01
:0044738F A128634400              mov eax, dword ptr [00446328]
:00447394 E88BF0FFFF              call 00446424
:00447399 8BF0                    mov esi, eax
:0044739B B101                    mov cl, 01

* Possible StringData Ref from Code Obj ->"\software\Lighttek\Melody"
                                 |
:0044739D BAA0744400              mov edx, 004474A0
:004473A2 8BC6                    mov eax, esi
:004473A4 E873F1FFFF              call 0044651C
:004473A9 8D55F4                  lea edx, dword ptr [ebp-0C]
:004473AC 8B83DC010000            mov eax, dword ptr [ebx+000001DC]
:004473B2 E8516EFDFF              call 0041E208
:004473B7 8B4DF4                  mov ecx, dword ptr [ebp-0C]

* Possible StringData Ref from Code Obj ->"username"
                                 |
:004473BA BAC4744400              mov edx, 004474C4
:004473BF 8BC6                    mov eax, esi
:004473C1 E81AF3FFFF              call 004466E0
:004473C6 8D55F4                  lea edx, dword ptr [ebp-0C]
:004473C9 8B83E0010000            mov eax, dword ptr [ebx+000001E0]
:004473CF E8346EFDFF              call 0041E208
:004473D4 8B45F4                  mov eax, dword ptr [ebp-0C]
:004473D7 E8BCF9FBFF              call 00406D98
:004473DC 8945EC                  mov dword ptr [ebp-14], eax
:004473DF DB45EC                  fild dword ptr [ebp-14]
:004473E2 83C4F8                  add esp, FFFFFFF8
:004473E5 DD1C24                  fstp qword ptr [esp]
:004473E8 9B                      wait

* Possible StringData Ref from Code Obj ->"usercode"
                                 |
:004473E9 BAD8744400              mov edx, 004474D8
:004473EE 8BC6                    mov eax, esi
:004473F0 E81BF4FFFF              call 00446810
:004473F5 8BC6                    mov eax, esi
:004473F7 E88CF0FFFF              call 00446488
:004473FC 8BC6                    mov eax, esi
:004473FE E831BAFBFF              call 00402E34
:00447403 8D55F4                  lea edx, dword ptr [ebp-0C]
:00447406 8B83DC010000            mov eax, dword ptr [ebx+000001DC]
:0044740C E8F76DFDFF              call 0041E208
:00447411 8B4DF4                  mov ecx, dword ptr [ebp-0C]
:00447414 8D45E8                  lea eax, dword ptr [ebp-18]

* Possible StringData Ref from Code Obj ->"Registered for "
                                 |
:00447417 BAEC744400              mov edx, 004474EC
:0044741C E8EFC7FBFF              call 00403C10
:00447421 8B55E8                  mov edx, dword ptr [ebp-18]
:00447424 A110FE4400              mov eax, dword ptr [0044FE10]
:00447429 8B00                    mov eax, dword ptr [eax]
:0044742B 8B80A8020000            mov eax, dword ptr [eax+000002A8]
:00447431 E8026EFDFF              call 0041E238
:00447436 A110FE4400              mov eax, dword ptr [0044FE10]
:0044743B 8B00                    mov eax, dword ptr [eax]
:0044743D 8B80A4020000            mov eax, dword ptr [eax+000002A4]
:00447443 33D2                    xor edx, edx
:00447445 E81A6DFDFF              call 0041E164
:0044744A A1B0074500              mov eax, dword ptr [004507B0]
:0044744F E81C49FEFF              call 0042BD70
:00447454 EB0A                    jmp 00447460

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00447387(C)
/* 注意這個關鍵跳轉 */
|

* Possible StringData Ref from Code Obj ->"Invalide registration name or "
                                       ->"code. Try again."
                                 |
:00447456 B804754400              mov eax, 00447504
:0044745B E8E000FFFF              call 00437540

【整    理】:
使用者名稱:cyclotron
註冊碼:127581

【註冊資訊儲存】:
HKEY_CURRENT_USER\Software\lighttek\Melody\usecode
HKEY_CURRENT_USER\Software\lighttek\Melody\usename

【Turbo C 序號產生器】:
#include "stdio.h"
#include "string.h"
void main()
{unsigned long regcode=0,i;
char regname[30];
printf("\t***************************************************\n\n");
printf("\t\tKeyGen for Melody V1.52\n\t\t\tProduced by cyclotron\n\n");
printf("\t***************************************************\n\n");
do
printf("\n\tPlease input your Regname:");
while(!strlen(gets(regname)));
for(i=0;regname[i];i++)
regcode+=regname[i];
regcode+=regcode<<7;
printf("\n\tYour Regcode is:\t%ld\n",regcode);
printf("\n\tThank you for your use!\n");
getchar();
}

                                              cyclotron
                                              2003.7.1
                                     特為紀念中國共產黨誕生82週年而作


相關文章