Decompile là gì?

Noun Programming
Dịch ngược

Dịch ngược (decompile) nghĩa là chuyển đổi mã chương trình thực thi hoặc sẵn sàng chạy, đôi khi được gọi là mã đối tượng (object code) thành một số dạng ngôn ngữ lập trình cấp cao ( high-level language) hơn mà con người có thể dễ dàng hiểu được. Dịch ngược (decompile) là một loại của reverse engineering thực hiện các hoạt động ngược lại của trình biên dịch (compiler). Dịch ngược (decompile) lần đầu tiên được sử dụng vào những năm 1960 để tạo điều kiện thuận lợi cho việc di chuyển một chương trình từ nền tảng (platform) này sang nền tảng khác.

Để chuyển đổi mã lập trình thành chương trình, trước tiên nó phải được biên dịch (compile) tức là được chuyển đổi thành một chuỗi các bit hoặc chữ số nhị phân (tức là 1s và 0s) mà máy tính có thể hiểu được. Thao tác này có thể được đảo ngược bằng cách dịch ngược (decompile) chương trình cuối cùng (đó là lý do tại sao dịch ngược được mô tả như một loại của reverse engineering).

Công cụ (tool) được sử dụng để dịch ngược mã phần mềm và dịch nó thành một dạng mà con người có thể hiểu được được gọi đơn giản là một trình dịch ngược (decompiler).

Disassembler là một công cụ tương tự để dịch mã đối tượng sang ngôn ngữ trình hợp dịch. Nó cung cấp một "kết xuất" mã máy làm cho một chương trình hoạt động. Một số trình biên dịch ngược trên thực tế là trình tháo rời.

Có nhiều lý do hợp lệ để dịch ngược (decompile) mã nguồn, chẳng hạn như:

  • Để hiểu một chương trình máy tính và chức năng của mã của nó;
  • Khôi phục mã nguồn để lưu trữ hoặc cập nhật;
  • Tìm vi rút trong chương trình và do đó tăng cường bảo mật cho chương trình
  • Gỡ lỗi (debug) chương trình và sửa lỗi
  • Dịch mã lỗi thời (obsolete code)
  • Làm cho phần mềm tương thích với các thành phần (component) của bên thứ ba (third party) và cho phép khả năng tương tác (interoperability).
Learning English Everyday