二十年重回首——CIH病毒源码分析_华夏银行

访客3年前黑客工具564

缘起又是一年双十一,又到一年剁手时。听说今年固态硬盘比较便宜,我就想着在双十一的时候给自己添一块固态硬盘。但是我的主板比较老,不知道能不能支持NVME协议的固态硬盘,就在网上搜索了一下.这一搜索不要紧,搜索后我发现,我的老主板本身并不支持NVME协议的固态硬盘,但想要使用,也不是没有解决方案。解决方案就是:下载官方的BIOS固件修改官方BIOS固件,将支持nvme的模块加入到官方的BIOS固件中。将修改后的BIOS固件烧录到BIOS。what?官方的BIOS固件修改后居然还能烧录进去,居然没有自校验吗?BIOS作为计算机启动的之一道入口,能让用户随意修改,虽然方便了用户,但是也带来了巨大的安全隐患。我忽然想起很久以前有一款很出名,据说能破坏BIOS的上古病毒-CIH,忽然起了好奇心,想要看看CIH具体是怎么实现的。于是就有了这篇文章,与大家一起回顾那段历史,分享下我分析CIH源码的过程与心得。 源码CIH的故事已经消逝很久了,它的源码却还能在互联网上找到。源码可以在github上找到,网址如下:https://github.com/onx/CIH这是1.4版本的CIH源码,据说还有1.5版本的,但是我没有找到。我们的分析就从这份源码开始吧!先大概扫一眼代码,作者的编码习惯很好,各部分都也有注释,开头部分是版本记录,将版本变化的具体时间和具体功能都记录了下来。我们先把时间线理一下。1.0版的完成时间是1998年4月26日, 完成基本功能,此时病毒的大小是656个字节。1.1版的完成时间是1998年5月15日, 增加操作系统判断,如果是WinNT,则不运行病毒,此时病毒的大小是796个字节。1.2版的完成时间是1998年5月21日, 增加删除BIOS和破坏硬盘功能,此时病毒的大小是1003个字节。1.3版的完成时间是1998年5月24日, 修复感染winzip自解压文件的错误,此时病毒的大小是1010个字节。1.4版的完成时间是1998年5月31日, 彻底修复感染winzip自解压文件的错误,此时病毒的大小是1019个字节。1998年7月26日,CIH病毒在美国大面积传播;1998年8月26日,CIH病毒实现了全球蔓延,公安部发出紧急通知,新华社和新闻联播跟进报导;之后,CIH病毒作者陈盈豪公开道歉并积极提供解毒程式和防毒程式,CIH病毒逐渐得到有效控制。呵呵,不到1KB就能删除你的BIOS,破坏你的硬盘,就问你怕不怕?那么,现在就让我们看看CIH究竟是如何在二十年前造成如此巨大的影响和破坏的! 分析PE文件头源码之一部分是文件头:OriginalAppEXE SEGMENTFileHeader:db 04dh, 05ah, 090h, 000h, 003h, 000h, 000h, 000hdb 004h, 000h, 000h, 000h, 0ffh, 0ffh, 000h, 000hdb 0b8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h.....db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000hdb 0c3h, 000h, 000h, 000h, 000h, 000h, 000h, 000hdd 00000000h, VirusSizeOriginalAppEXE ENDS就是PE文件的MZ文件头。这段文件头的主要目的是为了符合PE(Portable Execute, 可移植执行文件格式)文件格式.我们常见的EXE,DLL,OCX等文件都必须符合微软规定的PE格式,这样Windows操作系统才能识别并执行,这里我们跳过不做分析,感兴趣的读者可以对照PE文件头和源码自行分析。 *** 上也有很多关于PE格式分析的文章。另外,请各位读者注意,因为CIH的故事已经过去很久了,CIH所曾经使用的有些技术已经过时,但却能在今天找到借鉴,有些技术则没有过时,可谓生命力顽强,这一点我会在文章中一一指出,希望能供大家参考借鉴。VirusGame SEGMENTASSUME CS:VirusGame, DS:VirusGame, SS:VirusGameASSUME ES:VirusGame, FS:VirusGame, GS:VirusGame; *********************************************************; * Ring3 Virus Game Initial Program *; *********************************************************病毒真正开始运行是从VirusGame段开始的。VirusGame这个段名称很有意思!作者完成这个病毒时是23岁(如今已是43岁!),还是少年人的心性,开发一个病毒,对作者而言就好像完成一个游戏一般。可是时移事变,今天已经不是20年前!2018年,中华人民共和国 *** 安全法已经出台,开发病毒可能会造成严重的后果,不是一个道歉就能了事的,各位读者在这点上一定要树立一个正确的意识!一定要好好学习相关的法律,不要以身试法。修改SEH闲话少叙,接下来我们的分析从MyVirusStart开始。MyVirusStart:push ebp; *************************************; * Let's Modify Structured Exception *; * Handing, Prevent Exception Error *; * Occurrence, Especially in NT. *; *************************************lea eax, [esp-04h*2]xor ebx, ebxxchg eax, fs:[ebx]call @0@0:pop ebxlea ecx, StopToRunVirusCode-@0[ebx]push ecxpush eax程序的之一段是修改Windows的SEH(Structured Exception Handing)。首先,什么是SEH?为什么要修改SEH呢?SEH,Structured Exception Handing, 结构化异常处理,是Windows操作系统的异常和分发处理机制.该机制的实现方式是将FS[0]指向一个链表,该链表告诉操作系统当出现异常的时候应该找谁处理。类似于我们现实生活中的紧急联系人列表,如果应用程序出了什么问题,就交给链表中的一号紧急联系人处理,如果一号紧急联系人无法处理,就交给二号联系人。依次类推。当所有的异常处理函数都调用完成,而异常仍然没有处理掉,这时,操作系统

