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


Groups > comp.lang.c > #107506 > unrolled thread

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

Started byReal Troll <real.troll@trolls.com>
First post2017-03-30 12:59 -0500
Last post2017-04-03 12:39 -0400
Articles 20 — 14 participants

Back to article view | Back to comp.lang.c


Contents

  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

#107506 — How to stop Reverse Engineer a C, C++, VB or C# application?

FromReal Troll <real.troll@trolls.com>
Date2017-03-30 12:59 -0500
SubjectHow to stop Reverse Engineer a C, C++, VB or C# application?
Message-ID<objh05$1697$1@gioia.aioe.org>
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?

[toc] | [next] | [standalone]


#107509

Fromscott@slp53.sl.home (Scott Lurndal)
Date2017-03-30 18:45 +0000
Message-ID<7ncDA.98499$_83.292@fx07.iad>
In reply to#107506
Real Troll <real.troll@trolls.com> writes:
>
>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?

Windows?  Solaris?  Linux?  MCP? Exec/1100?  Z/OS?

Certainly most of the aforementioned operating environments provide
mechanisms to remove information not required at runtime.   The
unix 'strip' command comes to mind.

However, so long as one can read the machine code, one can disassemble it
and reverse engineer it, and one generally needs to read the code
to be able to load it into memory and execute it.

There may also be information such as the RTTI tables used in C++
applications that are necesssary at run-time for proper operation.

Encrypting and signing the binary using a trusted OS is likely the only
rational solution.

[toc] | [prev] | [next] | [standalone]


#107523

FromReal Troll <real.troll@trolls.com>
Date2017-03-30 16:45 -0500
Message-ID<objubq$1spf$1@gioia.aioe.org>
In reply to#107509
On 30/03/2017 19:45, Scott Lurndal wrote:
> Real Troll <real.troll@trolls.com> writes:
>> 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?
> Windows?  Solaris?  Linux?  MCP? Exec/1100?  Z/OS?
>
This is Windows system using Visual Studio Community Edition and/or 
Express Edition.

The video I watched is this:

<https://youtu.be/3D5FOPOkE5Y>

[toc] | [prev] | [next] | [standalone]


#107526

FromJerry Stuckle <jstucklex@attglobal.net>
Date2017-03-30 18:53 -0400
Message-ID<obk242$umh$1@jstuckle.eternal-september.org>
In reply to#107523
On 3/30/2017 5:45 PM, Real Troll wrote:
> On 30/03/2017 19:45, Scott Lurndal wrote:
>> Real Troll <real.troll@trolls.com> writes:
>>> 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?
>> Windows?  Solaris?  Linux?  MCP? Exec/1100?  Z/OS?
>>
> This is Windows system using Visual Studio Community Edition and/or
> Express Edition.
> 
> The video I watched is this:
> 
> <https://youtu.be/3D5FOPOkE5Y>
> 
> 

That's a Visual Basic file, not a C file.  Entirely different animal.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================

[toc] | [prev] | [next] | [standalone]


#107546

FromKen Brody <kenbrody@spamcop.net>
Date2017-03-31 13:56 -0400
Message-ID<obm528$s8b$1@dont-email.me>
In reply to#107523
On 3/30/2017 5:45 PM, Real Troll wrote:
> On 30/03/2017 19:45, Scott Lurndal wrote:
>> Real Troll <real.troll@trolls.com> writes:
>>> 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?
>> Windows?  Solaris?  Linux?  MCP? Exec/1100?  Z/OS?
>>
> This is Windows system using Visual Studio Community Edition and/or Express
> Edition.
>
> The video I watched is this:
>
> <https://youtu.be/3D5FOPOkE5Y>

I didn't watch the whole video, but that looks like a Visual BASIC program 
on the screen.  It's possible that VB compiles things in a way that allow 
easy "de-compiling".

-- 
Kenneth Brody

[toc] | [prev] | [next] | [standalone]


#107547

Fromsupercat@casperkitty.com
Date2017-03-31 11:49 -0700
Message-ID<bbb29245-c7b6-4a98-9edf-5f6da785f014@googlegroups.com>
In reply to#107546
On Friday, March 31, 2017 at 12:56:23 PM UTC-5, Ken Brody wrote:
> I didn't watch the whole video, but that looks like a Visual BASIC program 
> on the screen.  It's possible that VB compiles things in a way that allow 
> easy "de-compiling".

