PureVALID library : check an EXE integrity at runtime
Moderator: gnozal
-
- PureBasic Expert
- Posts: 4229
- Joined: Sat Apr 26, 2003 8:27 am
- Location: Strasbourg / France
- Contact:
PureVALID library : check an EXE integrity at runtime
PureVALID library
What for ?
PureValid is a library with one function : PureValid_CheckFile(Key.s)
It is intended to check an EXE integrity at runtime, by calculating a fingerprint and comparing it to a validation info located at the end of the EXE.
This validation info is generated by PureValid.exe (included) or PureUPX.
How ?
1. In your application YourApp.pb, only add one line :
PureValid_CheckFile("YourEncryptionKey")
or
Valid = PureValid_CheckFile("YourEncryptionKey")
; Valid = 1 if EXE is valid,
; 0 if EXE is corrupt (program stops)
2. Compile your application as usual
3. Validate your application with PureValid.exe :
PureValid YourApp.exe "YourEncryptionKey"
4. It's done. Now if something / someone changes your application, it does not run anymore. Try to change it's name or patch it, and see the result.
Note (1): you can also use PureUPX to validate your application after compressing (+/- scrambling). If the PureValid library is installed, you will see an extra PureValid section when you start PureUPX.
Note (2): it's only an integrity check, without any anti-debugging tricks, so it's a very lame protection against hackers...
Download library:
Only available for Purebasic Windows x86
PB3.94 : http://gnozal.ucoz.com/PureValid.zip
PB4.00-4.10 : http://gnozal.ucoz.com/PureValid_.zip
PB4.20 : http://gnozal.ucoz.com/PureValid___.zip
PB4.3x : http://gnozal.ucoz.com/PureValid_430.zip
PB4.4x : http://gnozal.ucoz.com/PureValid_440.zip
PB4.5x : http://gnozal.ucoz.com/PureValid_450.zip
PB4.6x : http://gnozal.ucoz.com/PureValid_460.zip
PB5.0x : http://gnozal.ucoz.com/PureValid_500.zip
PureUPX :
http://gnozal.ucoz.com/PureUPX.zip
(see viewtopic.php?t=9030)
Other libs and tools at http://gnozal.ucoz.com/
What for ?
PureValid is a library with one function : PureValid_CheckFile(Key.s)
It is intended to check an EXE integrity at runtime, by calculating a fingerprint and comparing it to a validation info located at the end of the EXE.
This validation info is generated by PureValid.exe (included) or PureUPX.
How ?
1. In your application YourApp.pb, only add one line :
PureValid_CheckFile("YourEncryptionKey")
or
Valid = PureValid_CheckFile("YourEncryptionKey")
; Valid = 1 if EXE is valid,
; 0 if EXE is corrupt (program stops)
2. Compile your application as usual
3. Validate your application with PureValid.exe :
PureValid YourApp.exe "YourEncryptionKey"
4. It's done. Now if something / someone changes your application, it does not run anymore. Try to change it's name or patch it, and see the result.
Note (1): you can also use PureUPX to validate your application after compressing (+/- scrambling). If the PureValid library is installed, you will see an extra PureValid section when you start PureUPX.
Note (2): it's only an integrity check, without any anti-debugging tricks, so it's a very lame protection against hackers...
Download library:
Only available for Purebasic Windows x86
PB3.94 : http://gnozal.ucoz.com/PureValid.zip
PB4.00-4.10 : http://gnozal.ucoz.com/PureValid_.zip
PB4.20 : http://gnozal.ucoz.com/PureValid___.zip
PB4.3x : http://gnozal.ucoz.com/PureValid_430.zip
PB4.4x : http://gnozal.ucoz.com/PureValid_440.zip
PB4.5x : http://gnozal.ucoz.com/PureValid_450.zip
PB4.6x : http://gnozal.ucoz.com/PureValid_460.zip
PB5.0x : http://gnozal.ucoz.com/PureValid_500.zip
PureUPX :
http://gnozal.ucoz.com/PureUPX.zip
(see viewtopic.php?t=9030)
Other libs and tools at http://gnozal.ucoz.com/
Last edited by gnozal on Tue Aug 18, 2009 11:54 am, edited 11 times in total.
-
- PureBasic Expert
- Posts: 4229
- Joined: Sat Apr 26, 2003 8:27 am
- Location: Strasbourg / France
- Contact:
PureVALID checks the EXE integrity (on the disk) by calculating a fingerprint and comparing it to a validation info located at the end of the EXE. It does not check the memory.jpd wrote:Hi Gnozal,
if I'm use purevalid_check on me program is possible to check the integrity of the file (on the disk) or is possible to create a thread that check all "x second" if the loaded-file in memory integer?
sorry for me english, I hope you understand what I mean.
You can call the function PureValid_CheckFile() whenever you want.
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
-
- PureBasic Expert
- Posts: 4229
- Joined: Sat Apr 26, 2003 8:27 am
- Location: Strasbourg / France
- Contact:
Update
(PB 4.2x version only)
Changes :
- recompiled with PB 4.20 final and latest tailbite
< EDIT JUN 6 2008 >
(PB 4.2x version only)
Changes :
- recompiled with PB 4.20 final and latest tailbite
< EDIT JUN 6 2008 >
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
-
- PureBasic Expert
- Posts: 4229
- Joined: Sat Apr 26, 2003 8:27 am
- Location: Strasbourg / France
- Contact:
http://www.purebasic.fr/english/viewtopic.php?t=34534Gansta93 wrote:It doesn't work on PB 4.30... missing string-extention.
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
PureValid_500.zip missing...
http://gnozal.ucoz.com/PureValid_500.zip produces error 404...