Copyright © 2009 Purdea Andrei
VNC Remote Assistance Connect Window
The Connect Window

VNC Remote Assistance

Are you the person everybody turns to when they have computer trouble? If the answer is yes, then this solution is for you. This is a zero-configuration solution. All that the person you are helping needs to do is to download an executable, run it, and click Connect. This solution also works with most HTTP proxy servers. It also automatically reads the Internet Explorer proxy settings, so ideally the person you are helping won't have to enter the proxy settings manually. It will not wait for new connections and it will not install itself as a service. You don't need to set up any passwords, but it does support proxy authentication just in case you need it (see the Auth? link on the bottom right).

Traditional VNC packages are good, but they have a few drawbacks. These packages need to be installed by the person needing help. They need to have an external IP address, and configure a password (and possibly port forwarding on their routers), or add a listening vnc viewer manually by typing in the address of the helper. Some packages also install themselves as an automatically starting windows service, which leaves them vulnerable because of possible misconfiguration. They also don't work over proxy servers. A similar solution to mine is UltraVNC SC. A disadvantage of SC is that it cannot connect over proxy servers, and it doesn't allow the user to modify the vnc viewer's address to connect to.

Download uncustomized

If you don't want to go trough all the trouble of customizing the executable to have your viewer's address as default, then you can get a version with an empty default setting here .

How to make your own

  1. First of all, unless you have a static ip address, it might be a good idea to register with a free Dynamic DNS service such as dyndns.org. Also setup your computer or router to automatically update the dns records.
  2. If you have a router or firewall, then configure port forwarding, or just the firewall settings so that you can receive incoming connections to a certain port number. It is up to you what port number you choose, but I recommend 443, which is the default port for HTTPS. This is a good idea, because well configured proxy servers usually block the connect method to ports different from 443.
  3. Download help.zip and extract it.
  4. Download and install Lazarus.
  5. Download and install the Nullsoft Scriptable Install System (NSIS).
  6. Download and install ResHacker.
  7. Open winvnc4.exe with ResHacker, go to dialog, and find the Add New Client dialog. Modify the "EDIT" control to include the address:port of the machine where you are running the vnc viewer. (See here). Click "Compile Script", and the File > Save. This is useful if you get disconnected, and want to reconnect without restarting the application. Also if you are using a pristine winvnc4.exe, not the one provided by me, then you might want to remove some of the unneeded menu items.
  8. Replace vnc.ico with wathever icon you want your final executable to have.
  9. Open vncconn.lpi using Lazarus. If you can't see the form then go to View > Forms, and select "connf". Edit the "Text" property of the VncViewer Host(vhost), and Port(vport) text boxes. (When you select them the Object inspector should appear showing all of their properties). Click Run > Build.
  10. After the executable was successfully built, quit Lazarus, and rename vncconn.exe into helpc.exe
  11. Right-click on exe.nsi and select "Compile NSIS Script (Choose Compressor)". Select LZMA (Solid).
  12. You are finished! The output file is called helpp.exe.

Notes