Many years ago, I wrote a small app that was used by 5 or 6 clients, with a few users each.
I actually got the app to edit itself and inject data and licence information into the string table in the .EXE that I had previously setup, when it was compiled.
i.e. Initially the string was something innocuous like "Gopher00000000000000000000000", I would then look for Gopher in the EXE and update the zeroes bit to be the licence date, licence id, PC name.
So that once it was running it would be "Gopher" + 4 ascii chars for the expiry date + "HTH0001WLDNPC004"
It would self check whenever it was invoked, or certain functionality was run within the app, worked a treat for many years.
Would pop a screen starting 14 days from renewal and they needed to contact us to renew it, with some code we generated.
Stopped them copying it to other machines to run cos the PC name had to tie up, stopped the app when it expired.
I actually got the app to edit itself and inject data and licence information into the string table in the .EXE that I had previously setup, when it was compiled.
i.e. Initially the string was something innocuous like "Gopher00000000000000000000000", I would then look for Gopher in the EXE and update the zeroes bit to be the licence date, licence id, PC name.
So that once it was running it would be "Gopher" + 4 ascii chars for the expiry date + "HTH0001WLDNPC004"
It would self check whenever it was invoked, or certain functionality was run within the app, worked a treat for many years.
Would pop a screen starting 14 days from renewal and they needed to contact us to renew it, with some code we generated.
Stopped them copying it to other machines to run cos the PC name had to tie up, stopped the app when it expired.
Comment