[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Business models
Mark Collins wrote:
>> Clever.
>>
>> Everyone interessted in this kind of protection, should visit:
>>
>> http://www.instinct.org/fravia/
>>
>> apart from beeing a cracker site (and quite ugly) it actually contains a
>> couple of articles on how to protect your software. At least
>>
>> http://www.instinct.org/fravia/protec.htm
>>
>> should be interessting. Lots of the information is about DOS and Windows,
>> but they do have a Linux section, and in any case, the methods are
>> similar. The case stories are quite interessting.
>
>
> If memory serves me correctly, there's also some good Anti-debugging
> articles in several issues of 40hex (to stop people reverse engineering your
> funky new virus).
>
> Nurgle
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: linuxgames-unsubscribe@sunsite.dk
> For additional commands, e-mail: linuxgames-help@sunsite.dk
>
> .
And if memory serves me correctly these only apply to people trying to
reverse engineer by using a "trace mode" debugger. Which uses a special
bit set in the processor to execute a command at a time and then return
to the debugger with the state of the machine for example from
programming the 68000 by Steve Williams
PC=00000500 USP=0001A2B0 SSP=00002000 ST=000=>IM=0
D 000000D0 000000D1 000000D2 000000D3 000000D4 000000D5 000000D6 000000D7
A 000000A0 000000A1 000000A2 000000A3 000000A4 000000A5 000000A6 0001A2B0
move $526,D0
-t
PC=00000506 USP=0001A2B0 SSP=00002000 ST=000=>IM=0
D 00000001 000000D1 000000D2 000000D3 000000D4 000000D5 000000D6 000000D7
A 000000A0 000000A1 000000A2 000000A3 000000A4 000000A5 000000A6 0001A2B0
add $528,D0
so to stop people doing this to your code you put in an instruction that
causes the trace debugger to crash. I actually saw a program do this to
me but the second time I debugged it I just skipped over the offending
instruction and the code then executed normally. Of course you could
make it so that the function that crashes the trace debugger is vital to
your code but then somebody will just write a software debugger which
won't crash or they will disassemble your code and work it out by
reading it line by line. This technique of trace debug crashing only
works against those who don't understand what is happening those who do
will get around your little hack.
But in reality you are not going to use assembly or machine code so the
point is moot.
A method that I think will work is to obfusicate a part of your code and
make it essential to the game so that they can't see your hack. The more
lines of code you have the harder it is to find your hack just as it is
harder to find bugs. To use the example of the different graphics make
the function that draws the graphic to the screen check its size so that
a 16x16 tile will draw but a 32x32 tile won't draw but don't put the
error message there put it somewhere further up the code by using
exceptions. This way it is harder to see which module caused the error
and trace it back. In your $Profit version totaly change the render code
from your free version so that they cannot see the difference. And you
end up with two "open source" programs one that will draw 32x32 tiles
and one that bombs out on the more complex graphics for no reason.
---------------------------------------------------------------------
To unsubscribe, e-mail: linuxgames-unsubscribe@sunsite.dk
For additional commands, e-mail: linuxgames-help@sunsite.dk