实践教学中部署Apple Mac OS X之Unlocker技术探究

2017-04-08 05:31李明胡春晖
课程教育研究·新教师教学 2016年5期

李明 胡春晖

摘要:在Apple Mac OS X在各领域应用逐渐广泛的现状下,实践教学中部署Apple Mac OS X的需求迫切。传统模式下,实践教学如果需要使用Apple Mac OS X,需要投入苹果机房来用于教学,往往会因遇到投资巨大而搁置,近年来在利用虚拟化部署Windows平台、Linux平台技术较为成熟的模式下,如何利用虚拟化技术部署Apple Mac OS X已成为技术热点。Unloker技术可以较好的利用VMware虚拟化技术实现Apple Mac OS X平台的部署,但相关文献对Unlocker原理等技术介绍较少,本文针对其核心解码流程进行探究。

关键词: Unlocker;VMware;Apple Mac OS X

【中图分类号】G434

一、Unlocker

Unlocker工具是一款用于解锁被占用文件或模块的工具。比如说某个文件被其它进程打开,而造成无法删除或修改,某DLL被某进程载入而占用,造成文件无法删除、修改或更新。使用这个工具可以解锁该占用文件。通常这种情况都是由于,进程或者线程僵死,或者文件句柄未能及时关闭造成的。

Unlocker可以强制删除电脑上无法删除的文件,如删除文件时提示“访问被拒绝。请确定磁盘未满或未被写保护而且文件未被使用”等原因。在使用Unlocker前请大家要搞清楚为什么有些文件无法删除,一般情况都是因为该文件正在被另一个程序所使用,所以就无法删除。打个比喻就好像一辆高速行驶的汽车,你需要卸下他的轮胎,唯一的办法就是先让汽车停下来才能卸下(轮胎相当于我们需要删除的文件,汽车相当于另一个程序,而像Unlocker这样的软件就是可以让汽车停下来的软件)。

二、VMware使用中Ulocker的用途

1、用途

Unlocker 2是专为VMware Workstation 11,Player 7及Fusion 7解除对Apple Mac OS X系统的限制。从而在VMware虚拟机上安装苹果系统提供支持。VMware Workstation允许专业技术人员在同一个PC上同时运行多个基于x86的Windows、Linux和其他操作系统以开发、测试、演示和部署软件。如果您使用的是较早VMware10的产品,请继续使用Unlocker 1的版本。以下为在各操作系统上如何使用Ulocker。

(1)Windows:win-install.cmd - VMware补丁

(2)Linux:lnx-install.sh - VMware补丁

(3)Apple Mac OS X:osx-install.sh - VMware补丁

在Apple Mac OS X,你将需要超级用户或使用sudo来运行脚本。这个,如果你想使用的Apple Mac OS X的客户端版本是真的只需要。您可能需要确保OS X脚本执行权限,通过运行使用chmod + X对2个文件。

2、Unlocker解锁VMware虚拟化安装Apple Mac OS X效果

以管理员身份运行其中的Win-install.cmd进行解锁后,打开VMware出现Apple Mac OS X界面,说明VMware解锁成功,可以按照VMware的一般方法来制作Apple Mac OS X,这里不再赘述。

三、Unlocker的工作原理

1、流程

主程序Unlocker.exe通过ZwQuerySystemInformation查询当前系统的所有句柄信息,然后调用OpenProcess获取目标进程句柄,遍历当前所有进程,根据进程ID,得到此进程打开的所有句柄信息,接下来用DuplicateHandle复制Handle到本地进程,然后把文件句柄发给驱动UnlockerDriver5.sys进行名字的查询,sys将返回文件句柄对应的内核文件对象的完整名字。

确定文件名后,如果要删除文件,则调用OpenProcess与DuplicateHandle关闭句柄,然后ZwDeleteFile删除文件。

2、UnlockerAssistant.exe分析

Unlockerasistent.EXE是一个托盘应用程序,负责加载UnlockerHook.dll,并按照用户的需求来加载和卸载钩子,当用户手动操作一个文件失败后(当然这种失败用户是感知不到的),比如删除一个文件等,此时Unlocker的界面就会跳出来提示用户是否需要解锁等操作。

UnlockerHook.dll的功能就是通过CBT钩子来植入每个进程的方式来打入exploer.exe,通过inlinehook SHFileOperationW的方式来挂钩,只要该函数执行返回错误,通过识别不同的错误码来判断是否需要调用unlocker程序,并通过ShellExecuteExW的方式来触发unlocker程序。

3、Unlocker.exe分析

unlocker最主要的功能实现都在unlocker.exe和一个.sys驱动里,值得关注的是它怎么实现的关闭句柄和删除文件。关键的函数(部分也是未公开的API),比如:ZwQuerySystemInformation、ZwQueryObject、ZwDeleteFile、ObReferenceObjectByHandle、ObQueryNameString、SHFileOperationW、MoveFileExW、DuplicateHandle。

参考文献:

[1]韓荣珍.使用VMware技术实现服务器群的热备与恢复[J].计算机安全,2009(9):58-59.

[2]张兴虎.网络服务器的组建、配置与安全管理[M].北京:清华大学出版社,2005.

[3]韩起云,冉维,李静.基于VMware的网络安全虚拟实验平台构建[J].重庆教育学院学报,2011(11):31-34

作者简介:李明(1981-),男,河南周口人,讲师,硕士研究生,主要研究方向:计算机教育应用、网络工程;

胡春晖(1987-),男,河南项城人,助教,硕士研究生,主要研究方向:网络安全、网络系统工程。