史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 多媒體影音轉檔燒錄技術文件
忘記密碼?
論壇說明 標記討論區已讀

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

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

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

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-05-24, 01:21 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 金幣
預設 軟體 - 一個簡單的Armadillo脫殼破解

一個簡單的Armadillo脫殼破解

【文章標題】: FlashVideoStudio1.5破解版脫殼
【文章作者】: Winter[CZG][D.4s][BCG]
【作者郵信箱】: spsgeyro@gmail.com
【軟體名稱】: FlashVideoStudio1.5
【軟體大小】: 6.68 MB
【下載位址】: http://vip.hanzify.org/lordfox/MyHHOpus/todo.rar
【加殼方式】: Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks
【保護方式】: 註冊碼
【使用工具】: OD,PEID,IMPREC
【作者宣告】: 只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!

--------------------------------------------------------------------------------
【詳細程序】
很久沒教學脫殼了,今日在漢化新世紀論壇逛的時候發現這個軟體,遂跟著教學學脫。
由於是要漢化,但是破解文件本身又加了殼,所以先輸入破解後的註冊名和序列號,然後OD載入:

CODE:
00829000 > 60 PUSHAD
00829001 E8 00000000 CALL FVStudio.00829006
00829006 5D POP EBP
00829007 50 PUSH EAX
00829008 51 PUSH ECX
[Copy to clipboard]


忽略所有異常,下斷BP OpenMutexA,shift+F9,來到斷點處:

CODE:
7C817227 > 8BFF MOV EDI,EDI
7C817229 55 PUSH EBP
7C81722A 8BEC MOV EBP,ESP
7C81722C 51 PUSH ECX
[Copy to clipboard]



CODE:
0012F770 008017B8 /CALL 到 OpenMutexA
0012F774 001F0001 |Access = 1F0001
0012F778 00000000 |Inheritable = FALSE
0012F77C 0012FDB0 \MutexName = "C64:ABECE0C5A" //記下0012FDB0這個值
[Copy to clipboard]


ctrl+G,401000,輸入如下程式碼:

CODE:
00401000 60 PUSHAD
00401001 9C PUSHFD
00401002 68 B0FD1200 PUSH 12FDB0 ; ASCII "C64:ABECE0C5A"
00401007 33C0 XOR EAX,EAX
00401009 50 PUSH EAX
0040100A 50 PUSH EAX
0040100B E8 105A417C CALL kernel32.CreateMutexA
00401010 9D POPFD
00401011 61 POPAD
00401012 - E9 1062417C JMP kernel32.OpenMutexA
[Copy to clipboard]


然後在401000上點擊滑鼠右鍵,選項新增OEP,然後複製資料區二進制程式碼:

CODE:
60 9C 68 B0 FD 12 00 33 C0 50 50 E8 10 5A 41 7C 9D 61 E9 10 62 41 7C 90
[Copy to clipboard]


繼續F9,斷下後取消斷點,ctrl+G返回401000復原修改,然後下斷:BP GetModuleHandleA+05(這個程序BP GetModuleHandleA似乎斷下後返回不對)


CODE:
011EF168 /011EF7C0
011EF16C |7C822B47 返回到 kernel32.7C822B47 來自 kernel32.GetModuleHandleA
011EF170 |00000000
011EF174 |7C822B8F 返回到 kernel32.7C822B8F 來自 kernel32.7C822B40
[Copy to clipboard]



CODE:
011EF73C /011EF858
011EF740 |4C52D4A7 返回到 msctfime.4C52D4A7 來自 kernel32.GetModuleHandleA
011EF744 |011EF748 ASCII "I:\WINDOWS\system32\ntdll.dll"
[Copy to clipboard]



CODE:
0012F710 0012F778
0012F714 008008F3 返回到 FVStudio.008008F3 來自 kernel32.GetModuleHandleA
0012F718 00000000
0012F71C 7C82B3C8 返回到 kernel32.7C82B3C8 來自 ntdll.ZwOpenMutant
[Copy to clipboard]



CODE:
001294FC /0012EC44
00129500 |01217105 返回到 01217105 來自 kernel32.GetModuleHandleA
00129504 |0122BC1C ASCII "kernel32.dll"
00129508 |0122CEC4 ASCII "VirtualAlloc"
[Copy to clipboard]



CODE:
001294FC /0012EC44
00129500 |01217122 返回到 01217122 來自 kernel32.GetModuleHandleA
00129504 |0122BC1C ASCII "kernel32.dll"
00129508 |0122CEB8 ASCII "VirtualFree"
[Copy to clipboard]


