Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #107533

Re: How to stop Reverse Engineer a C, C++, VB or C# application?

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: How to stop Reverse Engineer a C, C++, VB or C# application?
Date 2017-03-31 09:38 +0200
Organization A noiseless patient Spider
Message-ID <obl0rl$2fi$1@dont-email.me> (permalink)
References <objh05$1697$1@gioia.aioe.org>

Show all headers | View raw


On 30/03/17 19:59, Real Troll wrote:
> 
> Is there any way to stop an application from bundling all the debug info
> in the executables so that people can't reverse engineer the file?
> 
> I was watching a yourTube video and somebody showed a way to reverse the
> exe file and extract the source code from it and the guy created a
> keyGen from it so that now everybody can use the programs without buying
> it.  Surely, there must be a way to stop this or at least make it harder
> for amateurs from doing this.
> 
> I create the "Release" versions of my toy applications and when I opened
> the exe file in WordPad, I could see almost most things that are
> supposed to be private.
> 
> Jesus is not going to help me here, can he?
> 
> 

As others have pointed out, make sure you build without debug
information, and run "strip" on the executable to take out any extra
linking or debug symbols that are not needed.

Prefer to use static linking where possible, rather than dynamic
linking.  This lets you keep more of the function and symbol names
internal, and they will be removed by "strip".

Use link-time optimisation.  This will blur the boundaries between
functions on a much wider scale, making it much harder for reverse
engineering.  In general, high optimisation levels make it harder to
follow the logic of code from a disassembly.

Beyond that, you can look at obfuscation.  If you have got lots of
strings in the code, try to find a way to "munge" them.  This is
probably best done with the help of some external scripts.  Something as
simple as xor'ing each letter with a fixed value will be quite effective
at ruining an attempt at running "strings" on the file.

Finally, there are obfuscation utilities that intentionally jumble up
code by inserting extra jumps, splitting up functions, etc.  Note that
these may slow down the code - sometimes quite significantly, as you
lose a lot of locality in your code.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

How to stop Reverse Engineer a C, C++, VB or C# application? Real Troll <real.troll@trolls.com> - 2017-03-30 12:59 -0500
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? scott@slp53.sl.home (Scott Lurndal) - 2017-03-30 18:45 +0000
    Re: How to stop Reverse Engineer a C, C++, VB or C# application? Real Troll <real.troll@trolls.com> - 2017-03-30 16:45 -0500
      Re: How to stop Reverse Engineer a C, C++, VB or C# application? Jerry Stuckle <jstucklex@attglobal.net> - 2017-03-30 18:53 -0400
      Re: How to stop Reverse Engineer a C, C++, VB or C# application? Ken Brody <kenbrody@spamcop.net> - 2017-03-31 13:56 -0400
        Re: How to stop Reverse Engineer a C, C++, VB or C# application? supercat@casperkitty.com - 2017-03-31 11:49 -0700
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? Jens Stuckelberger <Jens_Stuckelberger@nowhere.net> - 2017-03-30 20:29 +0000
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2017-03-30 14:06 -0700
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? gordonb.1bihd@burditt.org (Gordon Burditt) - 2017-03-30 18:52 -0500
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-03-30 20:01 -0400
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? David Brown <david.brown@hesbynett.no> - 2017-03-31 09:38 +0200
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? fir <profesor.fir@gmail.com> - 2017-03-31 00:56 -0700
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? supercat@casperkitty.com - 2017-03-31 08:59 -0700
    Re: How to stop Reverse Engineer a C, C++, VB or C# application? Real Troll <real.troll@trolls.com> - 2017-03-31 12:00 -0500
  Re: How to stop Reverse Engineer a C, C++, VB or C# application? Ken Brody <kenbrody@spamcop.net> - 2017-03-31 13:51 -0400
    Re: How to stop Reverse Engineer a C, C++, VB or C# application? Keith Thompson <kst-u@mib.org> - 2017-03-31 12:29 -0700
    Re: How to stop Reverse Engineer a C, C++, VB or C# application? Real Troll <real.troll@trolls.com> - 2017-03-31 16:59 -0400
      Re: How to stop Reverse Engineer a C, C++, VB or C# application? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-04-01 06:05 +0000
      Re: How to stop Reverse Engineer a C, C++, VB or C# application? Robert Wessel <robertwessel2@yahoo.com> - 2017-04-01 01:35 -0500
      OT: private info in .exe files from VS (was Re: How to stop Reverse Engineer a C, C++, VB or C# application?) Ken Brody <kenbrody@spamcop.net> - 2017-04-03 12:39 -0400

csiph-web