[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]