您的位置:程序门 -> java -> j2se / 扩展类



怎么得到远程主机屏幕上的画面并在自己电脑上看到啊?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎么得到远程主机屏幕上的画面并在自己电脑上看到啊?[已结贴,结贴人:lixin199036061]
发表于:2007-01-14 08:15:13 楼主
怎么得到远程主机屏幕上的画面并在自己电脑上看到啊?

就是说我能在自己的电脑上实时的看到远程主机上的屏幕


还有一个就是怎么对远程主机进行扫描漏洞

我怎么知道哪些是漏洞呢?

功能就象是瑞星防火墙那样的
发表于:2007-01-14 10:12:271楼 得分:0
你用java实现?
建议先玩简单的,扫描肉鸡---> 登陆---> 屏幕显示---> 后门(多为win2000或以下系统)
你要破人家漏洞是没这么容易的~~多上上hacker网站吧
发表于:2007-01-14 11:42:102楼 得分:0
你想错了

我不是作黑软

这是我的毕设题目

扫漏洞就一定要破吗?

我说的 "远程主机 "主要是指在同一局域网内的机子

或是说已知道密码的机子

再换句话说就是我是最高权限用户,行使的是监控功能

发表于:2007-01-14 12:12:213楼 得分:0
那你研究下java调用系统自带的远程协助吧
发表于:2007-01-14 12:53:394楼 得分:0
是linux的操作系统么?
发表于:2007-01-14 18:58:265楼 得分:0
哪本书上会写这些东西呢?
发表于:2007-01-15 11:04:516楼 得分:0
要自己用java写windows的远程控制吗?感觉难吧
发表于:2007-01-20 20:07:447楼 得分:0
先别说远程,java能对本地进行控制吗?如果可以的话,远程也一样可以。socket呗。
发表于:2007-01-21 13:22:318楼 得分:0
有难度
发表于:2007-01-21 14:31:569楼 得分:0
java.awt.robot有你想要的一切。
发表于:2007-01-22 17:13:0310楼 得分:10
每隔1秒对客户机截屏,并用socket返回截屏图片给你。
给你个截屏的代码,其他的就简单了:

package   co.junit;

import   java.awt.dimension;  
import   java.awt.rectangle;  
import   java.awt.robot;  
import   java.awt.toolkit;  
import   java.awt.image.bufferedimage;  
import   java.io.file;  

import   javax.imageio.imageio;  

/*******************************************************************  
  *   ?javabean???????java????????????? "?? "  
  *   this   javabean   is   used   to   snapshot   the   gui   in   a    
  *   java   application!   you   can   embeded  
  *   it   in   to   your   java   application   source   code,   and   us  
  *   it   to   snapshot   the   right   gui   of   the   application  
  *   @see   javax.imageio  
  *   @author   liluqun   ([email]liluqun@263.net[/email])  
  *   @version   1.0  
  *  
  *****************************************************/  

public   class   guicamera  
{      
        private   string   filename;   //?????  
        private   string   defaultname   =   "guicamera ";  
        static   int   serialnum=0;  
        private   string   imageformat;   //???????  
        private   string   defaultimageformat= "png ";  
        dimension   d   =   toolkit.getdefaulttoolkit().getscreensize();  

        /****************************************************************  
          *   ????????guicamera??????png??  
          *   the   default   construct   will   use   the   default    
          *   image   file   surname   "guicamera ",    
          *   and   default   image   format   "png "  
          ****************************************************************/  
        public   guicamera()   {  
            filename   =   defaultname;  
            imageformat=defaultimageformat;  
         
        }  

        /****************************************************************  
          *   @param   s   the   surname   of   the   snapshot   file  
          *   @param   format   the   format   of   the     image   file,    
          *   it   can   be   "jpg "   or   "png "  
          *   ?????jpg?png?????  
          ****************************************************************/  
        public   guicamera(string   s,string   format)   {  
         
            filename   =   s;  
            imageformat=format;  
        }  
         
        /****************************************************************  
          *   ???????  
          *   snapshot   the   gui   once  
          ****************************************************************/  
        public   void   snapshot()   {  
         
            try   {  
            //???????bufferedimage??screenshot  
                bufferedimage   screenshot   =   (new   robot()).createscreencapture(new  
                        rectangle(0,   0,   (int)   d.getwidth(),   (int)   d.getheight()));  
                serialnum++;  
                //???????????????????????  
                string   name=filename+string.valueof(serialnum)+ ". "+imageformat;  
                file   f   =   new   file(name);  
                system.out.print( "save   file   "+name);  
            //?screenshot????????  
                imageio.write(screenshot,   imageformat,   f);  
                system.out.print( "..finished!\n ");  
            }  
            catch   (exception   ex)   {  
                system.out.println(ex);  
            }  
        }  

