http://www.uvnc.eu/download/setup_server.zip
http://www.uvnc.eu/download/setup_viewer.zip
How is the connection established?
Server discovery.
The viewer and Server belong to a group ( sample: MySupportOrganistion)
The server also has a hostname or custom name ( accesscode)
Viewer send groupname to "access server".
Server send groupname + hostname to "access server"
The access server send a list of servers belonging to the same group back the Viewer.
Server viewer connection.
When the viewer request a connection, the access server send the origin of the viewer connection
to the server and from the server to viewer. Using this information, the server and viewer establish
a direct connection. Data goes direct from server to viewer, no data bouncing like with the repeater.
Encryption:
Once a direct link between server and viewer is made, the stream is encrypted (AES 256bit).
The encryption key is auto exchanged using DH ( like ssl), each time you make a connection
a new key is used. The key is then merged with the local passwd and this merged key is used
as encryption key.
1) server and Viewer are 100% local, data never get transmitted over the net, if password are wrong
decryption fail and connection quit.
2) Groupname and Hostname are exchanged between "access servers" viewer and server.
This data is not encrypted and need to be considered as public.
Even when the "access servers" get hacked, they can't do nothing with that info without knowing the
local passwords. Keeping a part of the encryption key local, even a third man attack fail.
modules:
1) Chat
The Chat module allow you to talk and to transfer files.
To transfer a file, drag/drop a file on the chat gui.
2) SendMessage
Send a fast message
3) Desktop access
Video and keyboard access to a remote desktop.
Ctrl-alt-del if server is running as service
You can connect to the console session or an active RDP session
The modules run as seperate exe, it's normal that you see the exe multiple times in the taskmanager
when the modules are active.
Server modes
*Started by user
When PCHelpWare is started by the user (as application) you always need to enter a password and
accesscode. It doesn't require special user priveledge, just keep in mind that UAC elevated windows
can't be controled nor can you switch desktops.
Group is taken from ini file
Tray icon allow to quit.
*Runing as service
Running as service, passwd/group/name are extracted from the ini file.
You need to use the service manager to start/stop the service. The Tray icon
indicate that the desktop module is running. The module is under service control,
manual closing the module via the systray cause the server to restart it...
*settings:
You can only set the settings of the server via a seperate application.
This app just populate the ini file, changes take effect after the server is restarted.
Quick start
STEP 1 setup GROUP and viewer access protection by running the pchelpwareviewerV2.exe
(settings , except password are saved in pchelpware.ini)

STEP 2 create pchelpwareS.ini ( file used by server) by running setting.exe
Only set password and group, group need to be the same as the viewer one, don't run it as service yet else firewall accept is inviable.
Custom Hostname can be used to overwrite hostname

STEP3 Copy pchelpwaV2.exe schook.dll and pchelpwareS.ini in a folder on the pc you want to control and run pchelpwareV2.exe
You now start pchelpware in Application mode, running application mode you always need to enter password and accesscode, only
running as service the pchelpwareS.ini saved value's are used.
If all goes well, the viewer should display the server name ( red round)
STEP4 Set the same password for this server on the viewer site, password is save with aes256 encryption to the ini file

STEP4 press setup P2P, this create an encrypted channel between viewer and server
When all goes well, the icon become green
red (X) wrong passwd
Sometimes you need to refresh and try again, special if you are playing and server is started stoped
faster then the access servers can process it.
If all goes well, you get something like this.


If this works you can close the server, run setting.exe and install as service, start service to get full
control (ctrl-alt-del) session switches, logon/logoff...
FT: IS part of the Chat module ( drag and rop files on the window to copy remote)
Running as application, it show all session, only the one that's running the server work (bug: session info need to be restricted to local session)