Both .NET and Java translate source code to an intermediate language form which is stored in an executable.  When a program is run, a "just-in-time compiler" (JIT) converts that to machine code.  This makes it possible to have an executable that can run on many different platforms, and allows many semantic advantages as well.  The intermediate form, however, is by design rather easy to reverse-engineer.

[toc] | [prev] | [next] | [standalone]


#107518

FromJens Stuckelberger <Jens_Stuckelberger@nowhere.net>
Date2017-03-30 20:29 +0000
Message-ID<objprl$a62$1@news.albasani.net>
In reply to#107506
On Thu, 30 Mar 2017 12:59:00 -0500, Real Troll wrote:

> I was watching a yourTube video and somebody showed a way to reverse the
> exe file and extract the source code from it 

	It would be more like recreating a version of the source code 
from it. The compilation process discards data present in the original 
source code, especially when attempting to optimize the code. Recovering 
the original C source code from an executable is impossible.

[toc] | [prev] | [next] | [standalone]


#107521

From"Rick C. Hodgin" <rick.c.hodgin@gmail.com>
Date2017-03-30 14:06 -0700
Message-ID<b165d29f-4102-4609-9451-63ac0020d16e@googlegroups.com>
In reply to#107506
On Thursday, March 30, 2017 at 1:58:38 PM UTC-4, Real Troll wrote:
> Is there any way to stop ... reverse engineer the file?
> ...
> Jesus is not going to help me here, can he?

Actually, He can, RT.  He would ask you to release the product as not
only open source, but with full rights for others to take what you've
produced and build upon it.

In that way, nobody can reverse-engineer your product, because they have
the full source code.

It is what I do with all of my software, releasing it with a type of
modified Public Domain license where I ask the recipient to honor my
request to keep the software open, and to release any augments to it.
I do not demand this through our legal system, but leave it in the
court of God, such that they have received my content, received the
license, understood my request, and get to choose for themselves
whether they will honor it or not.

It's what God did when He gave man this planet.  And for all who
have not honored His requests, there is a day of judgment coming.
I leave the same end up to Him, and not up to man's legal system:

    http://www.libsf.org/licenses/

    My server's down for maintenance right now, but it should be
    back up later this evening.  And here is my source code repo:

    http://www.libsf.org:8990/projects/LIB/repos/libsf/browse

Thank you,
Rick C. Hodgin

[toc] | [prev] | [next] | [standalone]


#107528

Fromgordonb.1bihd@burditt.org (Gordon Burditt)
Date2017-03-30 18:52 -0500
Message-ID<0dqdnXE3QIC4B0DFnZ2dnUU7-VvNnZ2d@posted.internetamerica>
In reply to#107506
> 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?

Don't distribute the executable, and you won't have this problem.
Better yet, don't create crippled software in the first place.

> 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.

It's easy:  make sure that your program does not ask for a key.

> 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.

gcc has various flags like -g to include debugging info.  Don't use them.
However, I am not sure how applicable this is to a Windows platform.
 
> Jesus is not going to help me here, can he?

No, because you're working for the other side.

[toc] | [prev] | [next] | [standalone]


#107529

FromLew Pitcher <lew.pitcher@digitalfreehold.ca>
Date2017-03-30 20:01 -0400
Message-ID<obk63q$8jt$1@dont-email.me>
In reply to#107506
Real Troll wrote:

> 
> Is there any way to stop an application from bundling all the debug info
> in the executables

Sure. "strip" the executables of debug info during the link phase

> so that people can't reverse engineer the file?

No. Classic DRM problem - the information (in this case, executable code) 
that you need to "use" the file (run the app) is also the same information 
necessary in order to "reverse engineer" the app.

Of course, you can make it difficult to reverse engineer the code, but you 
can't make it impossible, without also preventing legitimate execution of 
the code as well.


-- 
Lew Pitcher
"In Skills, We Trust"
PGP public key available upon request

[toc] | [prev] | [next] | [standalone]


#107533

FromDavid Brown <david.brown@hesbynett.no>
Date2017-03-31 09:38 +0200
Message-ID<obl0rl$2fi$1@dont-email.me>
In reply to#107506
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.

[toc] | [prev] | [next] | [standalone]


#107535

Fromfir <profesor.fir@gmail.com>
Date2017-03-31 00:56 -0700
Message-ID<7501b7b7-97e0-44aa-975b-c22da29cf7c5@googlegroups.com>
In reply to#107506
W dniu czwartek, 30 marca 2017 19:58:38 UTC+2 użytkownik Real Troll napisał:
> 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?

this is veeery lame question, how could you code something not knowing that? as to c, team of engeeneers
at laboratory could probably fully reverse application, 
(without restoring names)
but try it yourself to see how easy it is ;c crackers usually afaik only reverse some small parts, this can be done quicker 

