病毒描述
在本地的html文件中以js在文件末尾添加一定字符 以达到占用内存的影响
http://anquan.baidu.com/bbs/forum.php?mod=viewthread&tid=395007&page=1#pid2178566
然后呢
这样处理的病毒感染的文件
java重新写新文件到txt
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
public class wz {
public static void main(String[] args) {
String s1 = "C:\\Users\\Administrator\\Desktop\\ZM\\C++课件--V2";
String s2 = "C:\\Users\\Administrator\\Desktop\\ZM\\newc";
// CopyFile();
File file = new File(s1);
File file2 = new File(s2);
if (!file2.exists()) {
file2.mkdir();
}
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
CopyFile(s1 + "\\" + f.getName(), s2 + "\\" + f.getName()+".txt");
}
}
}
private static void CopyFile(String name1, String name2) {
BufferedReader br = null;
PrintWriter pw = null;
try {
br = new BufferedReader(new FileReader(name1));
pw = new PrintWriter(name2);
String s = null;
while ((s = br.readLine()) != null) {
int a = s.indexOf("</HTML>");
if (a != -1) {
String sub = s.substring(0, a + 7);
pw.write(sub);
break;
}
pw.write(s);
pw.write("\r\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (pw != null) {
pw.close();
}
}
}
}居然文件大小没有改变大小 html 清除了wcripst.EXE的病毒(vbs干扰了微软的文件)
于是动用c语言
发现一样的是不行的
最后找到改变文件大小的函数是可以搞定的
#include<io.h>
#include<fcntl.h>
//#include<syspes.h>
#include<sys/stat.h>
#include<stdio.h>
#include<iostream>
#include<fstream>
using namespace std;
void fun(char *name,int n )
{
int fh, result;
unsigned int nbytes = BUFSIZ;
if( (fh = open(name,std::ios::in)))
{
cout<<"File length before:"<<filelength( fh )<<endl;
if( ( result = chsize( fh, n) ) == 0 )
cout<<"Size successfully changed"<<endl;
else
cout<<"Problem in changing the size"<<endl;
cout<<"File length after:"<<filelength( fh )<<endl;
close( fh );
}
}
int main()
{
char name[128] ="C:\\Users\\Administrator\\Desktop\\ZM\\newc\\1.txt";
FILE* fr = fopen(name,"rb");
int size = 0;
int flag = 0;
char a='c';
int ct=1;
int n=50;
while(n--)
{
fgets(fr);
}
while((a = fgetc(fr))!= EOF)
{
if(a == '<')
{
flag = 1;
continue;
}
if(a == '/' && flag == 1)
{
continue;
}
if(flag == 1 && (a=='H'|| a== 'h'))
{
fgetc(fr);
fgetc(fr);
fgetc(fr);
fgetc(fr);
size = ftell(fr);
break;
}
flag = 0;
}
fclose(fr);
fun(name,size);
return 0;
}但 还是不行,,,,
注意在普通的页面中不能以/html判断终结 因为txt/html字段可能在其中
指定文件大小统一改为80kb能省点空间 后面有附件 一份txt

















