One Click Reverse VNC Solution

Based on TightVNC

How to ultra simplify establishing a reverse VNC connection between a host and remote computer.

Download VNC Solution (both shortcut and detailed) with instructions needed to do everything offline: shortdetailed.zip

The instructions below are detailed but actually very simple. If they seem too long or you are in a hurry:

Go to Super Simple Shortcut Method and Instructions

 

Download Newly Discovered, Ultra Simple Reverse VNC Approach - Skip Complicated Steps - Much Smaller Final Files - All Freeware Applications - Video Instructions Included: reversevnc.zip

 

 

Credit to 'Raymond' Blog for the inspiration: Raymond Blog

If your interest in leaning about reverse vnc capability is to use it for an irresponsible purpose, please read: Help not Hurt

 

GOAL:

To create two compiled files. One to be executed on a host computer instructing it to listen for an incoming request for connection over a network or the Internet. Send the other file to a remote computer where it is executed. Within a few seconds, a realtime image of the remote computer's screen appears on the host computer's screen. Keyboard and mouse control of the remote is given to the host computer as well as file transfer capability. No installation of VNC programs or files takes place on either the host or remote computers. After completing the session, the two temporary files can be deleted returning both computers to their beginning states. 

 

BACKGROUND:

Virtual Network Computing (VNC) is a method of remotely controlling another computer over a network. A host computer is able to take control of a remote computer by communicating keyboard and mouse commands to the remote site. Screen images and all keyboard and mouse movements at the remote computer are displayed on the host computer's screen. To enable a connection between the host and remote systems it is usual to have special software installed on both. The host computer operator initiates the link and the remote computer accepts the request. Generally both sites utilize an agreed upon password and sometimes data transmission encryption is used to prevent unauthorized access and to assure security. The process of configuring the remote computer and host computer sites sometimes can be complicated. Some of the complications involve: Installing and configuring the host and remote software, entering the agreed on password and other parameters and configuring network routers with an assigned port number. When trying to set up a VNC connection across a corporate network, special pemissions may be needed to permit penetration of the corporate firewall.

A VNC connection can be particularly useful to help a service technician perform problem diagnosis and repair on a remote computer without having to physically visit the computer site. However, the challenges of installation, setup, and configuration of the remote computer site may be beyond the ability of the remote operator or the patience of the host operator to walk the remote operator through the various steps required to make the connection possible.

The source of my personal interest in this topic arises from the fact that occasionally I'm asked to help other family members and friends resolve their computer problems. Establishing a VNC connection between my computer and their's is the ideal approach to enable me to provide help. In order to avoid the complexities normally associated with setting up the connection, I gave myself the goal of simplifying the process as much as possible by creating a standalone file that could be emailed or downloaded to the remote computer. When executed by the remote operator, this one file would perform all the steps required to establish a VNC connection without any additional operator involvement. The file would not install any software on the remote computer so that when the session was finished, the file could be deleted and the computer would return to its original configuration.

After some modest research, I acquired the software tools and techniques needed to compile such files. The purpose of this document is to share how to do this with others so they can benefit from what I have learned. The approach utilizes a reverse feature of VNC communications that greatly simplifies establishing a link between two computers. A normal forward VNC connection with a remote computer requires both the host and remote operators to install and configure VNC software on their computers and configure port forwarding of the remote computer's router if it is on an internal network. The host operator would need to be told the remote's IP address and port number which would be configured into their VNC software. However, VNC software can establish a reverse VNC connection, initiated by the remote operator, making it unnecessary for them install software, to know their IP address or to program their router with a port number, greatly simplifying the process.

 

How to do it.

First let's jump to the end to see what we finish with before presenting the steps by which we get there. Controlling one computer from another is as simple as: Compile two files, one for the host and one for the remote. Click on the host file. Send a file to the remote. Click on the remote file. Connection completed.

 

Tools list:

1. Download Quick BFC (Quick Batch File Compiler) - http://www.abyssmedia.com

2. Download tightvnc-1.3.9_x86.zip (or latest revision) - http://www.tightvnc.com/download.html or shortdetailed.zip (which contains both Quick BFC and TightVNC)

3. reg.exe - found in your Windows folder

 

Install Quick BFC. It is shareware and should be purchased if you plan to maintain or modify your reverse VNC files over time. TightVNC is a freeware product and reg.exe comes with all versions of Windows.

 

 STEPS TO COMPILE THE REMOTE EXECUTABLE:

1. Create a folder named TightVNC.

