史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > Hacker/Cracker 及加解密技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-12-12, 03:44 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 Liatro SWF Decoder 4.5脫殼手記

Liatro SWF Decoder 4.5破解手記
研究目標: Liatro SWF Decoder v4.5
軟體類型: swf資源分析器 語言: ENGLISH
目的: 學習脫殼--順水來個爆破版
發佈日期: 11/30/03
CRACKER BY: NewHand[BCG]
保護方式: KEYFILE/Asprotect/Time&Function-LIMITS
難度: 幹完後感覺沒什麼(註冊算法除外)!
操作平台: WIN98
工具:Ollydbg1.09D、PEiD0.91、Import REConstructor1.6 FINAL
偵殼:用PEiD檢測到是ASProtect 1.2 / 1.2c-> Alexey Solodovnikov
明聲:只是希望交流學習,沒有任何其它意圖!廢話不多說了!

下面進行脫殼(這是我第一次脫ASProtect,激動…激動):
用OD載入原程序LSWFDec.exe,按「確定」、選「否」停在這:
00401000 > 68 01E04D00 PUSH LSWFDEC2.004DE001 ; 首先停在這
00401005 C3 RETN
00401006 A2 803447EE MOV BYTE PTR DS:[EE473480],AL
0040100B -70 E3 JO SHORT LSWFDEC2.00400FF0
0040100D C3 RETN

016B009D 3100 XOR DWORD PTR DS:[EAX],EAX ; 點擊執行停在這,熟悉吧?
016B009F EB 01 JMP SHORT 016B00A2
016B00A1 68 648F0500 PUSH 58F64
然後經過20次異常程序執行了,那就重來經過(19=20-1)次異常來到016C9123,按下「Shift+F9」停在016C9115,F7進行單步跟蹤
016C9115 8B6424 08 MOV ESP,DWORD PTR SS:[ESP+8] ; 堆棧的第2條句柄指示這,下斷點
016C9119 EB 0C JMP SHORT 016C9127
016C911B 33F6 XOR ESI,ESI
016C911D 64:FF36 PUSH DWORD PTR FS:[ESI]
016C9120 64:8926 MOV DWORD PTR FS:[ESI],ESP
016C9123 FF06 INC DWORD PTR DS:[ESI] ; 經過19次異常來到這,看看堆棧
016C9125 ^EB E8 JMP SHORT 016C910F
016C9127 03C1 ADD EAX,ECX
016C9129 BE 00000000 MOV ESI,0
016C912E 64:8F06 POP DWORD PTR FS:[ESI]
016C9131 5E POP ESI
016C9132 E8 00000000 CALL 016C9137 ; F7跟進去,繼續F7或F8
省略部分程式碼…
016C9163 E8 09000000 CALL 016C9171 ; F7跟進去,繼續F7或F8
016C9168 03C0 ADD EAX,EAX
016C916A E9 06000000 JMP 016C9175 ; 可以在這下斷
016C916F 33C4 XOR EAX,ESP
016C9171 83F0 81 XOR EAX,FFFFFF81
016C9174 C3 RETN ; 我們不妨在也這下斷點
省略部分程式碼…
016C91A9 48 DEC EAX
016C91AA 03C7 ADD EAX,EDI
016C91AC ^79 D2 JNS SHORT 016C9180 ; 看!往後跳的,在它下一條指令下斷吧!
016C91AE 40 INC EAX ; 下斷點,在這行F4
016C91AF 61 POPAD
016C91B0 C3 RETN ; 返回16C90F4

