A decompila software înseamnă a lua acel software și a schimba limba în care este scris în ceva care este mai ușor de înțeles pentru oameni. Face acest lucru prin preluarea limbajului programului original și schimbarea acestuia într-un cod sursă care poate fi mai bine înțeles. Dacă este făcut corect, atunci când o persoană încearcă să decompileze software-ul, el sau ea poate crea un program care acționează foarte similar, dacă nu exact ca, cu software-ul original.
Există multe programe care pot fi folosite pentru a decompila software-ul. Unele dintre aceste programe au utilizări legitime, iar altele nu. Trebuie remarcat faptul că oricine încearcă să decompileze software în scopuri ilegale ar putea încălca furtul proprietății intelectuale, care este pedepsit prin statut penal în multe țări.
De fapt, realizarea de copii piratate ale software-ului sau realizarea unui produs care are aceeași funcție ca software-ul original poate fi cel mai frecvent motiv pentru a decompila software-ul. Acest lucru se datorează faptului că este posibil să se utilizeze un decompiler software pentru a elimina software-ul de protecție anti-copie. Astfel, oricine poate decompila cu succes software-ul într-un astfel de mod are o capacitate nelimitată de a face copii ale programului.
În timp ce multe companii ar dori să vadă programele de computer care decompilează software-ul să fie interzise doar din acest motiv, există și câteva utilizări legitime pentru decompilarea software-ului. Acestea includ găsirea de erori în program, găsirea de programe malware și verificarea codului. În plus, utilizarea unui program de decompilare a software-ului poate acționa ca un ajutor de învățare pentru studenții care studiază programarea. Aceste cazuri pot fi motive foarte valide pentru a decompila software-ul.
Adesea, un decompilator poate fi un instrument util pentru cei care au de-a face cu software open source, care ar putea dori să adauge la caracteristicile sau valoarea unui anumit program. În acest caz, un decompilator poate ajuta substanțial în progresul către rescrierea sau adăugarea la program. Cu toate acestea, acest lucru este mult diferit de decompilarea unui program de la un producător major de software, dintre care majoritatea sunt protejate prin acorduri de licență și cod anti-copie.
Trebuie remarcat faptul că decompilarea software-ului nu înseamnă doar dezasamblarea unui program, deși numele poate sugera că este singurul lucru care se face. Partea de traducere a decompilării este, de asemenea, foarte importantă. Adesea, odată ce este tradus, este apoi compilat din nou împreună pentru a vedea dacă au fost obținute rezultatele dorite. Dacă nu, este posibil să fie nevoie de lucrări suplimentare.