Add Original SDK
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
DllTest - Runtime sample code in RealBasic
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This project is written in RealBasic 2011 but will also work in later versions
|
||||
and also in Xojo (tested on Xojo 2013r4.1). It can also work on previous versions
|
||||
of RealBasic (but if using versions previous to 2005 then see note about use of Nil).
|
||||
It is a console program so for a Windows application you would need to change "Print"
|
||||
statements for "MsgBox".
|
||||
|
||||
The Module1 module contains the DRIS structure definition and some useful functions.
|
||||
The main sample code contains the functions:
|
||||
|
||||
DDProtCheck
|
||||
DDProtCheckWithAlg
|
||||
WriteBytes
|
||||
ReadBytes
|
||||
EncryptUserData
|
||||
|
||||
There are also encrypted versions of these functions (where the parameters passed
|
||||
to and from our API are encrypted for greater security):
|
||||
|
||||
DDProtCheckEnc, DDProtCheckWithAlgEnc, WriteBytesEnc, ReadBytesEnc, EncryptUserDataEnc
|
||||
|
||||
These functions also use some smaller functions:
|
||||
CryptDRIS, CryptAPIData, MyAlgorithm, MyRWAlgorithm
|
||||
|
||||
You will not need to use all these functions in your code. Just use which ever functions
|
||||
are most appropriate and customise in your own way. The sample code is just a guide.
|
||||
You should implement the protection in a stronger way using the techniques described in
|
||||
the "Increasing your Protection" chapter of the manual.
|
||||
|
||||
Code marked with !!!! are places where you should customise the sample code so
|
||||
that it will work properly:
|
||||
|
||||
* Change the MY_SDSN constant to the value of your SDSN
|
||||
* Change the MY_PRODCODE value to the Product Code in the dongle
|
||||
* Change the MyAlgorithm code (if you call a user algorithm)
|
||||
* Change the CryptDRIS code (if you encrypt the DRIS)
|
||||
* Change the CryptApiData (if you encrypt Data you send to our API)
|
||||
* Change the MyRWAlgorithm code (if encrypt Data you send to our API using the R/W algorithm)
|
||||
|
||||
You will also probably want to replace our error messages with your own.
|
||||
|
||||
Note - you should protect dpwin32.dll and not your program. Because your program
|
||||
is linked to the DLL it is protected. This protected dll should be placed in the
|
||||
sample folder as the compiled program.
|
||||
|
||||
You can rename the runtime module (e.g. dpwin32.dll) if you want but you must also
|
||||
change this name for every occurance in the MyDDProtCheck function in Module1.
|
||||
|
||||
You can also use the protected program on MacOS X and Linux by protecting the
|
||||
appropriate runtime modules (i.e. dpmac32.dylib and dplin32.so). If you do this
|
||||
you will probably want to protect all the runtime modules to a single licence.
|
||||
|
||||
Due to our anti-debug code it may be impossible to debug your code once it has been
|
||||
protected (we found that the debugger often crashed anyway even without our anti-debug
|
||||
code)!
|
||||
|
||||
Note for version of RealBasic previous to 2005
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The "Nil" value is not defined for these earlier versions and so you should define a
|
||||
MemoryBlock object, initialise it to something and pass that instead (it doesn't get used
|
||||
so as long as it compiles it is OK).
|
||||
Reference in New Issue
Block a user