史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > Hacker/Cracker 及加解密技術文件
忘記密碼?
論壇說明

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

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

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

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-05-28, 05:06 PM   #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 金幣
預設 軟體 - BLocalize脫殼未破解

【文章標題】: *BLocalize脫殼未破解
【文章作者】: Winter[CZG][D.4s][BCG]
【軟件名稱】: *BLocalize
【下載地址】: 大陸大陸國產軟件,不便公佈
【加殼方式】: Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks
【使用工具】: OD,ArmInline,ArmadilloFindProtected,Peid,ImpRec,lordpe,peditor
【操作平台】: Win2003
【軟件介紹】: 是個漢化工具
【作者聲明】: 只是學習脫Armadillo以及ArmInline使用,沒有其他目的。失誤之處敬請諸位大俠賜教!
--------------------------------------------------------------------------------
【詳細過程】
脫殼參考了fly大俠的"ArmInline——Armadillo客戶版Code Splicing+Import Table Elimination的簡便修復方法"以及cyto大俠的"[Armadillo][Import Table Elimination+Code Splicing]WebCrypt Pro 2000 v5 "在這裡向他們致敬。


引用: !- Protected Armadillo
<Protection Options>
Debug-Blocker
Enable Import Table Elimination
Enable Strategic Code Splicing
Enable Nanomites Processing
<Backup Key Options>
Fixed Backup Keys
<Compression Options>
Better/Slower Compression


【尋找OEP】
OD載入,停在這裡:
00A6AC43 >/$ 55 PUSH EBP
00A6AC44 |. 8BEC MOV EBP,ESP
00A6AC46 |. 6A FF PUSH -1
00A6AC48 |. 68 903FA900 PUSH VBLocali.00A93F90
00A6AC4D |. 68 80A9A600 PUSH VBLocali.00A6A980 ; SE 處理程式安裝

下斷:bp OpenMutexA,F9一次,關注一下堆疊:
0012F7A4 0012FDD8 ASCII "CE4:AC4137318"

然後ctrl+G來到401000,寫入如下代碼:
00401000 60 PUSHAD //這裡新增EIP
00401001 9C PUSHFD
00401002 68 D8FD1200 PUSH 12FDD8 ; //這裡是堆疊看到的 ASCII "CE4:AC4137318"
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
00401017 90 NOP

二進制代碼:60 9C 68 D8 FD 12 00 33 C0 50 50 E8 10 5A 41 7C 9D 61 E9 10 62 41 7C 90

F9一次斷下後取消中斷點,下斷bp GetModuleHandleA+5,然後觀察堆疊:
0012EF2C /0012EF64
0012EF30 |773D7FF9 返回到 773D7FF9 來自 kernel32.GetModuleHandleA
0012EF34 |77372E84 ASCII "kernel32.dll"

0012EF70 /0012EF90
0012EF74 |773D5246 返回到 773D5246 來自 kernel32.GetModuleHandleA
0012EF78 |77372E84 ASCII "kernel32.dll"
0012EF7C |7C8284FF kernel32.GetProcessHeap

0012F738 /0012F7A0
0012F73C |00A558F3 返回到 VBLocali.00A558F3 來自 kernel32.GetModuleHandleA
0012F740 |00000000
0012F744 |7C82B3C8 返回到 kernel32.7C82B3C8 來自 ntdll.ZwOpenMutant

00129524 /0012EC6C
00129528 |01317105 返回到 01317105 來自 kernel32.GetModuleHandleA
0012952C |0132BC1C ASCII "kernel32.dll"
00129530 |0132CEC4 ASCII "VirtualAlloc"

00129524 /0012EC6C
00129528 |01317122 返回到 01317122 來自 kernel32.GetModuleHandleA
0012952C |0132BC1C ASCII "kernel32.dll"
00129530 |0132CEB8 ASCII "VirtualFree" //到這裡注意,shift+F9經過一次異常

00129288 /00129528
0012928C |01305FC9 返回到 01305FC9 來自 kernel32.GetModuleHandleA
00129290 |001293DC ASCII "kernel32.dll" //取消中斷點,alt+F9返回

01305FE3 FF15 BC623201 CALL DWORD PTR DS:[13262BC] ; kernel32.LoadLibraryA
01305FE9 8B0D AC403301 MOV ECX,DWORD PTR DS:[13340AC]
01305FEF 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
01305FF2 A1 AC403301 MOV EAX,DWORD PTR DS:[13340AC]
01305FF7 391C06 CMP DWORD PTR DS:[ESI+EAX],EBX
01305FFA 0F84 2F010000 JE 0130612F //Magic Jump ,改成JMP,然後往下找