标签: 好话题

相关文章

他人的微信密码怎么破解 怎么查看我老公的微信聊天记录

怎么彻底删除微信聊天记录?微信大家应该都很熟悉吧,但是上面产生的大量聊天记录很多关于生活,关于工作的比较隐私的数据,我们很想要彻底删除掉,但是怎样才能做到神不知,鬼不觉的百分之百的彻底删除掉呢,接下来...

星美影院闭店潮 星美控股停牌超3个月_字符串

北京地区6家影院已闭店 股票星美控股停牌超3个月星美国际影院闭店潮背后北京青年报记者近日走访调查发现,北京地区的6家星美国际影院已从各大商圈悄然消失;购票平台上,星美国际影院已停止售票;星美影院服务电...

怎样远程监控老婆微信(接收老婆微信聊天记录)_远程监控

怎样远程监控老婆微信(接收老婆微信聊天记录) 手机在我们的日子中扮演着非常重要的人物。它是我们交流的工具,是我们消除孤独和无聊的窗口。 正是由于我们越来越依赖它,它才变得越来越神秘。手机花在我们身...

ATM存在哪些威胁?ATM安全最新的三大威胁_中关村在线

自动柜员机(ATM)是一个静态的现金箱,除了银行金库防御,传统的盗贼和新兴的黑客认为这是完美的目标。特别是在发展中国家,ATM往往缺乏基本的网络安全防范措施,运行的操作系统陈旧过时,认证要求简单。在过...

微信聊天记录一不小心删除怎么成功找回? 不被对方发现

现在微信已经不是以前的小APP了,现在它在我们的生活中占据着越来越重的位置,很多人的小秘密也会隐藏在每个人的聊天记录里。 微信聊天记录一不小心删除怎么成功找回? 1. 但并不是所有的秘密都必须知道...

曾志伟再被曝丑闻,影视一哥晚节不保,你怎么看?_消费者

曾志伟再被曝丑闻,影视一哥晚节不保,你怎么看? 曾志伟再被曝丑闻,影视一哥晚节不保,你怎么看?曾志伟,这个名字大家再熟悉不过了吧,在早期的时候曾志伟可是非常的有名的,他演过很多经典的作品,演技也...