Jump to content

Check out our Community Blogs

Register and join over 40,000 other developers!

Recent Status Updates

View All Updates

- - - - -

How To Protect Window Application

security C# windows reverse engineering decompile

  • Please log in to reply
3 replies to this topic

#1 techsolnltd


    CC Lurker

  • New Member
  • Pip
  • 3 posts
  • Programming Language:C, C++, C#, (Visual) Basic, Visual Basic .NET
  • Learning:PHP, Python, Perl

Posted 16 June 2012 - 04:20 AM

We all know that with the help of decompilation and disassembly, windows application can be reverse engineered i.e. source code can be reformed from the executable file only.

We can use obfuscation to make it difficult to understand but there is still a possiblity that the source code can be revealed out.
Is ther any way that we can protect the window application 100% ?
  • 0

#2 kernelcoder


    CC Devotee

  • Expert Member
  • PipPipPipPipPipPip
  • 990 posts
  • Location:Dhaka
  • Programming Language:C, Java, C++, C#, Visual Basic .NET
  • Learning:Objective-C, PHP, Python, Delphi/Object Pascal

Posted 16 June 2012 - 08:52 AM

Well, if you write your application even in a language which directly converts the application code to machine code (like assembly or C/C++), it is possible to understand the logic of any application. Think yourself as a processor and you are executing the machine code -- so you eventually know any application about what & how it is doing.

Now, as long as our concern is about not to let see to others the exact code we wrote with .NET managed way, there are tools (Dotfuscator, Spices etc) that will mangled our code (variable name, method name, expression etc) so that it will not be possible (at some extent) to extract our code. Even in that case, it is possible to see the number of types in a namespace, number of methods/properties in a class and such using Reflection.
  • 0

#3 Davide


    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 484 posts

Posted 16 June 2012 - 04:07 PM

If the user has the executable then no matter what you do the instructions can be reverse engineered by someone who is persistent enough.

The solution I could offer you is to keep the executable on a remote computer and allow the users access to it through a mediator, unfortunately (for the developer :D) this is not always possible.

This forum for instance, can you see its PHP source code? Of course not, you only have access to the result of the web application, not to the application itself.
Other examples of this practice would be WolframAlpha and Apple's Siri.
  • 0
Are you a newbie programmer trying to learn C#? Check out my small tutorial: Visual C# Programming Basics

#4 WingedPanther73


    A spammer's worst nightmare

  • Moderator
  • 17757 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others

Posted 16 June 2012 - 04:08 PM

Short answer: no. If you know how to read machine code, you can decipher any program. Also, every layer of indirection adds to the likelihood of errors, and the chance that you are negatively impacting program performance.
  • 0

Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/

Also tagged with one or more of these keywords: security, C#, windows, reverse engineering, decompile

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download