Xvfb是X Virtual Framebuffer的缩写,它是一个虚拟X服务器,用于在没有物理显示设备的情况下运行图形界面应用程序。通常情况下,Xvfb被用于服务器环境或无需图形用户界面的系统上。
有时再图形界面的linux去fuzz GUI程序,GUI程序会阻挡我们的操作,这里将GUI程序放到虚拟显示设备显示,那再好不过了
安装与使用
1 | sudo apt-get install xvfb |
在Linux系统中,X服务器通过显示端口号来区分不同的显示屏,通常使用:0作为默认的物理显示端口,而虚拟显示端口从:1开始。所以虚拟显示端口起码得从1开始,1024x768x16 是分辨率,16是颜色的位数(8是256色,16是增强色,32位是真彩色)
而-screen应该是虚拟屏幕的编号
1 | Xvfb :1 -screen 0 1024x768x16 |
1 |
|
1 |
|
启动服务器,绑定的是编号是1的
1 | x11vnc -display :1 |
这个默认是screen 0,所以上面两个等价,假如是screen 1
1 | x11vnc -display :1.1 |
让程序再screen 1上显示,设置一下DISPLAY环境变量即可
1 | export DISPLAY=:1.1 |
之后即可通过vnc客户端连接5900端口即可
当然共享当前物理显示也行,就是编号是0
1 | x11vnc -display :0 |
当然最好设置密码
先生成密码文件
1 | fuzzplat@fuzzplat:~$ x11vnc -storepasswd |
你可以cat一下这个文件,是加密的,之后启动的时候通过-rfbauth指定密码文件路径
1 | x11vnc -display :2 -rfbauth /home/fuzzplat/.vnc/passwd |
再访问呢就要输入密码了
或者不太安全的是再命令行指定密码,下面的密码是test,推荐使用上面的
1 | x11vnc -display :1 -passwd test |