某客户有这样的一个需求,就是给员工设置好电脑后,希望通过我们的局域网管理软件进行限制,不让员工再安装其他软件。这样做的好处是,一方面可以禁止员工安装一些和工作无关的软件,比如视频、炒股之类的,另一方面是可以避免因为安装一些来源不可靠的软件导致系统中毒。由于这位客户和启安之间有过多次合作,对启安的软件质量也是非常的认可,所以我们不敢怠慢,立即组织工程师对可行性进行研究。
要想禁止安装软件,那么第一步要做的就是如何识别软件安装包。其实稍有使用电脑的经验的朋友就会发现,安装包不外乎有以下特点:
当我们对搜集到的大量安装程序分析后,发现第二点并不具备明显的特征性。如果常用电脑的朋友会发现,Windows在安装软件的时候如果软件不兼容,会弹出程序兼容性助手界面,如下图:
这也就是说Windows本身有一套机制是可以识别安装程序的。找出系统时如何是别的对于完成局域网管理软件中的这个功能肯定是非常有帮助的。
通过查阅大量资料我们发现,其实Windows的这一套机制正式我们上面提出的第4点,同时这项技术也被用在Windows Vista之后的系统中的UAC功能。具体可以参考MSDN中的这篇文章《New UAC Technologies for Windows Vista》。
the following attributes are checked to determine whether it is an installer:
- Filename includes keywords like “install,” “setup,” “update,” etc.
- Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name
- Keywords in the side-by-side application manifest embedded in the executable
- Keywords in specific StringTable entries linked in the executable
- Key attributes in the resource file data linked in the executable
- Targeted sequences of bytes within the executable
有了这些特征,就可以识别大部分安装包了。但是对产品的精益求精一直是启安的坚持不懈追求的目标之一,在安装包检测上,启安还设计了一套独有的检测算法,然而考虑到技术机密,这里就不说了。借助这么多的理论分析,限制软件安装的功能已经研发出来了,用户下载最新版本的局域网监控专家就可以体验。