        public   static   void   main(string[]   args)  
        {  
                guicamera   cam=   new   guicamera( "d:\\hello ",   "png ");//  

                cam.snapshot();  
        }  
}

发表于:2007-01-22 19:03:1711楼 得分:0
mark!
发表于:2007-01-23 10:58:0912楼 得分:0
mark~~~~~~~~~
发表于:2007-01-24 23:52:4713楼 得分:0
mark
发表于:2007-01-25 00:08:3514楼 得分:0
在远程机器上运行一个程序,这个程序的功能就是(1)截屏(2)把图像发送给你的机器上一个软件
而你的机器上的这个软件的功能就是(1)收从远程机器发来的图像(2)显示这个图像
发表于:2007-01-25 16:33:3815楼 得分:0
有现成的:vnc
http://www.realvnc.com/
发表于:2007-01-26 09:50:3716楼 得分:2
up
发表于:2007-01-28 18:18:1817楼 得分:2
能不能传送是要看能不能串行化的,不是你想传就能传的。
发表于:2007-01-28 18:38:4718楼 得分:2
一个区区的java能做到监控?!
你也太高看java了
发表于:2007-01-30 10:41:1819楼 得分:2
监视是可以做到,   但是控制恐怕就难了!   扫描漏洞恐怕不是java能做到的哦
发表于:2007-01-30 10:51:1820楼 得分:2
用win2003吧!^__^
发表于:2007-02-01 11:22:0421楼 得分:10
import   java.awt.*;
import   java.util.*;
import   java.awt.geom.*;
import   java.awt.image.*;
import   java.awt.event.*;
import   java.io.*;
import   javax.swing.*;
import   com.sun.image.codec.jpeg.*;
class   one
{int   x,y;
  one(int   x,int   y)
  {this.x=x;this.y=y;
  }
}
public   class   ex_12_1_1   extends   canvas   implements   mousemotionlistener,mouselistener,actionlistener
{    
      int   x=-1,y=-1,橡皮擦通知=0,清除通知=0;
      vector   v=null;int   n=1;
      graphics2d     ggg   ;                                                                                          
      bufferedimage   image;                                                                                    
      frame   window;
      button   保存,调色板,橡皮,清除,画笔,获取屏幕,绘制图形;
      color   画笔颜色;
      panel   pcenter,psouth,pnorth;
   
  public   ex_12_1_1()
  {  
        保存=new   button( "将绘制的图形或屏幕保存为jpg文件 ");
        获取屏幕=new   button( "获取屏幕 ");
        绘制图形=new   button( "绘制图形 ");
        调色板=new   button( "打开调色板 ");
        画笔=new   button( "画笔 ");
        橡皮=new   button( "橡皮 ");
        清除=new   button( "清除 ");
        调色板.addactionlistener(this);
        绘制图形.addactionlistener(this);
        保存.addactionlistener(this);
        画笔.addactionlistener(this);
        橡皮.addactionlistener(this);
        清除.addactionlistener(this);
        获取屏幕.addactionlistener(this);
        画笔颜色=new   color(0,0,0);
        addmousemotionlistener(this);  
        addmouselistener(this);
        v=new   vector();  
        setbackground(color.white);                                                                  
        image=new   bufferedimage(200,200,bufferedimage.type_int_rgb);
        ggg=image.creategraphics();                                                                  
        rectangle2d   rect=new   rectangle2d.double(0,0,200,200);            
        ggg.setcolor(getbackground());
        ggg.fill(rect);                                                                                          
        window=new   frame( "jpeg图像生成器 ");
        pcenter=new   panel();
        pcenter.setlayout(null);
        pcenter.add(this);
        pcenter.setbackground(color.gray);
        this.setbounds(80,30,210,210);                                                            
        window.add(pcenter,borderlayout.center);
        pnorth=new   panel();
        pnorth.add(保存);
        pnorth.add(绘制图形);
        pnorth.add(获取屏幕);
        window.add(pnorth,borderlayout.north);
        psouth=new   panel();
        psouth.add(调色板);
        psouth.add(橡皮);
        psouth.add(清除);
        psouth.add(画笔);
        window.add(psouth,borderlayout.south);
        window.setvisible(true);
        window.addwindowlistener(new   windowadapter()
                                      {  
                                          public   void   windowclosing(windowevent   e)
                                          {  
                                                system.exit(0);
                                      }
                                  });
        window.setbounds(100,80,390,380);
        window.validate();                                                                                  
  }
  public   void   paint(graphics   g)                                                                  
  {
        if(x!=-1&&y!=-1&&橡皮擦通知==0&&清除通知==0)
          {    
                g.setcolor(画笔颜色);
                n=v.size();
                for(int   i=0;i <n-1;i++)
                  {
                      one   p1=(one)v.elementat(i);  
                      one   p2=(one)v.elementat(i+1);  
                      g.drawline(p1.x,p1.y,p2.x,p2.y);                                          
                      ggg.setcolor(g.getcolor());
                      ggg.drawline(p1.x,p1.y,p2.x,p2.y);                                      
                  }
          }
        else   if(橡皮擦通知==1&&清除通知==0)
          {
              g.setcolor(getbackground());
              g.fillrect(x-2,y-2,4,4);
              ggg.setcolor(getbackground());
              ggg.fillrect(x-2,y-2,4,4);
          }
      else   if(清除通知==1&&橡皮擦通知==0)
          {
              g.setcolor(getbackground());
              g.fillrect(0,0,200,200);
              ggg.setcolor(getbackground());
              ggg.fillrect(0,0,200,200);
          }

        g.drawimage(image,0,0,200,200,this);                                              
  }
public   void   mousedragged(mouseevent   e)
  {    
            x=(int)e.getx();
            y=(int)e.gety();
            point   p=new   point(x,y);
            v.addelement(p);
            repaint();
  }
    public   void   mousemoved(mouseevent   e)
    {}  
    public   void   mousepressed(mouseevent   e)
    {}  
    public   void   mousereleased(mouseevent   e)
      {      
            v.removeallelements();
      }
    public   void   mouseentered(mouseevent   e){}
    public   void   mouseexited(mouseevent   e){}
    public   void   mouseclicked(mouseevent   e){}
   
