ShowYourDesktop is a project mainly written in PYTHON and PHP, it's free.
Open source cross-platform remote desktop support application.
Copyright (C) 2011 William Edwards All Rights Reserved.
This software is distributed under the GNU General Public Licence as published by the Free Software Foundation. See the file LICENCE.TXT for the conditions under which this software is made available. ShowYourDesktop also contains code from other sources.
The ShowYourDesktop client is a small application written in Python used to share your desktop with anyone in the world. It does this by creating a reverse SSH tunnel to an intermediary server for NAT traversal and encryption and tunneling VNC traffic using RealVNC. The server component is required to establish SSH tunnels for both the sharer and the viewer as well as handle the ports that are currently in use by existing sessions.
You can create your custom deployment using your own SSH server by installing the server components and modifying the ShowYourDesktop client to use your server details. This can be easily done by changing the server variables in "server.py" and importing your server's host key into the "sshhostkeys" directory.
You can create your own custom deployment using your own server by following these steps:
Install the server components as dictated in "server/README.txt".
Modify "server.py" to include your server's details. The variables you will need to modify are: server_url sshhost sshuser sshpass sshport
WINDOWS To create a Windows compatible binary, complete these steps:
Import your server's SSH host key into the "sshhostkeys" directory. This can be easily done
by making a connection using the included "plink.exe". Note that regular versions of plink
will store the host key in the registry thus making it not portable and will fail to connect
on desktops that do not have the key in their registry:
plink.exe
Compile your new client using py2exe: python setup.py install python setup.py py2exe
This will create the needed files in the "dist" folder. In order for the newly compiled ShowYourDesktop executable to work, you will need to copy the following files/folders to the "dist" folder: sshhostkeys/ logmessages.dll plink.exe showyourdesktop.ico vncserver.exe vncviewer.exe wm_hooks.dll
You can then use a 3rd party utility such as 7zip or WinRAR to create a self-extracting archive that will extract the archive to a temporary directory and automatically launch "main.exe".
LINUX To create a Linux compatible binary, follow these steps:
Import your server's SSH host key into the "sshhostkeys/sshhostkeys" file. This can be easily
done by making an initial connection using the included "plink_i386" or "plink_x86_64" binary
and importing the hostkey:
./plink_i386
Compile your new client using cx-freeze: cxfreeze main.py
This will create the needed files in the "dist" folder. You will then need to copy the following files/folders into the "dist" directory": sshhostkeys/ plink_[i386][x8664] x11vncserver[i386][x8664] xvnc4viewer[i386][x86_64]
You can then crate a self-extracting binary using a third party utility or using the following steps:
Copy the following scripts into their own files. decompress.sh
export TMPDIR=`mktemp -d /tmp/.selfextract.XXXXXX`
ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' $0`
tail -n+$ARCHIVE $0 | tar xz -C $TMPDIR
CDIR=`pwd`
cd $TMPDIR
./main
cd $CDIR
rm -rf $TMPDIR
exit 0
__ARCHIVE_BELOW__
build.sh
cd payload
tar cf ../payload.tar ./*
cd ..
if [ -e "payload.tar" ]; then
gzip payload.tar
if [ -e "payload.tar.gz" ]; then
cat decompress.sh payload.tar.gz > showyourdesktop.bsx
else
echo "payload.tar.gz does not exist"
exit 1
fi
else
echo "payload.tar does not exist"
exit 1
fi
echo "showyourdesktop.bsx created"
exit 0
Create the payload directory and copy the compiled files inside. mkdir payload cp -r client/dist/* ./payload
Run the build script to create the self-extracting archive: chmod +x build.sh && ./build.sh
You should now have a self-extracting binary with the ShowYourDesktop client included.