i have discovered a way to protect my software from a usb device. if the software will be copied to another portable device it will not run. my software will detect the serial of my usb drive and it should be the same to the serial i have put in the software. for example: the serial number of my drive is 12329039 then in my software it is recognize as 12329039 then the software will run or else it will exit. note that usb drives have a unique serial number and can be only changed once it was formatted. i have to note to my customers not to erase the software or format the usb drive. i could say that this is one of the best way to prevent your software from getting pirated. (one idea is to encrypt your serial numbers as many as you want just be sure the software can decrypt it)
here is one part of my code:
if drivetype~=2 then
Dialog.Message("ERROR", "Unauthorized copy of Application, exiting program.", MB_OK, MB_ICONSTOP);
this line of code determines if the software runs on a removable hardware/usb device if not then it will exit.
this is only one part of my security.