Comment Re:dongle (Score 1) 635
Use a macro to do the "Is this authorized?" check. Then use that macro all over the place. Use it in main loops. Use it in obscure parts that are seldom executed. Make it so hundreds of spots need to be patched for a crack to be really successfully.
With the dongles, at least with the ones I used, you could do both positive and negative checks. You needed to go through a sequence of steps to get the dongle to respond in the affirmative. Asking for status prior to that did not interfere with anything. So you do some of the sequence, check for a negative, do some more, check for another negative, etc., eventually performing the final sequence and checking for a positive. Then you reset and start over again.
The idea is not to use it as a boundary check but as something you're continually hitting with commands and checking the responses.