2. Make a copy of the reg.exe file from your Windows folder and move it to the TightVNC folder.

3. Open tightvnc-1.3.9_x86.zip and copy WinVNC.exe and VNCHooks.dll to the TightVNC folder.

4. Click on WinVNC.exe to run the program. Enter new Primary and View-only passwords. Leave all settings at their defaults. Click Ok. Close the TightVNC Server icon on the bottom right of the toolbar. The default WinVNC settings have now been entered into your Windows registry.

 

5. Save the WinVNC registry information as files. Under toolbar Start, run regedit. Go to the top of the registry list and click on My Computer. Press F3 and search for WinVNC3. Right click on the first highlighted WinVNC3 folder and export it to the TightVNC folder. Name the file WinVNC.reg . Press F3 to continue searching for the second folder named WinVNC3 and also export it to the TightVNC folder with the name WinVNC2.reg. Except for the Password entries, the contents of the two files should be identical to:

 

 6. Use a text editor to create and save a file named WinVNC.bat with the contents below. Change/Edit the contents 70.112.119.102 to your own Internet IP address. Port number 5500 is the default port and can not be changed. Move this file to the TightVNC folder.

 

7. If you are the host on an internal network, don't forget to program port forwarding of your router to your network IP address and port number. For example, assign port 5500 to your host computer:

 

8. You might consider making an ico file of the WinVNC icon image (or use any other ico icon image) for use in the compile step. It's not necessary, but it makes the final compiled files look more professional.

 

 

9. Open the Quick BFC application. Drag and Drop the WinVNC.bat file into the open window. Don't forget to have modified the example IP address 70.112.119.102 to your own.

 

10. Add the ico icon image file under Custom Resources.

 

11. Add the reg.exe, WinVNC.reg, WinVNC2.reg ,WinVNC.exe and VNCHooks.dll files under Include.

 

12. Select Options and select for Ghost Application.

 

13. Click on Build and save the compiled file ReverseVNC.exe to the TightVNC folder.

 

 

 

 STEPS TO COMPILE THE HOST EXECUTABLE:

1. Open tightvnc-1.3.9_x86.zip and copy vncviewer.exe to the TightVNC folder.

2. Use a text editor to create and save a file named VNCviewer.bat with the contents below. Move this file to the TightVNC folder.

 

 

3. Open the Quick BFC application. Drag and Drop the VNCviewer.bat file into the open window.

 

 

4. Add the ico icon image file under Custom Resources.

 

5. Add the vncviewer.exe file under Include.

 

 

6. Select Options and select for Ghost Application.

 

7. Click on Build and save the compiled file VNCviewer-listen.exe to the TightVNC folder.

 

 

CONCLUSION:

1. If all went well you should have the following new files in the TightVNC folder (see picture below).

2. VNCviewer-listen.exe is run first on the host computer and ReverseVNC.exe is run second on the remote computer to give the host control of the remote.

3. You can test whether your builds were successful by first executing VNCviewer-listen.exe then executing ReverseVNC.exe second on the same computer.

If the builds are working and port forwarding of your router is programmed correctly, then multiple copies of your desktop screen will begin to open on your computer. You can kill the process by clicking on the upper right most x of the first screen opened.

 

 

 

 ADDENDUM ON CHANGING THE PORT NUMBER FROM THE DEFAULT 5500:

TightVNC literature and Internet advice sources are not very clear on how to change the default reversevnc port number 5500 or even if it can be changed. So I experimented for myself and found that it can be changed. The advantage in changing ports is to avoid possible interference from simultaneous connections if you send out many copies of the client software using only the default port number. One Internet site suggested that only ports in the 55xx range would work but I've successfully tested port numbers outside of 55xx. I don't know what the port number limits may be but you could conduct experiments for yourself based on your needs to see what works.

To implement a port number different from the default 5500 (let's use 5501 for example), there are three steps different or in addition to the general instructions.

Step 1: In the WinVNC.bat file change the port number at the end of the line: %myfiles%\WinVNC.exe -connect 70.112.119.102::5500 to: %myfiles%\WinVNC.exe -connect 70.112.119.102::5501 or to some other port number of your choosing. (don't forget to also change 70.112.119.102 to your own IP address).

Step 2: In the VNCviewer.bat file change the: start %myfiles%\vncviewer.exe -listen to: start %myfiles%\vncviewer.exe -listen 5501 or to the different port number chosen in step 1.

Step 3: Lastly change the port forwarding in your router to the number 5501 or to the number from steps 1 and 2.