01306144 /EB 03 JMP SHORT 01306149 //在這裡下個中斷點,執行斷下後撤消剛剛的修改
01306146 |D6 SALC
01306147 |D6 SALC

繼續下斷:bp GetCurrentThreadId
00128DE4 76084546 /CALL 到 GetCurrentThreadId 來自 MSASN1.76084540

00128DF4 779F8D5A /CALL 到 GetCurrentThreadId 來自 WININET.779F8D54

00128E20 71B110B6 /CALL 到 GetCurrentThreadId 來自 WSOCK32.71B110B0

00128DD4 755BACDC /CALL 到 GetCurrentThreadId 來自 MFC42.755BACD6

0012F720 013063D4 /CALL 到 GetCurrentThreadId 來自 013063CE //這樣可以取消中斷點返回了

013063D4 50 PUSH EAX //回到這裡
013063D5 FF75 FC PUSH DWORD PTR SS:[EBP-4]
013063D8 E8 05000000 CALL 013063E2
013063DD 83C4 0C ADD ESP,0C
013063E0 C9 LEAVE
013063E1 C3 RETN //單步開始跟

0131F9D9 8B50 60 MOV EDX,DWORD PTR DS:[EAX+60]
0131F9DC 3350 44 XOR EDX,DWORD PTR DS:[EAX+44]
0131F9DF 3350 1C XOR EDX,DWORD PTR DS:[EAX+1C]
0131F9E2 2BCA SUB ECX,EDX
0131F9E4 FFD1 CALL ECX //跟到這裡,F7進去,到了OEP
0131F9E6 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX

00468B8A 55 PUSH EBP //就是這裡了
00468B8B 8BEC MOV EBP,ESP
00468B8D 6A FF PUSH -1
00468B8F 68 40A75100 PUSH VBLocali.0051A740

【修復Strategic Code Splicing】
如果你使用老版本的Arminline,接下來的東西要自己找,新版的會自動找:)
首先打開OD表表菜單,附加工作行程,找到這個:未命名的視窗, 條目 32
工作行程=00000A94
名稱=*BLocalize
記下ID,alt+M打開記憶體視窗,找到401000那行,記下大小10E000,打開ArmInline,選擇工作行程並填入剛剛得到的訊息。
http://bbs.pediy.com/upload/2006/8/image/1.jpg_883.jpg
回到OD,ctrl+B,填入E9,勾選尋找,找到這裡:
0040100F - E9 ECEFBD03 JMP 03FE0000 //注意,這個數位每次都在變
仍舊alt+M打開記憶體視窗,找到這個段以及它的大小,填入視窗:
AMEMORY, 條目 69
地址=03FE0000
大小=00020000 (131072.)
屬主= 03FE0000 (自身)
區段=
類型=Priv 00021020
訪問=R E
初始訪問=RWE

點擊"Remove Splice",修復完成以後進入下一步,如果出錯,請多試幾次,也有可能要從頭來。


【修復Import Table Elimination】
隨便找個函數調用,可以看到輸入表,在命令行輸入dd 389118,注意找上下界,很容易可以發現rva:3883f0 大小:16C8
要為ArmInlie找個空白地方寫輸入表,Alt+M,選擇這個:
AMEMORY, 條目 24
地址=0050F000
大小=0002E000 (188416.)
屬主=VBLocali 00400000
區段=.rdata
類型=Imag 01001002
訪問=R
初始訪問=RWE
雙擊打開,查找kernel32.dll,不要選整個塊,發現00539DDC是個好地方:
00539DCC 4B 45 52 4E 45 4C 33 32 2E 64 6C 6C 00 00 00 00 KERNEL32.dll....
00539DDC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00539DEC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00539DFC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

在ArmInline填入相關訊息後點擊"Rebase IAT"按鈕,一會就修好了。

http://bbs.pediy.com/upload/2006/8/image/3.jpg_926.jpg
【脫殼,修復】
Nanomites保護似乎沒有出現,到這裡可以用lordpe脫殼了,然後打開ImpRec,選擇工作行程,OEP填入:00068B8A,自動搜索,獲得輸入表完全有效,修復。
修復完可以執行,刪除reloc,reloc1,vmp0,text1區段後重建程式,可以執行,到此結束。
脫殼後文件沒有次數限制了,但似乎仍有功能限制,是arm帶key的程式,無key脫了功能也不完整,鑒於大陸國產軟件,不討論為妙。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
cwvdavid (2007-08-20)
感謝您發表一篇好文章
 



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

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


所有時間均為台北時間。現在的時間是 09:31 AM


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


SEO by vBSEO 3.6.1