李明 胡春暉
摘要:在Apple Mac OS X在各領(lǐng)域應(yīng)用逐漸廣泛的現(xiàn)狀下,實(shí)踐教學(xué)中部署Apple Mac OS X的需求迫切。傳統(tǒng)模式下,實(shí)踐教學(xué)如果需要使用Apple Mac OS X,需要投入蘋果機(jī)房來用于教學(xué),往往會(huì)因遇到投資巨大而擱置,近年來在利用虛擬化部署Windows平臺(tái)、Linux平臺(tái)技術(shù)較為成熟的模式下,如何利用虛擬化技術(shù)部署Apple Mac OS X已成為技術(shù)熱點(diǎn)。Unloker技術(shù)可以較好的利用VMware虛擬化技術(shù)實(shí)現(xiàn)Apple Mac OS X平臺(tái)的部署,但相關(guān)文獻(xiàn)對(duì)Unlocker原理等技術(shù)介紹較少,本文針對(duì)其核心解碼流程進(jìn)行探究。
關(guān)鍵詞: Unlocker;VMware;Apple Mac OS X
【中圖分類號(hào)】G434
一、Unlocker
Unlocker工具是一款用于解鎖被占用文件或模塊的工具。比如說某個(gè)文件被其它進(jìn)程打開,而造成無法刪除或修改,某DLL被某進(jìn)程載入而占用,造成文件無法刪除、修改或更新。使用這個(gè)工具可以解鎖該占用文件。通常這種情況都是由于,進(jìn)程或者線程僵死,或者文件句柄未能及時(shí)關(guān)閉造成的。
Unlocker可以強(qiáng)制刪除電腦上無法刪除的文件,如刪除文件時(shí)提示“訪問被拒絕。請(qǐng)確定磁盤未滿或未被寫保護(hù)而且文件未被使用”等原因。在使用Unlocker前請(qǐng)大家要搞清楚為什么有些文件無法刪除,一般情況都是因?yàn)樵撐募诒涣硪粋€(gè)程序所使用,所以就無法刪除。打個(gè)比喻就好像一輛高速行駛的汽車,你需要卸下他的輪胎,唯一的辦法就是先讓汽車停下來才能卸下(輪胎相當(dāng)于我們需要?jiǎng)h除的文件,汽車相當(dāng)于另一個(gè)程序,而像Unlocker這樣的軟件就是可以讓汽車停下來的軟件)。
二、VMware使用中Ulocker的用途
1、用途
Unlocker 2是專為VMware Workstation 11,Player 7及Fusion 7解除對(duì)Apple Mac OS X系統(tǒng)的限制。從而在VMware虛擬機(jī)上安裝蘋果系統(tǒng)提供支持。VMware Workstation允許專業(yè)技術(shù)人員在同一個(gè)PC上同時(shí)運(yùn)行多個(gè)基于x86的Windows、Linux和其他操作系統(tǒng)以開發(fā)、測(cè)試、演示和部署軟件。如果您使用的是較早VMware10的產(chǎn)品,請(qǐng)繼續(xù)使用Unlocker 1的版本。以下為在各操作系統(tǒng)上如何使用Ulocker。
(1)Windows:win-install.cmd - VMware補(bǔ)丁
(2)Linux:lnx-install.sh - VMware補(bǔ)丁
(3)Apple Mac OS X:osx-install.sh - VMware補(bǔ)丁
在Apple Mac OS X,你將需要超級(jí)用戶或使用sudo來運(yùn)行腳本。這個(gè),如果你想使用的Apple Mac OS X的客戶端版本是真的只需要。您可能需要確保OS X腳本執(zhí)行權(quán)限,通過運(yùn)行使用chmod + X對(duì)2個(gè)文件。
2、Unlocker解鎖VMware虛擬化安裝Apple Mac OS X效果
以管理員身份運(yùn)行其中的Win-install.cmd進(jìn)行解鎖后,打開VMware出現(xiàn)Apple Mac OS X界面,說明VMware解鎖成功,可以按照VMware的一般方法來制作Apple Mac OS X,這里不再贅述。
三、Unlocker的工作原理
1、流程
主程序Unlocker.exe通過ZwQuerySystemInformation查詢當(dāng)前系統(tǒng)的所有句柄信息,然后調(diào)用OpenProcess獲取目標(biāo)進(jìn)程句柄,遍歷當(dāng)前所有進(jìn)程,根據(jù)進(jìn)程ID,得到此進(jìn)程打開的所有句柄信息,接下來用DuplicateHandle復(fù)制Handle到本地進(jìn)程,然后把文件句柄發(fā)給驅(qū)動(dòng)UnlockerDriver5.sys進(jìn)行名字的查詢,sys將返回文件句柄對(duì)應(yīng)的內(nèi)核文件對(duì)象的完整名字。
確定文件名后,如果要?jiǎng)h除文件,則調(diào)用OpenProcess與DuplicateHandle關(guān)閉句柄,然后ZwDeleteFile刪除文件。
2、UnlockerAssistant.exe分析
Unlockerasistent.EXE是一個(gè)托盤應(yīng)用程序,負(fù)責(zé)加載UnlockerHook.dll,并按照用戶的需求來加載和卸載鉤子,當(dāng)用戶手動(dòng)操作一個(gè)文件失敗后(當(dāng)然這種失敗用戶是感知不到的),比如刪除一個(gè)文件等,此時(shí)Unlocker的界面就會(huì)跳出來提示用戶是否需要解鎖等操作。
UnlockerHook.dll的功能就是通過CBT鉤子來植入每個(gè)進(jìn)程的方式來打入exploer.exe,通過inlinehook SHFileOperationW的方式來掛鉤,只要該函數(shù)執(zhí)行返回錯(cuò)誤,通過識(shí)別不同的錯(cuò)誤碼來判斷是否需要調(diào)用unlocker程序,并通過ShellExecuteExW的方式來觸發(fā)unlocker程序。
3、Unlocker.exe分析
unlocker最主要的功能實(shí)現(xiàn)都在unlocker.exe和一個(gè).sys驅(qū)動(dòng)里,值得關(guān)注的是它怎么實(shí)現(xiàn)的關(guān)閉句柄和刪除文件。關(guān)鍵的函數(shù)(部分也是未公開的API),比如:ZwQuerySystemInformation、ZwQueryObject、ZwDeleteFile、ObReferenceObjectByHandle、ObQueryNameString、SHFileOperationW、MoveFileExW、DuplicateHandle。
參考文獻(xiàn):
[1]韓榮珍.使用VMware技術(shù)實(shí)現(xiàn)服務(wù)器群的熱備與恢復(fù)[J].計(jì)算機(jī)安全,2009(9):58-59.
[2]張興虎.網(wǎng)絡(luò)服務(wù)器的組建、配置與安全管理[M].北京:清華大學(xué)出版社,2005.
[3]韓起云,冉維,李靜.基于VMware的網(wǎng)絡(luò)安全虛擬實(shí)驗(yàn)平臺(tái)構(gòu)建[J].重慶教育學(xué)院學(xué)報(bào),2011(11):31-34
作者簡(jiǎn)介:李明(1981-),男,河南周口人,講師,碩士研究生,主要研究方向:計(jì)算機(jī)教育應(yīng)用、網(wǎng)絡(luò)工程;
胡春暉(1987-),男,河南項(xiàng)城人,助教,碩士研究生,主要研究方向:網(wǎng)絡(luò)安全、網(wǎng)絡(luò)系統(tǒng)工程。