Flash5匯入保護SWF動畫的補丁製作
作者:maomao
軟體:Flash5
網上動畫標準制作軟體
下載:略
工具:Trw2000 v1.23
日期:2001-10-29
說明:現在很多人喜歡保護自己的Flash作品,但這種保護相當脆弱,現在網上流行的許多Flash破解工具,下載後破解即可。但總覺得不是“治本”的辦法,而且太麻煩,萬一在緊急的情況下找不到這些小小的工具,豈不是要讓大俠丟了臉面?本人不幸就遇到一次,不過,嘿嘿,我另有高招~~~拿Flash.exe主檔案開刀!
過程如下:
分別執行TRW2000和Flash5,按CTRL+N啟用TRW2000,輸入bpx messageboxa,F5返回Flash,在Flash選單中選擇“File->import...”引入加殼SWF動畫,立即被TRW攔截,下bd
*,pmodule後,Flash會彈出一說明框(告訴你無法引入此動畫),不要理它,按“OK”後又被TRW攔截,這時已經到了Flash領空:
0177:008E9564 FF15580DA300 CALL `USER32!MessageBoxA`
0177:008E956A 8BF8 MOV
EDI,EAX <=====游標停在這一行
0177:008E956C 892B MOV
[EBX],EBP
一直按住F10,經過大約3個RET,直到來到這裡:
0177:0064E510 PUSH EAX
0177:0064E511 CALL 004126D9
0177:0064E516 CMP [EBP+FFFFFB00],EBX
0177:0064E51C JG 0064E4E9
0177:0064E51E CMP DWORD [EBP+FFFFFBC8],BYTE +00
0177:0064E525 JZ NEAR 0064E600
0177:0064E52B CMP DWORD [EBP+FFFFFBCC],BYTE +00
0177:0064E532 JNZ 0064E573
0177:0064E534 CMP DWORD [009E4A78],BYTE +00
0177:0064E53B JNZ 0064E54B
0177:0064E53D PUSH BYTE -01
0177:0064E53F PUSH BYTE +10
0177:0064E541 PUSH DWORD 025A
0177:0064E546 CALL 007723CC
<=====這就是那個出錯的call
0177:0064E54B MOV BYTE [EBP-04],02 <=====游標停在這一行
0177:0064E54F CALL 0064E78C
0177:0064E554 MOV BYTE [EBP-04],00
0177:0064E558 CALL 0064E797
0177:0064E55D MOV DWORD [EBP-04],FFFFFFFF <=====被賦成這個值就玩完了!
0177:0064E564 CALL 0064E7B1
再往上看看,哪裡可以繞過出錯的call和玩完的賦值?關鍵在這幾個跳轉上:
0177:0064E51E CMP DWORD [EBP+FFFFFBC8],BYTE +00
0177:0064E525 JZ NEAR 0064E600
<=====值得懷疑
0177:0064E52B CMP DWORD [EBP+FFFFFBCC],BYTE +00
0177:0064E532 JNZ 0064E573
<=====也值得懷疑
0177:0064E534 CMP DWORD [009E4A78],BYTE +00
0177:0064E53B JNZ 0064E54B
<=====這個跳到over上
兩個值得懷疑的跳轉上都有標誌比較,用F9在0177:0064E532 JNZ 0064E573 設斷點,執行,重新匯入受保護的SWF,果然在這一行打往,並且不跳。下命令r
fl z後,用F5執行程式,警告框不見了!但新出來一個密碼輸入框!!!好傢伙,還有一手。
現在在第一個懷疑點0177:0064E525 JZ NEAR 0064E600設斷,按F5,再用Flash匯入入受保護的SWF,中斷後,發現也不跳!用r
fl z 修改ZF標誌位,再F5執行,嘿嘿嘿嘿,不要密碼成功匯入了那個該死的SWF!!!看來,只要修改這個jz就萬事大吉了。
原來 [EBP+FFFFFBC8]放置檔案匯入保護標誌,0表示沒有保護;[EBP+FFFFFBCC]放置密碼保護標誌,如果上面的標誌為0,則不比較密碼!
整理一下:
用Ultraedit查詢: 83 BD C8 F8 FF FF 00 0F 84 D5 00 00 00 ( CMP DWORD
[EBP+FFFFFBC8],BYTE+00
JZ
NEAR 0064E600)
改為: 83 BD C8 F8 FF FF 00 E9 D6 00
00 00 90 (CMP DWORD [EBP+FFFFFBC8],BYTE+00
Jmp 0064E600)
大功告成,下次再也不用去找什麼flash破解工具了!
收工~~~~~~