然後shift+F9,一次中斷後取消斷點:

CODE:
00129260 /00129500
00129264 |01205FC9 返回到 01205FC9 來自 kernel32.GetModuleHandleA
00129268 |001293B4 ASCII "kernel32.dll"
[Copy to clipboard]


alt+f9返回:

CODE:
01205FC9 8B0D AC402301 MOV ECX,DWORD PTR DS:[12340AC]
01205FCF 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
01205FD2 A1 AC402301 MOV EAX,DWORD PTR DS:[12340AC]
01205FD7 391C06 CMP DWORD PTR DS:[ESI+EAX],EBX
01205FDA 75 16 JNZ SHORT 01205FF2
01205FDC 8D85 B4FEFFFF LEA EAX,DWORD PTR SS:[EBP-14C]
01205FE2 50 PUSH EAX
01205FE3 FF15 BC622201 CALL DWORD PTR DS:[12262BC] ; kernel32.LoadLibraryA
01205FE9 8B0D AC402301 MOV ECX,DWORD PTR DS:[12340AC]
01205FEF 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
01205FF2 A1 AC402301 MOV EAX,DWORD PTR DS:[12340AC]
01205FF7 391C06 CMP DWORD PTR DS:[ESI+EAX],EBX
01205FFA 0F84 2F010000 JE 0120612F //Magic Jump,改成JMP,然後去01206144下斷,F9執行
01206000 33C9 XOR ECX,ECX
01206002 8B07 MOV EAX,DWORD PTR DS:[EDI]
01206004 3918 CMP DWORD PTR DS:[EAX],EBX
01206006 74 06 JE SHORT 0120600E
01206008 41 INC ECX
[Copy to clipboard]



CODE:
01206144 EB 03 JMP SHORT 01206149 //在這裡下斷點,斷下以後取消斷點,復原magic jump的修改
01206146 D6 SALC
01206147 D6 SALC
[Copy to clipboard]


然後alt+M,在401000上下記憶體訪問斷點

CODE:
0121F968 8B12 MOV EDX,DWORD PTR DS:[EDX] //在這裡斷下,F8單步下去
0121F96A 8955 DC MOV DWORD PTR SS:[EBP-24],EDX
0121F96D 834D FC FF OR DWORD PTR SS:[EBP-4],FFFFFFFF
[Copy to clipboard]



CODE:
0121F9D9 8B50 60 MOV EDX,DWORD PTR DS:[EAX+60]
0121F9DC 3350 44 XOR EDX,DWORD PTR DS:[EAX+44]
0121F9DF 3350 1C XOR EDX,DWORD PTR DS:[EAX+1C]
0121F9E2 2BCA SUB ECX,EDX
0121F9E4 FFD1 CALL ECX ; FVStudio.004D17BF //這裡F7進去,就到OEp啦
[Copy to clipboard]


然後lordPE脫殼,IMPREC進行修復,OEP:000D17BF,自動搜尋,獲取輸入表以後剪下無效游標,修復。

為了完美一點可以用peditor移除.text1,.adata,.data1,.pdata四個區段,然後重建可執行文件。

執行以後跳出要求註冊的NAG,由於已經脫殼,只要把他跳過即可。
尋找ascII,雙按username,跟蹤來到:

CODE:
0041A236 E8 C572FEFF CALL dumped_.00401500 //F9以後斷下,注意堆疊變化
[Copy to clipboard]


當堆疊出現如下時,F8跟蹤:

CODE:
0012DD60 0012E658 ASCII "HDQ"
0012DD64 0012E658 ASCII "HDQ"
[Copy to clipboard]



CODE:
00419000 8BCE MOV ECX,ESI
00419002 E8 295C0000 CALL dumped_.0041EC30
00419007 E8 F484FEFF CALL dumped_.00401500
0041900C 84C0 TEST AL,AL
0041900E 6A 00 PUSH 0
00419010 6A 32 PUSH 32
00419012 74 0B JE SHORT dumped_.0041901F //這裡改成JMP後啟動無NAG了
00419014 8B4E 1C MOV ECX,DWORD PTR DS:[ESI+1C]
00419017 68 83000000 PUSH 83
0041901C 51 PUSH ECX
0041901D EB 09 JMP SHORT dumped_.00419028
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

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

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


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


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


SEO by vBSEO 3.6.1