[toc] | [prev] | [next] | [standalone]


#107542

Fromsupercat@casperkitty.com
Date2017-03-31 08:59 -0700
Message-ID<151052cd-46f0-4114-8ba3-7f79aff9ef17@googlegroups.com>
In reply to#107506
On Thursday, March 30, 2017 at 12:58:38 PM UTC-5, 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?

A useful approach may be to express parts of your logic as data (e.g.
use an interpreted or scripting language), and store that data only
in encrypted format.  If your code takes half of the activation code
and decrypts it using a public half of a public-private key pair, xors
the result with the other half of the activation code, and decrypts that
again with the public half of the key pair, and then uses the final
result as a decryption key to decrypt everything else, someone who reverse
engineers your code and released an activation key might be able to hack
it so as not to require an activation key, without leaving any trace of
the activation key that had been used to decrypt it, but someone who only
had the released executable without at least one working activation code
would not be able to decrypt the data necessary to make the logic work.

[toc] | [prev] | [next] | [standalone]


#107544

FromReal Troll <real.troll@trolls.com>
Date2017-03-31 12:00 -0500
Message-ID<obm257$17ki$1@gioia.aioe.org>
In reply to#107542
On 31/03/2017 16:59, supercat@casperkitty.com wrote:
> On Thursday, March 30, 2017 at 12:58:38 PM UTC-5, 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?
> A useful approach may be to express parts of your logic as data (e.g.
> use an interpreted or scripting language), and store that data only
> in encrypted format.  If your code takes half of the activation code
> and decrypts it using a public half of a public-private key pair, xors
> the result with the other half of the activation code, and decrypts that
> again with the public half of the key pair, and then uses the final
> result as a decryption key to decrypt everything else, someone who reverse
> engineers your code and released an activation key might be able to hack
> it so as not to require an activation key, without leaving any trace of
> the activation key that had been used to decrypt it, but someone who only
> had the released executable without at least one working activation code
> would not be able to decrypt the data necessary to make the logic work.

I have found that Microsoft compilers might be defective in this respect 
because even their VS 2017 has been cracked already and it was released 
about two weeks ago.  An Indian programmer has already released a keyGen 
for VS 2017 professional and Enterprise.  I guess this can be done when 
the software doesn't require online activation like Office or Windows.  
Visual Studio doesn't require activation so only a product key is needed 
to make it a licensed product.

[toc] | [prev] | [next] | [standalone]


#107545

FromKen Brody <kenbrody@spamcop.net>
Date2017-03-31 13:51 -0400
Message-ID<obm4q8$rdr$1@dont-email.me>
In reply to#107506
On 3/30/2017 1:59 PM, 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.
[...]

