频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

3.19 设备翻译层依赖性

作者: Peter Szor 出处:机械工业出版社  2007-07-17 13:51    砖    好    评论   进入论坛
阅读提示:本书由Symantec首席反病毒研究员执笔,是讲述现代病毒威胁、防御技术和分析工具的权威指南。作者系统地讲述了反病毒技术的方方面面,包括病毒行为、病毒分类、保护策略、反病毒技术及蠕虫拦截技术等。本文介绍的是设备翻译层依赖性。
3.19 设备翻译层依赖性
许多文章有这样一种观点:Windows CE病毒将永远不会出现,而且很多年来我们确实没发现此类病毒。然而,在2004年7月,病毒作者Ratter设计了针对Windows CE的概念型病毒WinCE/Duts.1520,证明了Windows CE病毒是可能的,如图3-13所示。
图3-13 在HP iPAQ H2200 Pocket PC上WinCE/Duts病毒的信息
目前许多设备都能成功运行WinCE/Duts,这是因为 ARM处理器可以用在许多设备上,例如HP iPAQ H2200 (也像许多其他的iPAQ设备一样),Sprint PCS Toshiba 2032SP、T-Mobile Pocket PC 2003、Toshiba e405和 Viewsonic V36等等。另外几种GSM设备则建立在Pocket PC之上。
有趣的是,WinCE/Duts.1520能够感染多种系统上的PE 文件,尽管实际上病毒代码是为某一种Windows CE版本而 “硬编码”的。例如,该病毒会使用一种基于序数函数的引 入(importing)机制,这种机制看起来在攻击多种版本的 Windows CE上有着很大的局限性。事实上,病毒的编写者似乎认为WinCE/Duts只适合于 Windows CE 4,但我们在测试中发现,该病毒也能正确地运行在Windows CE 3上。
这么久以来,Windows CE未被病毒攻击,这并不奇怪。微软针对各种处理器平台发布了多 种不同的Windows CE版本,这造成了兼容性问题(使用在不同的环境上),而这一点似乎从某 种程度上限制了病毒的编写。
另外,Windows CE平台上的Office产品(例如Pocket Word或Pocket Excel)不支持宏,这一 点也限制了宏病毒的发作,但是也给人带来了一些麻烦。
在Windows CE 3.0之前,由于二进制兼容性问题, 在Windows CE上开发并发布一个应用程 序是一件痛苦的事情。编译生成的可执行二进制文件是PE格式,但只能在编译该程序的处理器 上运行。因此,开发者必须针对不同的设备编译生成不同的二进制版本。这对开发者和用户 (没有耐心总是安装新的程序)来说,都是一个很费时的过程。
对CPU的依赖性被“硬编码(hard-Coded)”在PE文件的头里了,例如在SH3处理器中,PE 文件头包含机器类型号0X01A2,而它的代码段则包含只与这种结构兼容的代码。
或许可以很容易地编写一个能够在SH3平台上编译运行的程序,但是Windows CE可以支持几种处理器,例如SH3、SH4、MIPS、ARM等等。因此,一个本地Windows CE病毒想在不同处理 器的设备间传播就不是那么容易了,例如,WinCE/Duts.1520就无法感染基于SH3处理器的系统。
病毒程序编写者或许能够编制出通过微软的Active Sync来投放Windows CE病毒的Win32病 毒,这样的病毒可以简单地发送电子邮件来传播它的Intel版本(带有一个嵌入的便携式版本), 但它只能感染某些使用特定处理器的手持设备。将来,随着更多的兼容处理器的发布,对于病 毒开发者来说,这个问题将越来越不成问题。比如,新一代的XScale处理器与ARM系列兼容, XScale不仅用于便携式PC系统中,也用于Palm设备。这就为攻击者编写“跨平台”病毒打开了 方便之门,他们使用相同的病毒程序却能够威胁Palm和便携式PC系统。
微软针对便携式PC开发了出了一种新技术,这使得Windows CE开发人员的工作更加轻松了。 微软在便携式PC中开始支持一种新的可执行文件格式:通用可执行文件(Common executable file,CEF)格式。
可以使用Windows CE开发工具对CEF进行编译,例如嵌入式Visual C++ 3.0。CEF可以说是 一种特殊的PE文件。CEF是一种与CPU无关的代码格式,它允许在Windows CE的支持下创建跨 CPU的可移植的应用程序。实际上,CEF包含了MSIL代码。
在嵌入式Visual C++中,开发者在使用CEF工具(编译器、链接器、SDK)时同样要选定一 个明确的CPU对象(比如MIPS或ARM)。当开发者编译一个CEF程序时,编译器和链接器能完 成除产生机器特有代码以外的所有工作。虽然你仍然能得到一个DLL或EXE文件,但文件中包 含中间语言指令,而不是本地机器代码指令。
CEF让Windows CE程序开发者开发出的产品可以运行在Windows CE或以上版本的操作系统 的所有CPU体系结构上。因为CEF是一种中间语言,所以处理器生产商可以很容易地开发出一种 可以运行CEF程序的新的CPU系列。例如,HP Jornada 540就有这样一种内置的设备翻译层。 CEF文件在发布时可能还会有一个EXE的扩展版本,所以使用者不会感到有什么不同。
设备翻译器对应于某一种特定的处理器和Windows CE设备,当用户在机器上安装CEF可 执行文件时,通常将一个CEF可执行文件转换为处理器本机代码。在可执行文件被点击后,除了 有一个短暂的暂停外,这一切都神不知鬼不觉地发生了。操作系统的钩子能自动捕捉到任何试 图装载与执行CEF EXE、DLL或OCX文件的企图,并在运行文件前运行转换器。
例如,如果一个便携式PC是基于SH3处理器的,那么翻译层就要把一个CEF文件转换成一个 SH3格式的可执行文件。实际的CEF可执行文件将被已编译的SH3本地版本所取代。将文件内容 完全转换为本地可执行版本。确实,对MSIL、JIT(Just-in-Time)在便携式PC上的重新编译导致 了对文件系统的重新写入。
很明显,病毒程序编写者将来可以利用CEF格式。一个32位的Windows病毒能够轻易地将它 的CEF版本安装到便携式设备上,并运行在所有便携式PC设备上,因为操作系统能将CEF可执 行文件转换为它的本地格式。我们只能寄希望于除了Windows CE系统以外其他系统都不支持 CEF格式。例如,万一操作系统将CEF对象改写为本地可执行文件,那么一个桌面应用也会是很 痛苦的。
由于可执行文件在运行中被转换为新格式,其内容发生了变化,与OFFICE产品的宏病毒的 向上转换(up-conversion)相比,这甚至是个更严重的问题[50]。很明显,这将成为反病毒软件、 72 第一部分 攻击者的策略 完整性检查程序和行为阻截系统的挑战。
显然,如果必须检测和识别原始的MSIL格式代码和所有可能的转换代码,这将是反病毒软 件厂商面临的大问题。如果在设备上执行了一个MSIL病毒,那么在反病毒程序发现该病毒前, 病毒就会运行,并根据实际的系统类型,将其代码转换为一系列本地格式。结果,关于病毒的 MSIL信号在寻找病毒时就失去了作用。所有本地转换格式的病毒都必须能够检测出来,这个任 务并不轻松。
其次,这对于完整性检验程序来说也是个大问题,因为不仅是在内存里,磁盘里程序的内 容也已经改变了。结果,完整性检验程序就无法知道这种改变是病毒感染的结果还是一个本地 代码翻译造成的。最后,这对于行为阻截系统来说也是个大问题,因为磁盘上可执行文件的内 容改变了,这容易使人怀疑是病毒造成的。
【责任编辑:雪花 TEL:(010)68476606-8007】

回书目   上一节   下一节
专题
安全防范与策略
U盘病毒从认识到防范
MSN病毒查杀
企业反病毒解决方案的选择
清除“熊猫烧香”病毒专题
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用