二十年重回首——CIH病毒源码分析
CIH病毒源码分析
随着双十一的临近,我在考虑为自己的网站电脑添置一块NVME协议的固态硬盘。然而,历史历史我发现自己老款主板并不支持NVME协议。源码源码在探索解决方案时,网站问道信箱源码我偶然回想起了CIH病毒,历史历史一款曾引起巨大破坏的源码源码古老病毒。出于好奇,网站我决定深入分析CIH源码,历史历史回顾那段历史,源码源码并分享分析过程与心得。网站
CIH源码在GitHub上能找到,历史历史版本1.4。源码源码源码的网站编写者习惯良好,代码中包含了功能更新的时间和具体细节。时间线如下:
1.0版于年4月日完成,基本功能实现,代码长度字节。
1.1版于5月日完成,增加了操作系统判断,若为WinNT则不执行病毒,长度字节。
1.2版于5月日,加入删除BIOS和破坏硬盘功能,长度字节。
1.3版于5月日,修复了感染WinZIP自解压文件的错误,长度字节。
1.4版于5月日,彻底修复错误,长度字节。
CIH病毒于年7月日在美国大面积传播,8月日全球蔓延,引发公众恐慌。最终,病毒作者陈盈豪公开道歉,提供了解毒程序和防毒软件,病毒逐渐被控制。
源码的第一部分是PE文件头,用于符合PE文件格式,确保Windows识别和执行。神兽转盘游戏源码接下来,病毒开始运行,通过修改SEH(Structured Exception Handling)来识别操作系统类型。如果为WinNT或之后版本,病毒将自行产生异常并停止运行。
病毒通过修改中断描述符表,获得Ring0权限。然而,在WinNT操作系统中,这种方法已失效。因此,修改SEH的目的是判断当前操作系统,以避免在非Win9x系统上感染。
病毒在Win9x系统中,通过修改中断描述符表,将异常处理函数指向病毒自定义的MyExceptionHook。病毒利用此函数安装系统调用钩子,当执行文件操作时,会运行到病毒代码中。
病毒在MyExceptionHook中,通过dr0寄存器记录病毒安装状态,分配系统内存,并将病毒代码复制到内存中。之后,病毒安装钩子,当有文件读写调用时,会执行病毒代码。
当系统调用参数为关闭文件时,病毒进行时间判断,直到每月日,统一开始破坏BIOS和硬盘。破坏BIOS的方法包括映射BIOS内容、设置BIOS可写性。硬盘破坏则通过VXD驱动调用命令。
综上所述,CIH病毒利用了Win9x系统的漏洞,通过修改SEH和中断描述符表进入内核,安装系统调用钩子,感染文件并在特定时间执行破坏操作。然而,其在WinNT及后续系统上的指标公式源码 网站感染能力已失效。尽管如此,CIH病毒的源码和分析过程对了解历史和安全漏洞仍具有重要价值。
股票里的源码是什么意思
股票中的源码通常指的是用于分析、交易或获取股票市场数据的编程代码。这些代码可能由各种编程语言编写,如Python、C++、Java等,并通常用于构建算法交易系统、量化交易策略、技术指标分析工具等。
详细来说,源码在股票领域的应用主要体现在以下几个方面:
1. 数据获取与处理:源码可以用来从股票交易所、财经数据提供商等处获取实时或历史股票数据。例如,使用Python的pandas库,我们可以方便地获取、清洗和处理股票数据。
2. 策略开发与回测:量化交易者会编写源码来开发交易策略,并通过历史数据进行策略回测。这样可以在实际投入资金前评估策略的有效性和风险。例如,一个简单的移动平均交叉策略可以通过比较短期和长期移动平均线的位置来确定买入和卖出点。
3. 技术指标计算:源码可用于计算各种技术指标,如RSI、MACD、布林带等,这些指标有助于交易者分析股票价格的动量和趋势。
4. 自动化交易:一旦策略经过验证并被认为是有利可图的,源码可以被用来构建自动化交易系统。这些系统可以实时监控市场,并在满足特定条件时自动执行交易。
5. 风险管理与优化:源码还可用于开发风险管理工具,如止损和止盈算法,以及用于优化投资组合配置的算法。
举例来说,一个Python源码片段可能用于从网络API获取股票数据,计算某只股票的简单移动平均线,并根据移动平均线的交叉点生成买入或卖出信号。这样的源码不仅有助于交易者做出更明智的投资决策,还可以通过自动化减少人为错误和情绪干扰。magento 模板源码下载
ä¸å½å²ä¸ä¸ä»£ç
ä¸å½å²ä¸ä¸ä»£ç æ¯ãä¸å½å²ï¼
ä¸å½åå²ï¼ä»å¤æç®èµ·ï¼æè¿å¹´åå²ï¼ä»ä¸å½ç¬¬ä¸ä¸ªç»ä¸çæ代秦æç®èµ·ï¼çº¦æå¹´ãå²åæ¶æçæå·¢æ° ãç§äººæ° ãä¼ç¾²æ° ãç¥åæ°(çå¸) ãé»å¸(轩è¾æ°) 被å°ä¸ºä¸å人æå§ç¥ ãçº¦å ¬å åå¹´ï¼å¤æåºç°ï¼åææ¶åºç°äºå·²ç¥ä¸å½ææ©çæçæåï¼ç²éª¨æï¼è¥¿å¨æ¶ç¤¾ä¼è¿ä¸æ¥åå±ï¼æ¥ç§æå½æ¶ç产åæé«ï¼ææ³ç¾å®¶äºé¸£ã
å ¬å åå¹´ï¼ç§¦å§ç建ç«äºä¸å½åå²ä¸ç¬¬ä¸ä¸ªä¸å¤®éæå°å»ºå½å®¶ï¼ç§¦æï¼è¥¿æ±ä¸ä¸æ±æ¶è¿ä¸æ¥å·©åºååå±äºå¤§ä¸ç»çå±é¢ï¼æ±ååºæ¬å®åãä¸å½ä¸¤æååææ¶æï¼ä¸å½è¿å ¥åè£å²æ®å±é¢ã
代ç ï¼
代ç å°±æ¯ç¨åºåç¨å¼åå·¥å ·ææ¯æçè¯è¨ååºæ¥çæºæ件ï¼æ¯ä¸ç»ç±å符ã符å·æä¿¡å·ç å 以离æ£å½¢å¼è¡¨ç¤ºä¿¡æ¯çæç¡®çè§åä½ç³»ã代ç 设计çååå æ¬å¯ä¸ç¡®å®æ§ãæ åååéç¨æ§ãå¯æ©å æ§ä¸ç¨³å®æ§ã便äºè¯å«ä¸è®°å¿ãåæ±çå°ä¸æ ¼å¼ç»ä¸ä»¥å容æä¿®æ¹çã æºä»£ç æ¯ä»£ç çåæ¯ï¼æç§æä¹ä¸æ¥è¯´ï¼æºä»£ç ç¸å½äºä»£ç ã
ç°ä»£ç¨åºè¯è¨ä¸ï¼æºä»£ç å¯ä»¥ä¹¦ç±æç£å¸¦å½¢å¼åºç°ï¼ä½æ为常ç¨æ ¼å¼æ¯ææ¬æ件ï¼è¿ç§å ¸åæ ¼å¼çç®çæ¯ä¸ºäºç¼è¯åºè®¡ç®æºç¨åºã计ç®æºæºä»£ç æç»ç®çæ¯å°äººç±»å¯è¯»ææ¬ç¿»è¯æ为计ç®æºå¯æ§è¡çäºè¿å¶æ令ï¼è¿ç§è¿ç¨å«ç¼è¯ï¼å®ç±éè¿ç¼è¯å¨å®æã
偷偷跟我学这个看源码的小技巧,早日解放双手
大家好!
在看源码的过程中,查看 Git 提交记录是了解文件演变过程的有效途径。对于如何在 IDEA 中查看这些记录,可能有些同学感到困惑。这篇文章将分享一些实用的小技巧,帮助大家更直观地进行源码学习。
首先,确保你的本地环境配置了 Git。如果还没有安装 Git,强烈建议你先完成安装并熟悉基本操作。
接下来,使用 Git 克隆一个感兴趣的开源项目,例如 Redssion。在 IDEA 中导入项目并查看文件右键菜单,确认是否能找到“Git”选项。如果找不到,可能是 Git 配置问题,进入 IDEA 设置中进行相应的调整。
在 IDEA 的“Version Control”标签页中,你可以看到项目的提交历史。通过这个界面,你可以快速浏览文件的变更情况,了解代码的演变过程。
在日常工作中或撰写文章时,使用 IDEA 的 Git 功能主要关注提交记录,而不是直接在 IDEA 中进行代码提交。这种方式提供了可视化的代码历史,有助于理解代码的变更轨迹。
以 Redssion 为例,通过在 GitHub 的 issues 页面搜索关键词(如“死锁”),可以找到相关的问题讨论和代码修复。关注这些信息能帮助你更快定位问题和学习关键代码变更。
使用 IDEA 的 Git 插件,可以方便地查看特定日期的提交记录。在“Version Control”标签页中,通过过滤功能找到目标日期的提交,这样可以快速定位到关键变更。
通过查看提交记录,你可以了解代码的签约支付平台源码具体修改内容,这对于深入理解代码实现和调试问题非常有帮助。例如,在 Redssion 中,可以追踪到特定类的修改历史,了解其功能演进。
此外,通过查看项目的首次提交记录,可以了解项目的起源和发展历程。例如,Dubbo 的首次提交记录反映了项目早期的状态和开发团队的辛勤工作。这些历史记录不仅展示了技术演变,也蕴含了项目发展的故事。
总的来说,利用 IDEA 的 Git 功能探索代码历史,不仅可以帮助你更高效地学习和理解源码,还能深入了解项目的开发背景和演进过程。通过这种方式,源码阅读将变得更具趣味性和实用性。
怎么查看网页源码
如何搜索网址?下面6个步骤帮你解决。1。首先,记下你需要搜索的网站的网址。URL显示在网页标题的下方,通常以/index.html进如国家企业信用信息公示系统主页。
在搜索栏里面输入要查询的公司的名称,或注册号或信用代码。
按照提示进行验证。
验证完成后就会显示该公司的注册信息了
全国企业信用信息公示系统,也叫做企业信用信息查询系统、工商注册查询系统
通过该系统,我们可以查询到工商注册企业的相关信息。
如何查找一个网站的空间地址?
很简单,在本地电脑上点开始-运行.输入cmd接下来输入命令:ping你的网站域名(注意中间有个空格)然后按回车.就会显示你这个空间的IP了.还有一种方法.就是利用IP的网站查询.只要在这个网站上面输入域名.点查询就可以显示所在的IP了
uc浏览器怎么看网站?
uc浏览器做为一款老牌浏览器,这么长时间来,一直都没什么大问题,可谓是居家旅行必备神器,至于怎么看网站,直接搜就管,没有啥花里胡哨,直接搜,搜关键词,看自己要搜啥,基本上都没啥问题,一搜都能搜出来,再看也能出来,搜关键词,看自己搜啥
怎么找历史浏览网站?
华为手机上查找浏览网站历史的方法为:
工具:华为荣耀8
1、在手机桌面上找到浏览器选项,点击打开浏览器工具。
2、在浏览器的右下角找到”更多选项“按钮,点击打开。
3、之后会跳出一个页面,找到”书签/历史“选项,点击打开。
4、在书签/历史界面上方找到”历史“选项,点击即可查看流量网站历史。
怎么查找网站的****?
方法:?1、首先在地址栏上输入网址。
2、输入后,会跳转到门户网站。3、通常,网页设计会将****放在网站主页的导航栏或者页尾,而且常常会使用类似关于我们,联系我们等作为链接跳转的标题。4、在门户网站上的导航栏就有联系我们。5、点击该选项联系我们后,在跳转的页面上就可以看到网站管理员的****。6、回到主页后再来看看页尾。7、从页尾上也有****字样。8、页设计通常会将****放在网站主页的导航栏或者页尾,但并不是所有网站都会这样设计,有些****是放在右侧栏。Cat 命令的源码历史
在计算机科学领域,有人曾质疑是否值得主修这个学科,认为它发展迅速,学过的知识可能很快过时。然而,实际上,计算机科学的基础原理和技能并没有因为技术的更新而完全变化。例如,grep这个简单的程序自年编写以来,仍然在被广泛使用,证明了计算机科学领域中一些原理的持久性。
以grep为例,它在年后就没有更新过,这表明在计算机科学中,有些原理和技能可以经受住时间的考验。即使技术在不断进步,但解决问题的方法和思路仍然可以被应用在新的场景中。
回顾cat命令的源码历史,可以发现它自年肯·汤普森编写以来,经历了多次重写,但核心功能和运行方式基本保持不变。从PDP 7到PDP 再到C语言,cat命令在不断适应新的硬件和编程环境,但其基本原理和功能仍然得以保留。
尽管cat命令的源码在不同的Unix版本中有所变化,但其核心功能和原理并没有过时。这表明,在计算机科学领域,有些原理和技能可以跨越时间,经久不衰。因此,计算机科学并非一个不断破坏现状的领域,而是建立在历史文物基础上的学科。
在现代计算机系统中,我们正在使用着有着数十年历史的程序,例如grep和cat命令。这说明在计算机科学领域中,有些想法和程序本身具有持久性。随着时间的推移,我们可能会发现自己正在使用着有着接近百年历史的程序。
因此,计算机科学和软件开发不仅仅是不断发明新技术的过程,而是对历史文物的持续理解和维护。有时,我们可能需要花费更多时间在理解和维护这些历史程序上,而不是编写新代码。计算机科学的持久性体现在它能够适应技术的发展,同时保留其核心原理和功能,为未来的技术发展打下坚实的基础。
vue的理解-vue源码 历史 简介 核心特性 和jquery区别 和 react对比
Vue的理解: 历史、简介、核心特性和与jQuery和React的对比
Web技术的演变如同历史长河,从石器时代到工业革命,见证了从静态网页到动态交互的飞跃。最初,年的Apple官网代表了静态网页的简单展示。随着CGI技术的出现,如年的Google,网页开始与服务端进行交互。 进入文明时代,ASP和JSP等技术(如JSP示例)的出现增强了服务器端交互的安全性,但JSP的灵活性受限。Ajax的出现(尽管不是年才流行),解决了交互的问题,促进了SPA(单页面应用)的诞生,如Backbone、EmberJS和AngularJS等框架的兴起,标志着工业时代的到来。 进入百花齐放的时代,前端框架如Vue登场,它在年发布,以MVC模式中的视图层为核心,旨在简化Web开发。Vue.js,因其轻量级和%的开发者满意度,成为GitHub上热门项目。 Vue的核心特性包括数据驱动的MVVM模式和组件化开发。组件化允许将逻辑抽象为独立的单元,指令系统则负责响应式地操作DOM。与传统开发相比,Vue通过双向数据绑定简化了操作DOM的步骤,如注册账号场景中,Vue通过变量控制显示逻辑。 在与React对比中,Vue和React在介绍前都涉及了diff算法,但各有侧重点:Vue的diff优化了对静态类型Vnode的处理,而React通过虚拟DOM实现高效更新。两者都强调了性能和组件化,但适用场景和实现方式有所不同。konva.js 原理与源码解析
Konva是一个基于2D canvas的类库,适用于桌面和移动设备,提供图形组件、事件系统、变换、高性能动画、节点嵌套与分层等功能。Konva与FabricJS都是高性能2D渲染库,适合编辑器场景,各有优势。
Konva架构基于图形树,类似DOM结构,通过add和remove操作增删节点。核心包括SceneContext和HitContext,实现绘制填充和描边。Konva通过Canvas缓存绘制图形信息,用户点击时判断击中图形。
拾取方案中,Konva在SceneCanvas上绘制图形同时在HitCanvas上绘制,使用随机索引颜色,用户点击时根据缓存判断图形。流程包括获取交集、计算击中图形,触发交互事件。
Konva的Node类是图形的底层封装,包含各种方法,所有Konva节点最终继承自Node。渲染流程包括添加图形、绘制、缓存和重绘。Node类的draw方法调用drawScene和drawHit,最终执行具体图形类的绘制方法。
属性更新流程使用Factory模块绑定属性,通过getter和setter实现,统一调用Node._setAttr方法更新属性并批量重绘。Konva历史源码基于ES3定义类,Factory模块在代码中添加属性绑定逻辑。
总体而言,Konva的结构设计、图形绘制、交互处理和属性更新机制共同构建了一个高效、灵活的2D图形渲染框架。
什么是源代码
源代码是指一种编程语言的原始文本文件,包含了实现某个功能或程序的全部指令和逻辑。源代码是一种编程语言书写的文本文件,也称为程序源代码或源代码文件。它是计算机程序的基础,包含了实现某个功能或程序的全部指令和逻辑。源代码通常以文本形式存在,可以被开发者阅读、编辑和修改。在软件开发过程中,开发者使用特定的编程语言编写源代码,并通过编译器将其转换为计算机可以执行的二进制代码。这个转换后的程序被用于实际运行和处理数据。开发者可以在特定平台和框架中开发和测试源代码,并在测试和验证其功能和性能后将其发布到生产环境中。此外,源代码的版本控制也是软件开发过程中的一个重要环节,用于跟踪和管理代码的变更历史。这些特点使得源代码成为软件开发的核心组成部分。
源代码是软件开发的基石,它包含了程序的所有逻辑和指令。开发者通过编写源代码来实现特定的功能或解决特定的问题。同时,源代码也是软件可维护性和可扩展性的重要基础,因为它可以被轻松地修改和更新以适应不断变化的需求和环境。此外,源代码的开放性也促进了软件行业的合作和创新,开发者可以共享和借鉴他人的代码来创建更好的解决方案。总之,源代码在软件开发和计算机编程中扮演着至关重要的角色。
2024-11-13 09:55
2024-11-13 09:53
2024-11-13 08:57
2024-11-13 08:25
2024-11-13 08:00