In the general sense, you can't generate source code from an executable 
file.  (You can't turn hamburger back into a cow.)  In some cases, it may be 
possible, if you know a lot about the compiler and environment used to build 
it.  (And debug info helps with that.)

I'm curious what sort of "private" things could you see in the release 
version of the program.  Unless your compiler/makefile/whatever is not 
configured properly, a "release" build should have no extra debug info in 
the file.

-- 
Kenneth Brody

[toc] | [prev] | [next] | [standalone]


#107549

FromKeith Thompson <kst-u@mib.org>
Date2017-03-31 12:29 -0700
Message-ID<ln37dt453c.fsf@kst-u.example.com>
In reply to#107545
Ken Brody <kenbrody@spamcop.net> writes:
[...]
> In the general sense, you can't generate source code from an executable 
> file.  (You can't turn hamburger back into a cow.)  In some cases, it may be 
> possible, if you know a lot about the compiler and environment used to build 
> it.  (And debug info helps with that.)

Well, in principle it should be possible (but perhaps very difficult)
to generate source code that can be compiled to produce an identical,
or at least functionally identical, executable file.  The derived
source code isn't likely to bear much resemblance to the original.
(If you don't insist on portability, it can just be a C source file
consisting almost entirely of inline assembler.)  It's likely to
be impossible to derive local variable names or the exact forms of
constant expressions.  This:
    int x = 0;
    x ++;
and this:
    int foo = 1-1;
    foo = foo + 7/5;
are likely to generate exactly the same machine code.

And any source code you generate is not likely to be useful.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

[toc] | [prev] | [next] | [standalone]


#107552

FromReal Troll <real.troll@trolls.com>
Date2017-03-31 16:59 -0400
Message-ID<obmfr9$1u4m$1@gioia.aioe.org>
In reply to#107545
On 31/03/2017 18:51, Ken Brody wrote:
>
>
> In the general sense, you can't generate source code from an 
> executable file.  (You can't turn hamburger back into a cow.)  In some 
> cases, it may be possible, if you know a lot about the compiler and 
> environment used to build it.  (And debug info helps with that.)
>
> I'm curious what sort of "private" things could you see in the release 
> version of the program.  Unless your compiler/makefile/whatever is not 
> configured properly, a "release" build should have no extra debug info 
> in the file.
>

File folders etc in which they can see my real name because I use my 
real name when working on a windows system or at work.  Something like this:

> Hello-World02 Hello_World02 <Module> mscorlib Console ReadLine 
> WriteLine GuidAttribute DebuggableAttribute ComVisibleAttribute 
> AssemblyTitleAttribute AssemblyTrademarkAttribute 
> TargetFrameworkAttribute AssemblyFileVersionAttribute 
> AssemblyConfigurationAttribute AssemblyDescriptionAttribute 
> CompilationRelaxationsAttribute AssemblyProductAttribute 
> AssemblyCopyrightAttribute AssemblyCompanyAttribute 
> RuntimeCompatibilityAttribute Hello-World02.exe 
> System.Runtime.Versioning Program System Main System.Reflection .ctor 
> System.Diagnostics System.Runtime.InteropServices 
> System.Runtime.CompilerServices DebuggingModes args Object  H e l l 
> o   W o r l 
> d ! €*tˆæÌI™þƒØnÄD#          ·z\V4à‰  
>        TWrapNonExceptionThrows      
> Hello-World02       Copyright ©  2017  ) 
> $5de8c72a-9cb0-49ee-a263-660854fc0047    1.0.0.0  M 
> .NETFramework,Version=v4.5.2 TFrameworkDisplayName.NET Framework 
> 4.5.2       2¿ÞX         €&  € RSDS>rB}M–š‚3ÿYù   
> c:\users\xxxxxxxxxxx\documents\visual studio 
> 2017\Projects\Hello-World02\Hello-World02\obj\Release\Hello-World02.pdb 


Sometimes I post real working programs on some crack sites and now I am 
worried that people would know who is the real person distributing them.

[toc] | [prev] | [next] | [standalone]


#107554

FromJorgen Grahn <grahn+nntp@snipabacken.se>
Date2017-04-01 06:05 +0000
Message-ID<slrnodugou.1jqn.grahn+nntp@frailea.sa.invalid>
In reply to#107552
On Fri, 2017-03-31, Real Troll wrote:
> On 31/03/2017 18:51, Ken Brody wrote:
...
>> I'm curious what sort of "private" things could you see in the release 
>> version of the program.  Unless your compiler/makefile/whatever is not 
>> configured properly, a "release" build should have no extra debug info 
>> in the file.
>>
>
> File folders etc in which they can see my real name because I use my 
> real name when working on a windows system or at work.  Something like this:
>
>> Hello-World02 Hello_World02 <Module> mscorlib Console ReadLine 
...
>> c:\users\xxxxxxxxxxx\documents\visual studio 
>> 2017\Projects\Hello-World02\Hello-World02\obj\Release\Hello-World02.pdb 
>
>
> Sometimes I post real working programs on some crack sites and now I am 
> worried that people would know who is the real person distributing them.

Privacy.  That's actually a valid concern.

I think that on Unix, I'd create a second user account for such
things. Let that user clone the source code and build it, and hope the
toolchain doesn't put my host name, IP address or MAC address in the
binary.

A search for 'Visual Studio privacy' produces some hits.

On the other hand, I would never run an executable produced by someone
anonymous and placed on a crack site.

/Jorgen

-- 
  // Jorgen Grahn <grahn@  Oo  o.   .     .
\X/     snipabacken.se>   O  o   .

[toc] | [prev] | [next] | [standalone]


#107558

FromRobert Wessel <robertwessel2@yahoo.com>
Date2017-04-01 01:35 -0500
Message-ID<odiudctvkd12h8eh6947s2lv5828kenhlf@4ax.com>
In reply to#107552
On Fri, 31 Mar 2017 16:59:00 -0400, Real Troll <real.troll@trolls.com>
wrote:

>On 31/03/2017 18:51, Ken Brody wrote:
>>
>>
>> In the general sense, you can't generate source code from an 
>> executable file.  (You can't turn hamburger back into a cow.)  In some 
>> cases, it may be possible, if you know a lot about the compiler and 
>> environment used to build it.  (And debug info helps with that.)
>>
>> I'm curious what sort of "private" things could you see in the release 
>> version of the program.  Unless your compiler/makefile/whatever is not 
>> configured properly, a "release" build should have no extra debug info 
>> in the file.
>>
>
>File folders etc in which they can see my real name because I use my 
>real name when working on a windows system or at work.  Something like this:
>
>> Hello-World02 Hello_World02 <Module> mscorlib Console ReadLine 
>> WriteLine GuidAttribute DebuggableAttribute ComVisibleAttribute 
>> AssemblyTitleAttribute AssemblyTrademarkAttribute 
>> TargetFrameworkAttribute AssemblyFileVersionAttribute 
>> AssemblyConfigurationAttribute AssemblyDescriptionAttribute 
>> CompilationRelaxationsAttribute AssemblyProductAttribute 
>> AssemblyCopyrightAttribute AssemblyCompanyAttribute 
>> RuntimeCompatibilityAttribute Hello-World02.exe 
>> System.Runtime.Versioning Program System Main System.Reflection .ctor 
>> System.Diagnostics System.Runtime.InteropServices 
>> System.Runtime.CompilerServices DebuggingModes args Object  H e l l 
>> o   W o r l 
>> d ! €*tˆæÌI™þƒØnÄD#  


  
 

 

 


 


  ·z\V4à‰ 


 
>>      
 
 T
WrapNonExceptionThrows

 
     

>> Hello-World02  
    
 Copyright ©  2017  )
 
>> $5de8c72a-9cb0-49ee-a263-660854fc0047  
  1.0.0.0  M
 
>> .NETFramework,Version=v4.5.2
 TFrameworkDisplayName.NET Framework 
>> 4.5.2       2¿ÞX    
   
  €&  € RSDS?>rB}M–š‚3ÿYù
   
