C
C. Gardiner
Hi,
I am principally a free-lance hardware designer, but when I work for
customers I often write utilities for automating various tedious parts
of the design flow. (I used to do this in perl, but in some cases Java
proves more portable and always has the XML libraries available, which
is not the case at all my customer sites with perl)
In mixed design-teams (customers people + me) I often get the request to
leave the (compiled) utilities behind when the contract is finished.
What I would like to do is hard-program them to one of
- the customers network
- a customer host
- a customer userid
If I do this, how easy is it for my competitors to reverse engineer
(e.g. disassemble) the compiled utilites, patch out the hard-programmed
locking mechanism and reuse them for their customers. If for instance I
am comparing strings in the lock mechanism, is it easy to find the
compare instructions, patch the code to always return true or to replace
the code sections by NOPs etc.
We're not talking about rocket science here, so I am more interested in
a practical deterent mechanism than in some complex security. I'm
assuming that my customers and free-lance competitors don't have weeks
at their disposal that would make the reverse-engineering cost effective.
Thanks for any input,
Charles
I am principally a free-lance hardware designer, but when I work for
customers I often write utilities for automating various tedious parts
of the design flow. (I used to do this in perl, but in some cases Java
proves more portable and always has the XML libraries available, which
is not the case at all my customer sites with perl)
In mixed design-teams (customers people + me) I often get the request to
leave the (compiled) utilities behind when the contract is finished.
What I would like to do is hard-program them to one of
- the customers network
- a customer host
- a customer userid
If I do this, how easy is it for my competitors to reverse engineer
(e.g. disassemble) the compiled utilites, patch out the hard-programmed
locking mechanism and reuse them for their customers. If for instance I
am comparing strings in the lock mechanism, is it easy to find the
compare instructions, patch the code to always return true or to replace
the code sections by NOPs etc.
We're not talking about rocket science here, so I am more interested in
a practical deterent mechanism than in some complex security. I'm
assuming that my customers and free-lance competitors don't have weeks
at their disposal that would make the reverse-engineering cost effective.
Thanks for any input,
Charles