[Back to MISC SWAG index]  [Back to Main SWAG index]  [Original]

{
[example on how to trap debuggers cut]

> The only problem is that people like me just go around this.  Ever tried
> to debug Out of this World?  They tried every trick possible.

I find a better way is to do this:

Procedure Annoy_Debugger;
Inline($CD/$01);

and sprinkle it (VERY!) generously through your code - since it's all inline,
it wont be a separate procedure, and thus cannot be disabled from one
point.... other tricks include (quietly) checking the byte at the address
pointed to by Int 1/3, if the byte contains $CF, then there's no debugger,
else quietly jump to $FFFF:$0000 (reboot address).
Also, this works very well:

A_Word:=$01CD;
If A_Word+$1111 <> $12DE Then
  Kick_Some_But;

This will detect search&replaces of CD 01.

Self-modifying code also works well, and getting the address of Int 1 and
doing a far call....

[Back to MISC SWAG index]  [Back to Main SWAG index]  [Original]