Getting rid of that darn Device Information dialogue in Xeltek’s SuperPro programmer software

A little while back I purchased Xeltek’s SuperPro 610P Universal programmer.

It has the odd quirk, but overall it’s done the job. There is one thing however that has always irritated me about this product – This damn thing:

sp0Every time you start their application, or change device, you are prompted with this absolutely f–king useless dialogue, having to dismiss it every time, worse still, it has no OK or Close button. Even more annoying, there is no option to disable the displaying of it in the first place.

Hell, even if there was any useful information on it, that doesn’t mean I want to see it every single time I use the SuperPro!!!

I contacted Xeltek’s customer support about that, they had me go to the trouble of sending my invoice and serial number to them to prove that I in fact had actually paid them a sum of money, and then promptly did absolutely nothing about it, other than tell me that it could not be disabled.

Despite how simple it would be to even change the software to provide an option to disable it, repeated requests to do so were ignored.

Righty. Time to do something about this. 30 minutes behind IDA later we’re onto it. Quickly I can see it is written on the very same tech I cut my own teeth on: Microsoft Foundation Classes (MFC).

Given this, it’s pretty likely that we’ll see a call to _AfxPostInitDialog() at some point during the displaying of a dialog.

Let’s put a breakpoint in there, and bingo! Hop back up the stack a little, and there I find the offending instruction:

sp1

 

The highlighted instruction is in code written by Xeltek, and calls a function which displays that dialogue both when the application starts and when the device type is changed, but not when the “Dev. Info” button is pressed (in the unlikely event I actually want to see that bloody useless dialogue).

sp2

So all that needs to be done is remove it.

In the current version at the time of writing (the version dated 07/21/2016) that instruction (opcode 0xE8) and its 4 byte operand is physically located at 0x3373F in SP6100.exe. Replace it with 5 NOP (0x90) instructions, and we’re good.

Now that dialogue is only displayed when the “Dev. Info” button is clicked, which is all I ever wanted to begin with.

Feel free to contact me if you want the patched EXE!

Posted in Bits and pieces

3 thoughts on “Getting rid of that darn Device Information dialogue in Xeltek’s SuperPro programmer software

  1. Hi Matt,
    I came across your pages by accident and I enjoyed reading about your projects and other various bits and pieces you designed to overcome a particular problem needing a solution.

    I was about to order a Xeltek 610P programmer when I came across your gripe here http://tech.mattmillman.com/getting-rid-of-that-darn-device-information-dialogue-in-xelteks-superpro-programmer-software/

    I also hate unsolicited info displays which serve no purpose so I would like to take advantage of your offer of a patched .exe file for this programmer.

    1. It turns out there is no need to go patching EXEs. In frustration I sent a link to this post to Xeltek’s customer support, some time later I received a response informing me that there is an undocumented option to disable the dialog.

      Create a file called ‘userneed.ini’ in the ‘bin’ directory with the following contents:

      [ShowSelect]
      MessageAfterSelectDevice=0

  2. Good article. My problem may be this simple. to program a 24f1025 EEPROM they spec a socket that is soic8-wide but this chip only comes in soic8-narrow. Their support was unable to resolve this issue. I have the right socket I just need their program to recognize it. There is an id chip built onto sockets. I need a way to either force the ID or to change the ID it is looking for. Any help is appriciated.

Leave a Reply

Your email address will not be published. Required fields are marked *