ECC2-109 GUI

by Jeff Gilchrist
Jeff's E-mail Address

** NOTE **: The ECC2-109 project has been solved!!! Details can be found at the ECC2-109 web site and also from Certicom.

The ECC2-109 GUI is a helper application for Windows that works with the ECC2-109 client available at:

It allows you to see your current progress, provides benchmarking information about your machine and allows you to start and stop the client. It can even run the ECC2 client hidden. ecc2GUI uses almost no CPU resources so it will not slow down your ECC2 production (but you can close it and the ECC2 client will continue to run).

Screen Shots

ecc2 v0.9 Screen Shot

ecc2 v0.9 Config Screen Shot


This software is freeware and can be freely distributed. Use at your own risk. I take no responsibility for anything that happens to your equipment. Source code for this program will also be available (at v1.0). If you modify this software I would appreciate you letting me know what feature(s) you have added so that I may include them in the official distribution. If you are going to use any of this source code in your own program, please credit me.


Click to download the latest version:

Windows Binary: ecc2GUI v0.91 (511 KB)

Previous version:

Windows Binary: ecc2GUI v0.8 (505 KB)

If you are using NT4, you will need to download an older version:

Windows Binary: ecc2GUI v0.7 (493 KB)

Recent History

v0.1 (Nov. 20, 2002)
  • Initial beta release
v0.2 (Nov. 23, 2002)
  • Fixed a few bugs
  • Added "New DP" counter which counts new DPs found since the loading of the GUI
  • Added better detection to see if ECC2 client is running (checks last update time of .spd file and assumes not running is more than 10 seconds old)
  • Added core and client version display
  • Added Max/Min iterations/sec & since last DP counter
  • Fixed hide/unhide in Win9x (thanks Jamilla)
  • Changed "Time Since Last DP Found" code to watch the New DP counter so it no longer relies on the "dplist" file.
  • Option to make all text Windows Text colour setting to handle a larger number of colour schemes
v0.3 (Nov. 25, 2002)
  • Changed benchmark.txt output to be Max Iterations Per Second seen instead of the current value in the .spd file.
  • Fixed bug in DPs Per Hour/Day output in benchmark.txt file (Thanks dcDragon)
  • Added ability to now stop CLIclient in non-service mode as well (requires client version CE/WC or newer).
v0.4 (Dec. 1, 2002)
  • Changed status bar colour to be red when client is stopped to attract more attention
  • Added ability to resize GUI window saving settings for window and scroll bar
  • Fixed NewDP counter so it would not reset if ECC2 client was stopped
  • Added display to show the # of iterations it took to find the Last DP
  • Added display to show Average iterations/sec and Average iterations since last DP found
v0.5 (Jan 04, 2003)
  • Fixed typo in "stopping client"
  • Fixed tab order so it makes more sense
  • Made GUI smaller by adding ability to hide configuration options
  • Added option to automatically restart ECC2 Client after a specified # of minutes of inactivity (no update to progress.txt file) to recover from crashes
  • Added counter to show how many automatic restarts were done
  • Added option to stop ECC2 Client and exit GUI after a specified # of hours. When activated, a timer is displayed showing the time remaining.
v0.6 (Jan 11, 2003)
  • Fixed major bug that could spawn multiple copies of the ECC2 client simultaneously. This bug happened if the "Restart Inactive Client after" was checked in v0.5. It should now be fixed.
  • Added "Save Config" button so that you can now save your config to the .ini file right away instead of waiting to close ecc2GUI. The GUI still saves your Config data on close as well.
v0.7 (Jan 18, 2003)
  • Fixed bug in "Auto Start Client" that was introduced when v0.6 bug was fixed. If the client was already started and ecc2GUI was opened with this option enabled another client would be launched. Everyone should upgrade to v0.7!
  • Added right click popup menu to task bar icon with option to Exit ecc2GUI.
  • Removed Config "roll-up" button and replaced with a new button to open a seperate Config window. People with different size fonts had problems with the old roll-up method. This should be good for everyone.
  • Added ability to log GUI status information to ecc2GUI.log file every specified # of minutes.
v0.8 (Feb 23, 2003)
  • Changed progress bar to now display % of estimated DPs required for the ECC2 project based on 20.5 million DPs to find the key.
  • Added progress bar to show the poisson probability of finding the solution to ECC2-109.
  • The Stop button is now properly greyed out/disabled when the ECC2 client is stopped.
  • If "AutoStop on Close" is checked, the GUI will no longer try to stop the client if it is not running. This used to cause a 30 second delay before the GUI would close.
  • The Max/Min fields can now hold an extra digit in the display
  • The Max & Min Iterations Since Last DP can now be stored in the .ini file by checking the "Save Max/Min Iterations" checkbox in the config window. If this box is checked, the next time you load the GUI it will remember what your Max and Min iterations for DPs have been.
  • Added ability to check process list for ECC2 client to determine if a copy is already running, no more need for the .spd file to check this. Special thanks to SWfreak for providing the code to do this. It seems that this process code is not compatible with NT4 so people using NT4 will need to go back to v0.7.
  • Added support for SWfreak's client. The GUI will only be able to stop the client with the STOP button if you use the GUI to start the client and keep the GUI loaded. Otherwise you will have to hit CTRL-C in the client's command prompt window. Look in Config window for available client options.
