Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 159323
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T10:50:19+00:00 2026-05-11T10:50:19+00:00

A different question, i.e. Best .NET obfuscation tools/strategy , asks whether obfuscation is easy

  • 0

A different question, i.e. Best .NET obfuscation tools/strategy, asks whether obfuscation is easy to implement using tools.

My question though is, is obfuscation effective? In a comment replying to this answer, someone said that ‘if you’re worried about source theft … obfuscation is almost trivial to a real cracker‘.

I’ve looked at the output from the Community Edition of Dotfuscator: and it looks obfuscated to me! I wouldn’t want to maintain that!

I understand that simply ‘cracking’ obfuscated software might be relatively easy: because you only need to find whichever location in the software implements whatever it is you want to crack (typically the license protection), and add a jump to skip that.

If the worry is more than just cracking by an end-user or a ‘pirate’ though: if the worry is ‘source theft’ i.e. if you’re a software vendor, and your worry is another vendor (a potential competitor) reverse-engineering your source, which they could then use in or add to their own product … to what extent is simple obfuscation an adequate or inadequate protection against that risk?


1st edit:

The code in question is about 20 KLOC which runs on end-user machines (a user control, not a remote service).

If obfuscation really is ‘almost trivial to a real cracker‘, I’d like some insight into why it’s ineffective (and not just ‘how much’ it’s not effective).


2nd edit:

I’m not worried about someone’s reversing the algorithm: more worried about their repurposing the actual implementation of the algorithm (i.e. the source code) into their own product.

Figuring that 20 KLOC is several month’s work to develop, would it take more or less than this (several months) to deobfuscate it all?

Is it even necessary to deobfuscate something in order to ‘steal’ it: or might a sane competitor simply incorporate it wholesale into their product while still obfuscated, accept that as-is it’s a maintenance nightmare, and hope that it needs little maintenance? If this scenario is a possibility then is obfuscated .Net code any more vulnerable to this than compiled machine code is?

Is most of the obfuscation ‘arms race’ aimed mostly at preventing people people from even ‘cracking’ something (e.g. finding and deleting the code fragment which implements licensing protection/enforcement), more than at preventing ‘source theft’?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T10:50:19+00:00Added an answer on May 11, 2026 at 10:50 am

    I’ve discussed why I don’t think Obfuscation is an effective means of protection against cracking here:
    Protect .NET Code from reverse engineering

    However, your question is specifically about source theft, which is an interesting topic. In Eldad Eiliams book, ‘Reversing: Secrets of Reverse Engineering‘, the author discusses source theft as one reason behind reverse engineering in the first two chapters.

    Basically, what it comes down to is the only chance you have of being targeted for source theft is if you have some very specific, hard to engineer, algorithm related to your domain that gives you a leg up on your competition. This is just about the only time it would be cost-effective to attempt to reverse engineer a small portion of your application.

    So, unless you have some top-secret algorithm you don’t want your competition to have, you don’t need to worry about source theft. The cost involved with reversing any significant amount of source-code out of your application quickly exceeds the cost of re-writing it from scratch.

    Even if you do have some algorithm you don’t want them to have, there isn’t much you can do to stop determined and skilled individuals from getting it anyway (if the application is executing on their machine).

    Some common anti-reversing measures are:

    • Obfuscating – Doesn’t do much in terms of protecting your source or preventing it from being cracked. But we might as well not make it totally easy, right?
    • 3rd Party Packers – Themida is one of the better ones. Packs an executable into an encrypted win32 application. Prevents reflection if the application is a .NET app as well.
    • Custom Packers – Sometimes writing your own packer if you have the skill to do so is effective because there is very little information in the cracking scene about how to unpack your application. This can stop inexperienced RE’s. This tutorial gives some good information on writing your own packer.
    • Keep industry secret algorithms off the users machine. Execute them as a remote service so the instructions are never executed locally. The only ‘fool-proof’ method of protection.

    However, packers can be unpacked, and obfuscation doesn’t really hinder those who want to see what you application is doing. If the program is run on the users machine then it is vulnerable.

    Eventually its code must be executed as machine code and it is normally a matter of firing up debugger, setting a few breakpoints and monitoring the instructions being executed during the relevant action and some time spent poring over this data.


    You mentioned that it took you several months to write ~20kLOC for your application. It would take almost an order of magnitude longer to reverse those equivalent 20kLOC from your application into workable source if you took the bare minimum precautions.

    This is why it is only cost-effective to reverse small, industry specific algorithms from your application. Anything else and it isn’t worth it.

    Take the following fictionalized example: Lets say I just developed a brand new competing application for iTunes that had a ton of bells and whistles. Let say it took several 100k LOC and 2 years to develop. One key feature I have is a new way of serving up music to you based off your music-listening taste.

    Apple (being the pirates they are) gets wind of this and decides they really like your music suggest feature so they decide to reverse it. They will then hone-in on only that algorithm and the reverse engineers will eventually come up with a workable algorithm that serves up the equivalent suggestions given the same data. Then they implement said algorithm in their own application, call it ‘Genius’ and make their next 10 trillion dollars.

    That is how source theft goes down.

    No one would sit there and reverse all 100k LOC to steal significant chunks of your compiled application. It would simply be too costly and too time consuming. About 90% of the time they would be reversing boring, non-industry-secretive code that simply handled button presses or handled user input. Instead, they could hire developers of their own to re-write most of it from scratch for less money and simply reverse the important algorithms that are difficult to engineer and that give you an edge (ie, music suggest feature).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 80k
  • Answers 80k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Maybe question is about sharing session? This can be done… May 11, 2026 at 4:16 pm
  • Editorial Team
    Editorial Team added an answer You are probably manually calling setVisible(true) on the menu. That… May 11, 2026 at 4:16 pm
  • Editorial Team
    Editorial Team added an answer I am sure someone is going to come up with… May 11, 2026 at 4:16 pm

Related Questions

I am after so advice really. I have been thinking about a client server
The platform isn't really as important as the theory. For the record, it is
What I am asking, is what is the best way (i.e. the way that
I'd like to build a query string based on values taken from 5 groups

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.