016C90F4 5B POP EBX ; 亮出基址(400000)
016C90F5 58 POP EAX
016C90F6 05 B999086E ADD EAX,6E0899B9 ; 入口的RAV(2EE41)
016C90FB 5C POP ESP
016C90FC 0BC9 OR ECX,ECX
016C90FE ^74 E3 JE SHORT 016C90E3
016C9100 8901 MOV DWORD PTR DS:[ECX],EAX
016C9102 03C3 ADD EAX,EBX ; 入口位址=基址+RAV=400000+2EE41
016C9104 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
016C9108 61 POPAD
016C9109 -FFE0 JMP EAX ; 這裡是Fly兄經常說的飛向光明之顛(入口),去入口dump吧
來了一堆沒技術的,接下來用Import REConstructor修復Dump文件,Pick原程序,輸入OEP(2EE41),點擊「IAT AutoSearch」,點擊「Get Imports」,發現有3個dll"say no",好像是kernel32、user32、comctl32還是comdlg32,那麼就用Trace1和plus》asprotect1.22進行修復,OK了就Fix它。執行修復後的文件,還行!原來註冊系統不在殼裡!
搜尋了一下字串參考,發現swfdec30.lic惹人注意(30很像使用30天的意思),跟了一下,果然就是它:
0041B0EB . C645 FC 04 MOV BYTE PTR SS:[EBP-4],4 ; 下面是啟動程序時首次檢測註冊文件
0041B0EF . 6A 00 PUSH 0 ; /Arg4 = 00000000
0041B0F1 . 6A 00 PUSH 0 ; |Arg3 = 00000000
0041B0F3 . 68 DC334A00 PUSH LSWFDEC.004A33DC ; |Arg2 = 004A33DC ASCII "swfdec30.lic"
0041B0F8 . 6A 00 PUSH 0 ; |Arg1 = 00000000
0041B0FA . 8D8D B8FAFFFF LEA ECX,DWORD PTR SS:[EBP-548] ; |
0041B100 . E8 4B8EFFFF CALL LSWFDEC.00413F50 ; \LSWFDEC.00413F50
0041B105 . 8985 B4FAFFFF MOV DWORD PTR SS:[EBP-54C],EAX
0041B10B . 8D8D B8FAFFFF LEA ECX,DWORD PTR SS:[EBP-548]
0041B111 . E8 0A88FFFF CALL LSWFDEC.00413920 ; 檢測註冊文件有效性的call
0041B116 . 85C0 TEST EAX,EAX ; eax為0則說明註冊文件無效
0041B118 . E9 A0000000 JMP LSWFDEC.0041B1BD ; (這裡修改過)跳過:要求註冊和提示你還有幾天命!的視窗
0041B11D 90 NOP

0041B9AC > 8D8D E0FAFFFF LEA ECX,DWORD PTR SS:[EBP-520]
0041B9B2 . E8 697FFFFF CALL LSWFDEC.00413920 ; 這裡是關於對話視窗檢測註冊文件
0041B9B7 . 85C0 TEST EAX,EAX
0041B9B9 . 90 NOP ; (這裡修改過)跳往Call 41BA0B(trial user)所以nop它
0041B9BA . 90 NOP
看到了吧!要做個爆破版就要搜尋有swfdec30.lic和CALL LSWFDEC.00413920的地方,然後按程序相反的走向修改CALL LSWFDEC.00413920後面的跳轉(參eax的值),因為程序在多處地方驗證註冊碼如:啟動、about、actions等。不要忘了驗證,結果把時間調到過期等都沒報警!誰知這個傢伙居然不能分析沈迪佳的《草薙的天空1》--由FLASH5製作,而且死得難看(沒法回應)失望中…,居然還在它的Help我的文件中說「Liatro SWF Decoder is able to extract all elements from any Macromedia Flash 3.0, 4.0, 5.0 or MX movie files. the elements are extracted according to the following rules」
另外想完美點--顯示你的大名,開啟你的windows目錄下的swfdec30.lic文件,會看到「UserName:
AuthCode:
Product:Liatro
」在UserName:後填上你的大名如:(UserName:NewHand[BCG])
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
教學 - Excel 2002 教學Flash (100課) superxboy 繪圖軟體應用技術文件 5 2007-04-15 11:44 PM


所有時間均為台北時間。現在的時間是 07:54 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2020, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1