ในการถอดรหัสซอฟต์แวร์หมายถึงการใช้ซอฟต์แวร์นั้นและเปลี่ยนภาษาที่เขียนลงในสิ่งที่มนุษย์เข้าใจได้ง่ายขึ้น ทำได้โดยใช้ภาษาของโปรแกรมต้นฉบับและเปลี่ยนเป็นซอร์สโค้ดที่สามารถเข้าใจได้ดีขึ้น หากทำอย่างถูกต้องเมื่อบุคคลพยายามถอดรหัสซอฟต์แวร์เขาหรือเธอสามารถสร้างโปรแกรมที่ทำหน้าที่คล้ายกันมากหากไม่ใช่ซอฟต์แวร์ดั้งเดิม
มีหลายโปรแกรมที่สามารถใช้ในการถอดรหัสซอฟต์แวร์ บางส่วนของโปรแกรมเหล่านี้มีการใช้งานที่ถูกกฎหมายและอื่น ๆ ไม่ได้ ควรสังเกตว่าใครก็ตามที่พยายามถอดรหัสซอฟต์แวร์เพื่อวัตถุประสงค์ที่ผิดกฎหมายอาจเป็นการละเมิดทรัพย์สินทางปัญญาซึ่งเป็นการลงโทษตามกฎหมายอาญาในหลายประเทศ
อันที่จริงแล้วการทำสำเนาซอฟต์แวร์ที่ละเมิดลิขสิทธิ์หรือสร้างผลิตภัณฑ์ที่มีฟังก์ชั่นเดียวกับซอฟต์แวร์ต้นฉบับอาจเป็นสาเหตุที่พบได้บ่อยที่สุดในการถอดรหัสซอฟต์แวร์ นี่เป็นเพราะอาจเป็นไปได้ที่จะใช้ตัวถอดรหัสซอฟต์แวร์เพื่อแยกซอฟต์แวร์ของการป้องกันการคัดลอก ดังนั้นทุกคนที่สามารถแยกส่วนประกอบของซอฟต์แวร์ด้วยวิธีนี้จะมีความสามารถไม่ จำกัด ในการทำสำเนาของโปรแกรม
ในขณะที่หลาย ๆ บริษัท ต้องการที่จะเห็นโปรแกรมคอมพิวเตอร์ที่ถอดรหัสซอฟต์แวร์ผิดกฎหมายด้วยเหตุผลเพียงอย่างเดียว แต่ก็มีการใช้งานที่ถูกกฎหมายสำหรับการแยกย่อยซอฟต์แวร์เช่นกัน สิ่งเหล่านั้นรวมถึงการค้นหาข้อบกพร่องในโปรแกรมค้นหามัลแวร์และตรวจสอบรหัส นอกจากนี้การใช้โปรแกรมเพื่อถอดรหัสซอฟต์แวร์สามารถทำหน้าที่เป็นเครื่องช่วยการเรียนรู้สำหรับนักเรียนที่กำลังศึกษาการเขียนโปรแกรม อินสแตนซ์เหล่านี้อาจเป็นเหตุผลที่ถูกต้องในการถอดรหัสซอฟต์แวร์
บ่อยครั้งที่ decompiler สามารถเป็นเครื่องมือที่มีประโยชน์สำหรับผู้ที่กำลังติดต่อกับซอฟต์แวร์โอเพ่นซอร์สซึ่งอาจต้องการเพิ่มคุณสมบัติหรือคุณค่าของโปรแกรมบางอย่าง ในกรณีนี้ decompiler สามารถช่วยอย่างมากในความคืบหน้าไปสู่การเขียนใหม่หรือเพิ่มโปรแกรม อย่างไรก็ตามนี่แตกต่างจากการแยกโปรแกรมออกจากผู้ผลิตซอฟต์แวร์รายใหญ่ซึ่งส่วนใหญ่ได้รับการคุ้มครองโดยข้อตกลงสิทธิ์ใช้งานและรหัสป้องกันการคัดลอก
ควรสังเกตว่าซอฟต์แวร์ที่ทำการถอดรหัสไม่ได้แปลว่าถอดแยกโปรแกรม แต่ชื่ออาจแนะนำว่าเป็นสิ่งเดียวที่ทำ ส่วนการแปลของ decompilation ก็สำคัญเช่นกัน บ่อยครั้งที่มีการแปลแล้วจะรวบรวมกลับมารวมกันเพื่อดูว่าได้ผลลัพธ์ที่ต้องการหรือไม่ ถ้าไม่จำเป็นต้องทำงานเพิ่มเติม