v0.9 (Jun 01, 2003)
  • Added support for SWfreak's new v1.1 client. This version of the GUI works with the official version of the ECC2 client but requires v1.1 of the SWfreak. Due to significant changes, the GUI is not backwards compatible with v1.0 of the SWfreak client.
  • The GUI can now install and remove the service version of the new SWfreak client.
  • The GUI can stop the v1.1 SWfreak client no matter how it was started (command line and service version).
  • NOTE: ecc2GUI uses code that doesn't work under NT4 so people with NT4 will have to use v0.7 of ecc2GUI.
v0.91 (Jun 13, 2003)
  • Fixed bug with "Flush DPs At" option using SWfreak client.

Jonathan Walton (phaserlogic [@]
- Code cleanup of time display
- Added CreateProcess code to launch DF client hidden without need for any external programs
- Testing hide/unhide on Win9x
- Testing the AutoStop on Battery feature
- Code for checking process list


Extract the ZIP file to a directory on your machine. This can also be your ECC2 client directory (where your cliclient.exe file resides). Start ecc2GUI. If your ECC2 client is located in another directory you should click on the "Config" button then click on the "ECC2 Client Directory" folder button and select the cliclient.exe program (or ecc2109c.exe if using the SWfreak client) in the correct directory. ecc2GUI should now be configured to look in the correct spot.

The time estimates and some benchmark information will not appear until two new Distinguished Points (DPs) are found by the ECC2 client. For the benchmark data to be more accurate, you should let ecc2GUI run (with the ECC2 client active) for several hours.
Note that you will need to be using at lastest ECC2 Client or SWfreak version for it to work properly with ecc2GUI. The GUI uses the file ecc2-109.spd to get its information about the client progress.

The OS/CPU information shows whatever the client can find in the Windows Registry which differs from installation to installation. Win2k/XP usually has MHz information and Win98 sometimes does. Any unknown information will show up as

You can enter text in the "
Title Bar" edit box which will display your text in the ecc2GUI title bar and on the system tray when you mouse-over the icon. This is useful if you have a multi-CPU or network machine and are running multiple copies of ecc2GUI on the same machine to easily distinguish between them.

Note: If you are using the ECC2 client in Service mode, you can use ecc2GUI to start/stop the client and monitor its progress. To enable this ability, you need to check the "Client Installed as Service" checkbox in ecc2GUI. The components and options not available to the Service client will be disabled in the GUI. If you are using the SWfreak client as a service, you do not need to check this option as it is handled automatically by the client.

The ecc2GUI program uses tray icons and when minimized it will hide in the tray. Two colours are used to show the status of the ECC2 client. A green icon in the tray ecc2GUI Green Tray Icon means that everthing is OK. A red icon in the tray ecc2GUI Red Tray Icon means the ECC2 client is NOT running. The status bar in the GUI will also become red when the ECC2 client is not running.

Showing Configuration Screen
The first time you load ecc2GUI, the configuration window will be shown by default. To hide this window, just close it by clicking on the X button in the top right corner of the window. To show the configuration window again, click on the "
Config" button at the bottom right corner of the GUI.

Saving your Settings
When you exit ecc2GUI, it will write your current settings to a file
ecc2GUI.ini so they will be active the next time you start. You can also click on the "Save Config" button to save them immediately. The settings that are currently saved in ecc2GUI.ini are Refresh Rate, Start Options, Custom Start Settings, GUI Total Time, AutoStart, Start in Tray, ECC2 Client Path, Client Installed as Service, Use Windows Text Colour Setting, Resizeable Window, Write Bench Every Refresh, Restart Inactive Client, Stop Client and GUI, and Title Bar. If you decide to modify your ecc2GUI.ini by hand and make a mistake so the client doesn't load properly, just delete the .ini file and reload dfGUI.

ECC2 Client Starting/Stopping
To start the ECC2 client if it isn't already running, click on the "
Start Client" button. ecc2GUI will then launch the ECC2 client in either regular or hidden mode depending on what is selected. If you want to stop the ECC2 client, just click on the "Stop Client" button. This works with any Service version but only version CE/WC or newer of the ECC2 Client in non-service mode.

Running Hidden
To start the ECC2 client hidden, click on the "
Hidden" radio button in the "ECC2 Client" box then click on "Start Client". If the ECC2 Client is already running just click on the same "Hidden" button and the DF Client window should no longer be visible. To make it unhide, click on the "Visible" radio button. Note: This will not work if the ECC2 Client is running as a Windows service. If you minimize ecc2GUI, only its tray icon will be there. If you don't want the ecc2GUI tray icon to appear, close ecc2GUI and the ECC2 client will keep running. You can load ecc2GUI again at any point to see its current progress. If you want the ecc2GUI client to start up in the tray without showing its main window and having an entry in the task bar, click on the "Start ecc2GUI in Tray" check box.

ecc2GUI gives you the ability to hide and unhide the ECC2 Client window. This is controlled in the "
ECC2 Client" box with the "Visible" and "Hidden" radio buttons. If you start the ECC2 Client using ecc2GUI, it should always be able to hide and unhide the DF Client window. If you start the client in some other way (ie: by running cliclient.exe from a command prompt or creating a shortcut to the cliclient.exe file), ecc2GUI may have problems finding the window to hide/unhide. ecc2GUI will look at all your running applications for a window with the words "x86client" or "cliclient" in the title. If found, it will attempt to hide/unhide that window. If you launch the ECC2 client using a shortcut and want ecc2GUI to be able to hide/unhide the client your shortcut name should include the word "cliclient" somewhere in the name.

Auto Starting
If you would like the ECC2 client to start automatically when you load ecc2GUI, click on the "
AutoStart ECC2 Client" checkbox. The next time you load ecc2GUI it will automatically start the ECC2 client if it is not already active.

Auto Stopping
If you would like the ECC2 client to stop automatically when you exit ecc2GUI, click on the "
AutoStop on Close" checkbox.

Auto Stop on Battery
If you are using a laptop computer and would like the ECC2 client to stop automatically when you go on battery power (ie: to conserve energy), click on the "
AutoStop on Battery" checkbox. When ecc2GUI detects you are on battery power it will shut down the ECC2 client for you automatically. When it detects AC power again, it will automatically restart the ECC2 Client for you.

Restart Inactive Client
To re-start an inactive ECC2 client, click on the "
Restart Inactive Client after" checkbox. Fill in the amount of time (in minutes) of inactivity before ecc2GUI restarts the client (1 to 99). ecc2GUI looks at the last update time of the ecc2-109.spd file to determine if the ECC2 Client has been inactive (or crashed). Depending on your machine speed and how much CPU time is being given to the ECC2 Client, these may affect how often the ecc2-109.spd file is written to and you may have to adjust the time accordingly.

Note: If you have the restart feature active and you load ecc2GUI to an ECC2 client that has crashed or left its ecc2-109.spd file lying around, ecc2GUI will take 30 seconds before it will be seen on the screen. The GUI is double checking to make sure that the client has actually crashed or is not running before it attempts to restart the client to avoid having multiple copies of the client running at the same time.

Stop Client and GUI after X Hours
If you want the ECC2 Client to stop running after a certain number of hours, click on the "
Stop Client and GUI after" checkbox. Fill in the amount of time (in hours) you want until the ECC2 Client will be shut down and the GUI exits (1 to 99). When this feature is activated, a countdown timer will appear in the benchmark area "Stop Client In (D:HH:MM:SS)". When this counter reaches 0, the ECC2 Client will be stopped and ecc2GUI will exit automatically.

Make Window Resizeable
If you would like to make the GUI smaller, click on the "
Make Window Resizable" checkbox. This will allow you to change the size of the window using your mouse. The window size and scroll bar locations will be saved in the .ini file so that the GUI will return to those settings the next time it is loaded. To return the GUI back to its original state, uncheck the box.

Logging GUI Status
If you would like to log the status of the GUI (ie: benchmark & stats information) to the
ecc2GUI.log file, click on the "Log Status every" checkbox. Fill in the amount of time (in minutes) you want the log file to be written each time (1 to 999). A date and time stamp is provided each time the log file is written. The log file will be located in your ecc2GUI directory.

Use Windows Text Colour in GUI
If you are using a Windows colour scheme where it is difficult to see the data in ecc2GUI, you can click on the "
Use Windows Text Colour in GUI" checkbox. This will change the colour of all the data boxes to be the setting you have chosen for Windows Text in your colour scheme.


If you would like to report any bugs or contact me related to the software you can reach me via e-mail at: Jeff's E-mail Address

  • This web page is maintained by Jeff Gilchrist, Copyright © 1999-2006.
  • This web page best viewed using a resolution of 800 x 600 or higher.