关于虚拟桌面的开发

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这东西太吸引人了,昨晚一夜没睡,加入了比较关键的进程控制功能,没想到意外地顺利,快天亮之时终于调出一个功能比较完整的虚拟桌面原型。

之前所做太多此时许多激动

当初对客户端安全的想法很幼稚,对CISCO的安全桌面很惊叹。

当初对WINDOWS的东西也没什么认识,差不多是一片空白。对虚拟桌面这个东西的实现很茫然无助的感觉,但是也很好奇,开始反汇编CISCO的代码,其用到内核钩子就去看内核钩子,用到了文件驱动就看文件驱动。慢慢地,虽然对其具体实现不是很肯定,但是随着认识的不断加深却好像找到了虚拟桌面的思路,其功能和效果可以做到和CISCO一样,然后就是做试验或者找资料去验证了,

再回首这几个月,

开发这个东西要对WINDOWS系统有比较多的理解,对WINDOWS的内核编程和驱动了解很多,不然会很迷茫。编程方面特别是进程、服务、文件驱动、WINDOWS自身的功能的利用,根据需要找到的相关资料有几个G,其中的文档已经不记得有多少了。我喜欢把所有可能相关的资料找出来,然后并排起来走马观花的浏览,把写的不好的删除,把不相关的放到一边,把好的整理分类。元旦放假三天三夜没睡,蓝屏几百次才把文件系统驱动调试出来,当时的激动无法言语,这些以后会很难忘记

目前有个比较完整的原型,界面上少了几个桌面按钮,另外是启动和退出时数据清理都没有进度条。与CISCO的相比较就差一个IP过滤功能了,就是对进程的网络访问进行控制,一般的防火墙都有这个功能。这个用网络驱动实现很容易。不过,还需要完善的地方很多:――程序的字符串处理是用ANSCAL的,而WINDOWS的一些系统路径居然是中文,如桌面、开始菜单,这样初始化的时候私密空间中创建的中文目录都失败了,

――目前对系统的支持只做到XP SP2版本,还没来得及针对每个系统做判断。因为驱动中进程控制要用到WINDOWS的内核进程结构,而这个结构微软是没有公开的,也没有接口可用,我用到的XP SP2进程结构也是一奇人从WINDOWS破解出来的。WINDOWS每款系统的内核进程结构都不一样,甚至同一款系统补丁不同内核进程结构也可能不一样。肯定的是安全桌面只能运行在NT内核的系统上,差不多是WIN2K之后的系统。

――重定向规则很粗糙,也没来得及全部完成。以后要细化和优化

虚拟桌面,或者安全桌面。

桌面部分有两千行左右代码,用C,WIN32 API写成,几乎每一处代码和系统相关,主要是桌面控制,驱动加载和控制,系统功能的调用。

驱动部分是一个文件系统过滤层,用于改变当前文件系统的行为,对虚拟桌面中的所有进程的文件操作进行控制,这是安全桌面的核心功能所在。目前有一万行左右代码,是从文件驱动编译器附带的样例中修改而来的,只是加入了文件操作重定向和进程控制。

历程

9月

安全桌面的理解和猜想,CISCO安全桌面的体验,甚为惊叹。另外是学习ActiveX控件开发。

10月

研究汇编和破解技术。反汇编CISCO桌面,

11月

WINDOWS内核驱动和存储系统特别是文件系统的理解,做了虚拟磁盘和文件过滤驱动的试验,

12月

主要开发全通道服务、控件,全通道的控件包,下旬开始做安全桌面的原型

1月

完成原型,整理文档,

文档

看的太多,做的太多,就有了写很多文档的冲动,也或是为了更清晰的理解一些东西,为了防止以后忘记,为了其他人能看懂,方便维护,也是很多东西本身很有意思

其中的部分文档会之后几天陆续完成:

✧《安全桌面分析》十一月份的一篇文档,其中有些想法是错误的,但是基本方向是对的✧《关于安全桌面的开发》,是这篇文档本身,是对此次开发的总结

✧一个比较完整的安全桌面原型

✧《安全桌面概要设计》,主要是这个东西是怎么样怎么做的。其理解基础是下面的文档。

✧《WINDOWS存储系统、文件系统、文件过滤驱动》,这是深入理解和开发安全桌面所

需要的。明白了这个就明白了系统还原、虚拟光驱、私人磁盘、VMare是怎么一回事了

✧《WINDOWS&桌面&进程》,NT内核,桌面explorer.exe,注意不是浏览器,系统进程

和程序的使用,例如进程树,例如删除和创建私密空间

✧《WINDOWS内核开发》,工具,书籍介绍,内核开发和一般WINDOWS程序开发最

大区别在于你以前用过的API和方法在内核里面都没法使用,而内核的调试也及其复杂麻烦,机器兰屏是家常便饭,有时一个很小的错误兰屏几十次也找不出来,觉得很无助无奈,每次重启机器祈祷这次不要再兰屏

由于我都是按照任务的需要去搜集理解资料。而理解也是根据需要,如果对开发这个东西没帮助就不去理解,就驱动方面开发方向太多,掌握WINDOWS一般驱动基础开发要半年时间,掌握WINDOWS文件系统开发要一年以上,而我所理解的只是文件系统开发中的重定向这一小块,所以只要把这一个小方向搞清楚就可以了。所以我对以上很多认识也是很模糊不清的,很多东西只是概念理解,这个概念理解也是不清晰的。基本上是一个猜测可能的相关的方向、理解其中的概念和原理、考察验证、回到重头这么一个反复探索的过程,直到出现清晰的思路。

OK,

虚拟桌面介绍

虚拟桌面能够在完成对终端安全性的检查之后,替换原来的桌面。虚拟桌面为客户端系统的进程提供一个安全空间,虚拟桌面上的进程的数据操作都定向到这个安全空间中。当退出虚拟桌面时,覆盖和删除进程在安全空间中的所有数据,因此虚拟桌面上的进程不会在系统上遗留任何cookie、浏览器历史、临时文件、自动填写的密码和下载内容等等数据痕

迹。如图:

简单原理如图:

相关文档
最新文档