We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Software

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What does It Mean to Decompile a Software Program?

By Ken Black
Updated: May 16, 2024

To decompile software means to take that software and change the language it is written in to something that is more understandable to humans. It does this by taking the language of the original program and changing it into a source code that can be better understood. If done correctly, when a person attempts to decompile software, he or she can create a program that acts very similar, if not exactly like, the original software.

There are many programs which can be used to decompile software. Some of these programs have legitimate uses and others do not. It should be noted that anyone attempting to decompile software for illegal purposes could be in violation of stealing intellectual property, which is a punishable by criminal statute in many countries.

In fact, making pirated copies of software, or making a product that has the same function as the original software, may be the most common reason to decompile software. This is because it may be possible to use a software decompiler to strip the software of its anti-copy protection. Thus, anyone who can successfully decompile software in such a way has an unlimited ability to make copies of the program.

While many companies would like to see computer programs that decompile software outlawed for that reason alone, there are some legitimate uses for software decompilation as well. Those include finding bugs in the program, finding malware and checking code. In addition, using a program to decompile software can act as a learning aid for students studying programming. These instances can be very valid reasons to decompile software.

Often, a decompiler can be a useful tool for those who are dealing with open source software, who may want to add to a certain program's features or value. In this case, a decompiler can aid substantially in the progress toward rewriting, or adding to, the program. However, this is far different than decompiling a program from a major software manufacturer, most of which are protected by license agreements and anti-copy code.

It should be noted that decompiling software does not mean just to disassemble a program, though the name may suggest that is the only thing being done. The translation part of the decompilation is also very important. Often, once it is translated, it is then compiled back together to see if the desired results have been obtained. If not, further work may need to be done.

EasyTechJunkie is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Discussion Comments
By Charred — On Jul 05, 2011

At work the graphic designer does a lot of animations in Flash. Sometimes she’ll use animations that already exist out on the Internet as her starting point or baseline for inspiration. She has a SWF decompiler (this is the default format for Flash) which lets her decompile Flash animations.

As a result she winds up with all of the images, symbols, animations, etc., as separate entities which she can manipulate to create brand new animations. She makes enough changes of course so that the new animation doesn’t resemble the old one and infringe on copyrights. It just saves her a lot of work and time.

By MrMoody — On Jul 04, 2011

@miriam98 - Yes, that’s true of .NET. That’s because .NET creates an intermediate library like JAVA before creating the actual run-time.

However, it’s a little more difficult to decompile VB applications. Visual Basic does not use a publicly exposed class library like .NET does. It’s my understanding that it’s virtually impossible to accurately decompile VB applications from the executable program.

I’ve tried some so-called decompilers for VB and they just make a sloppy mess of things in my opinion. There’s so much cleanup work you have to do that it would be easier to rebuild the application from scratch.

By miriam98 — On Jul 03, 2011

I sometimes hear on the computer programming forums if it’s possible to decompile NET programs. The answer is yes. The .NET framework creates an intermediate file that shows you all the classes and stuff that are in the program.

As a matter of fact, .NET itself ships with its own utility that lets you peek inside the assembly (the program) and see all of the classes and functions. They’re in a slightly altered form syntactically, but you can still get a general idea of what’s going on. I use it myself and find it to be a really great learning tool.

Some people have raised howls of protest about this capability, saying that it’s easier for hackers to break into applications developed for the .NET framework. However, you can use a tool called an obfuscator which will make your application unreadable with any utility.

By Mammmood — On Jul 03, 2011

I’m not sure that a decompiler would really be needed for open source software. The reason is that most open source software applications come with their own source code.

You don’t need to decompile the executable – just look at the source, make your changes there, and then compile a new executable.

Open source is meant to be easily modified so that’s why they give you the source code. There’s no need for a decompiler. Personally, I never use the source – I just download the executable program because I have no need to modify the program myself.

Share
EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.

EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.