I am considering having a Windows application built and I need to know whether my prospective customers will be able to install my software in their corporate environments, which will have various levels of Windows security and antivirus scrutiny applied to them. I have a list of 60 potential customers who have volunteered to run a single .exe file and return a screenshot of the output to me, to test their company's suitability for installing such a third-party application. This project consists of two components: the Python source code for this .exe file, and the server code required to gather the required data.
The things that the program will need to test are first whether an application can be installed:
* Can the user run an executable at all? Some companies do not permit this.
* Can the program modify the registry in HKEY_CURRENT_USER?
* Can the program modify the registry in HKEY_LOCAL_MACHINE?
Now we need to test whether the application we install will be able to communicate with our servers through the various levels of firewalls that enterprises run:
* Can the program open a socket on port 5000 on the server and send data to it?
* Can the program successfully read the HTTP proxy settings in Internet Options? Run the following tests with and without using this proxy:
1) Can the program open an unencrypted Telnet connection to port 80 on our server?
2) Can the program open an unencrypted Telnet connection to port 443 on our server?
3) Can the program transmit and receive unencrypted HTTP data to port 443 on our server?
4) Can the program transmit and receive encrypted HTTP data to port 443 on our server? (this should always work, as the user will have Internet access)
Finally we need to test whether they have the right tools in place to run our eventual application, and send this data back over the communication channel established in the previous section:
* What version of Windows is the user running?
* What version of Microsoft Office, if any, does the user have installed?
* What version of the .NET runtime environment is installed?
* What antivirus applications, if any, is the user running? Are they up to date?
* What is the processor speed of the user's computer?
* How much RAM does the user's computer have?
* What Microsoft Office plugins does the user have installed?
The executable must use a SINGLE Administrator-level elevation -- i.e., test everything without asking for Administrator access, then ask once for Administrator access and test again. I need to know what is and is not possible without Administrator access, and what is possible with it.
The deliverable is NOT the .exe file -- it is the Python source code that we will convert to an exe with py2exe. I will inspect the source code myself for correctness.
A very high quality deliverable on this project will make you my first choice for future development work on my application.