Soundnailsd的破解教程(一) (9千字)

看雪資料發表於2001-10-17

Soundnailsd的破解教程(一)

    這個軟體是peterchen大哥推薦的,其實早就搞定了,由於近來事比較多,還有一個
重要的原因,那就是俺比較的懶嘛,所以教程現在這才寫好....嘿嘿  *^_^*
    下載地址:http://www.esoftware.com.cn/file/photo/animator/2001092101.shtml     

簡介 :
    SWF 是 Macromedia Flash 的專屬檔案格式,它原是用來製作 Flash 動畫時所產生的動畫檔;
而 MP3 是檔案小、音極佳的多媒體音樂格式的代表。不過 MP3 並無法像 Flash 動畫或串流多媒體格式,
直接在網路上播放,所以常常都只是透過 Internet 來傳輸檔案,無法達到實時播放的功能,這是比較可惜的地方。
現在 Soundnails 能夠以簡單的步驟,將眾多 MP3 檔案輕易的批次轉換為 SWF 檔案,而且還能選擇不同樣板,輸
出制式化的 HTML 網頁,讓網友直接在網頁上播放音樂,這結合了 MP3 及 SWF 兩者的優點,表現優異當然是可想而
知了。使用 Soundnails 的好處,是它並不需要先行安裝 Macromedia Flash,而且要播放 SWF 檔案也不需要安裝其
它的音樂播放程式,只要選擇想要轉換的 MP3 檔案,然後 step by step 的跟著做,就可以輸出網頁 HTML 元件,
然後再上傳到 Web Server 中,網友就可以直接在網路上欣賞好聽的音樂了。Soundnails 在製作 SWF 時,會自動抓出
MP3 的 ID3 Tag 資訊,而呈現在所製作的 HTML 網頁中 (或者也能在 Soundnails 中編輯 MP3 檔案的 ID3 Tag);網
頁上的播放按鈕,內建有五組 Flash 動畫可選擇套用,而輸出網頁也有五套風格相異的網頁樣版可挑選。試用版有
30 天及一次處理只能 5 個 MP3 檔案等功能限制。


  先用wdasm32靜態分析一下看看,略去了很多無關的程式碼
有興趣的可以自己看一看.
  程式碼如下:

:                                :
:                                :
:00457572 C605D8F0470000          mov byte ptr [0047F0D8], 00
:00457579 B890084800              mov eax, 00480890
:0045757E E801040000              call 00457984    --------->
:00457583 8BF0                    mov esi, eax
:00457585 8D45C4                  lea eax, dword ptr [ebp-3C]
:00457588 E8F7030000              call 00457984  ---------->與上面的是同一個CALL.是個關鍵CALL
:0045758D 8BF8                    mov edi, eax
:0045758F 3BF7                    cmp esi, edi
:00457591 0F8DA1000000            jnl 00457638
:00457597 8BC7                    mov eax, edi
:00457599 48                      dec eax
:0045759A 7405                    je 004575A1------>注意這個跳轉和下面那個跳轉,
                                                  這個跳轉跳向 EASY Version                                               



:0045759C 48                      dec eax
:0045759D 741C                    je 004575BB--->這個跳轉跳向 PRO Version
:0045759F EB34                    jmp 004575D5

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045759A(C)
|
:004575A1 6A00                    push 00000000

* Possible StringData Ref from Code Obj ->"Registration"
                                  |
:004575A3 B9A8764500              mov ecx, 004576A8

* Possible StringData Ref from Code Obj ->"EASY Version registered. Restart " --->* *一個名字對應兩個註冊碼,
                                        ->"Program to activate Changes."            分別來對應 EASY Version 和下面
                                  |                                                的 PRO Version
                                  |
:004575A8 BAB8764500              mov edx, 004576B8
:004575AD A1E8F54700              mov eax, dword ptr [0047F5E8]
:004575B2 8B00                    mov eax, dword ptr [eax]
:004575B4 E8476FFFFF              call 0044E500
:004575B9 EB32                    jmp 004575ED

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045759D(C)
|
:004575BB 6A00                    push 00000000

* Possible StringData Ref from Code Obj ->"Registration"
                                  |
:004575BD B9A8764500              mov ecx, 004576A8

* Possible StringData Ref from Code Obj ->"PRO Version registered. Restart "--> * *
                                        ->"Program to activate Changes."
                                  |
:004575C2 BAF8764500              mov edx, 004576F8
:004575C7 A1E8F54700              mov eax, dword ptr [0047F5E8]
:004575CC 8B00                    mov eax, dword ptr [eax]
:004575CE E82D6FFFFF              call 0044E500
:004575D3 EB18                    jmp 004575ED
      :                            :
      :                            :(略去不少程式碼)

    大體分析一下上面的程式碼,可斷定:0045757E  call 00457984 裡面有註冊碼的演算法及比較過程,那我們
就來動態跟蹤分析一下這個call.用TRW2000.
  (無關的程式碼沒有作說明)

  程式碼如下:
0167:00457984  PUSH    EBP
0167:00457985  MOV      EBP,ESP
0167:00457987  ADD      ESP,BYTE -1C
0167:0045798A  PUSH    EBX
0167:0045798B  PUSH    ESI
0167:0045798C  PUSH    EDI
0167:0045798D  XOR      EDX,EDX
0167:0045798F  MOV      [EBP-14],EDX
0167:00457992  MOV      [EBP-10],EDX
0167:00457995  MOV      [EBP-0C],EDX
0167:00457998  MOV      EBX,EAX
0167:0045799A  XOR      EAX,EAX
0167:0045799C  PUSH    EBP
0167:0045799D  PUSH    DWORD 00457B88
0167:004579A2  PUSH    DWORD [FS:EAX]
0167:004579A5  MOV      [FS:EAX],ESP
0167:004579A8  LEA      EAX,[EBX+24]
0167:004579AB  MOV      EDX,00457BA0
0167:004579B0  CALL    00403BE0
0167:004579B5  XOR      ESI,ESI
0167:004579B7  CMP      DWORD [EBX],BYTE +00  ----->拿指向使用者名稱的指標與00比較
0167:004579BA  JZ      00457A1F              ----->為0則跳轉
0167:004579BC  CMP      DWORD [EBX+04],BYTE


宣告:該文觀點僅代表作者本人,轉載請註明來自看雪專欄
最新評論 (0)
登入後即可評論

相關文章