Dekompilirati softver znači uzeti taj softver i promijeniti jezik na kojem je napisan u nešto što je ljudima razumljivije. To čini uzimajući jezik izvornog programa i mijenjajući ga u izvorni kod koji se može bolje razumjeti. Ako se radi ispravno, kada osoba pokuša dekompilirati softver, može stvoriti program koji djeluje vrlo slično, ako ne baš kao, originalni softver.
Postoji mnogo programa koji se mogu koristiti za dekompilaciju softvera. Neki od ovih programa imaju legitimnu upotrebu, a drugi ne. Treba napomenuti da bi svatko tko pokuša dekompilirati softver u nezakonite svrhe mogao biti prekršio krađu intelektualnog vlasništva, što je kazneno kažnjivo u mnogim zemljama.
Zapravo, izrada piratskih kopija softvera ili izrada proizvoda koji ima istu funkciju kao izvorni softver može biti najčešći razlog za dekompilaciju softvera. To je zato što je moguće upotrijebiti softverski dekompilator za uklanjanje zaštite softvera od kopiranja. Dakle, svatko tko može uspješno dekompilirati softver na takav način ima neograničenu mogućnost izrade kopija programa.
Iako bi mnoge tvrtke željele vidjeti da su računalni programi koji dekompiliraju softver zabranjeni samo iz tog razloga, postoje i neke legitimne upotrebe za dekompilaciju softvera. To uključuje pronalaženje grešaka u programu, pronalaženje zlonamjernog softvera i provjeru koda. Osim toga, korištenje programa za dekompilaciju softvera može služiti kao pomoćno učenje za studente koji studiraju programiranje. Ti slučajevi mogu biti vrlo valjani razlozi za dekompiliranje softvera.
Često dekompilator može biti koristan alat za one koji se bave softverom otvorenog koda, koji bi možda željeli dodati značajke ili vrijednost određenog programa. U ovom slučaju, dekompilator može značajno pomoći u napretku prema ponovnom pisanju ili dodavanju programa. Međutim, ovo je daleko drugačije od dekompilacije programa velikog proizvođača softvera, od kojih je većina zaštićena licencnim ugovorima i kodom protiv kopiranja.
Treba napomenuti da dekompiliranje softvera ne znači samo rastavljanje programa, iako ime može sugerirati da je to jedino što se radi. Vrlo je važan i prijevodni dio dekompilacije. Često se, nakon što se prevede, ponovno sastavlja kako bi se vidjelo jesu li dobiveni željeni rezultati. Ako ne, možda će biti potrebno obaviti daljnji rad.