    public   void   update(graphics   g)
    {  
        {
            paint(g);
        }
    }  
    public   void   actionperformed(actionevent   e)
    {  
        if(e.getsource()==橡皮)
              {
                  橡皮擦通知=1;
                  清除通知=0   ;
              }
        else   if(e.getsource()==清除)
              {
                  清除通知=1;  
                  橡皮擦通知=0;
                  repaint();
              }
        else   if(e.getsource()==画笔)
        {  
            橡皮擦通知=0;
            清除通知=0;
        }

        else   if(e.getsource()==保存)
              {
                    filedialog   savedialog=new   filedialog(window, "保存图型到jpg格式 ",filedialog.save);

                    savedialog.setvisible(true);      
                                                                                 

                    if(savedialog.getfile()!=null)  
                          {
                                try{
                                          string   filename=savedialog.getfile();        
                                          fileoutputstream   out=new   fileoutputstream(filename);
                                         
                                          jpegimageencoder   encoder=jpegcodec.createjpegencoder(out);
                                         
                                          jpegencodeparam   param=encoder.getdefaultjpegencodeparam(image);
                                         
                                          param.setquality(1.0f,false);
                                          encoder.setjpegencodeparam(param);
                                         
                                          encoder.encode(image);
                                          out.close();
                                      }
                              catch(exception   ee)
                                      {
                                      }  
                          }          
              }
        else   if(e.getsource()==获取屏幕)
              {
                  robot   robot=null;                                                              
                  try{
                          robot=new     robot();                                                  
                        }
                  catch(exception   er)
                        {
                        }
                  rectangle   screenrect=null;                                            
                  int   width=gettoolkit().getscreensize().width;      
                  int   height=gettoolkit().getscreensize().height;  
                  screenrect=new   rectangle(0,0,width,height);  
               
                  window.setvisible(false);                                              
                  this.window.setvisible(false);
                  image=robot.createscreencapture(screenrect);        
                  window.setvisible(true);
                  repaint();                                                                            
              }
      else   if(e.getsource()==调色板)
              {
                  color   tempcolor=jcolorchooser.showdialog(window, "调色板 ",画笔颜色);
                      {
                          if(tempcolor!=null)
                              {
                                  画笔颜色=tempcolor;
                                  画笔.setforeground(画笔颜色);
                              }
                      }
              }
      else   if(e.getsource()==绘制图形)
              {  
                  window.dispose();                                                                  
                  this.window.dispose();
                  ex_12_1_1   canvas=new   ex_12_1_1();
              }
    }
  public   static   void   main(string   args[])
    {
        new   ex_12_1_1();
    }
}
发表于:2007-02-07 13:06:4022楼 得分:0
mark
发表于:2007-02-07 16:01:1923楼 得分:0
同意muymuy,vnc   is   the   best!


快速检索

最新资讯
热门点击