>> c:\users\xxxxxxxxxxx\documents\visual studio 
>> 2017\Projects\Hello-World02\Hello-World02\obj\Release\Hello-World02.pdb 
>
>
>Sometimes I post real working programs on some crack sites and now I am 
>worried that people would know who is the real person distributing them.


At least that can be removed on semi-current versions of VS with the
/pdbpath or /pdbaltpath linker option.

[toc] | [prev] | [next] | [standalone]


#107678 — OT: private info in .exe files from VS (was Re: How to stop Reverse Engineer a C, C++, VB or C# application?)

FromKen Brody <kenbrody@spamcop.net>
Date2017-04-03 12:39 -0400
SubjectOT: private info in .exe files from VS (was Re: How to stop Reverse Engineer a C, C++, VB or C# application?)
Message-ID<obttnb$1pv$1@dont-email.me>
In reply to#107552
On 3/31/2017 4:59 PM, Real Troll wrote:
> On 31/03/2017 18:51, Ken Brody wrote:
>>
>>
>> In the general sense, you can't generate source code from an executable
>> file.  (You can't turn hamburger back into a cow.)  In some cases, it may
>> be possible, if you know a lot about the compiler and environment used to
>> build it.  (And debug info helps with that.)
>>
>> I'm curious what sort of "private" things could you see in the release
>> version of the program.  Unless your compiler/makefile/whatever is not
>> configured properly, a "release" build should have no extra debug info in
>> the file.
>>
>
> File folders etc in which they can see my real name because I use my real
> name when working on a windows system or at work.  Something like this:
>
[...]
>> $5de8c72a-9cb0-49ee-a263-660854fc0047    1.0.0.0  M
>> .NETFramework,Version=v4.5.2 TFrameworkDisplayName.NET Framework
>> 4.5.2       2¿ÞX         €&  € RSDS>rB}M–š‚3ÿYù
>> c:\users\xxxxxxxxxxx\documents\visual studio
>> 2017\Projects\Hello-World02\Hello-World02\obj\Release\Hello-World02.pdb
>
>
> Sometimes I post real working programs on some crack sites and now I am
> worried that people would know who is the real person distributing them.

We're getting into very compiler-specific things here, which should probably 
go into one of the Microsoft groups.  However, a quick test here on my copy 
of Visual Studio shows that even the "release" version defaults to having 
debug info generated.

Right-click the project, select "properties".  Then, under configuration 
properties, linker, debugging, make sure "generate debug info" is set to "no".

If there are still some "private" things remaining, you may walso want to 
set configuration properties, linker, manifest file, generate manifest to 
"no".  (No path names were in my test .exe within the manifest.  YMMV.)

-- 
Kenneth Brody

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.c


csiph-web