TopGit
Đánh giá repo GitHub

Ghidra: Công Cụ Dịch Ngược Mã Nguồn Mở Của NSA

GTopGit review image for NationalSecurityAgency/ghidra
Review by Topgit.dev for NationalSecurityAgency/ghidra, with GitHub repository stats and README context.
Nhận định nhanh

Ghidra là framework dịch ngược phần mềm do Ban Nghiên cứu của NSA duy trì, phát hành miễn phí theo giấy phép Apache-2.0, bao gồm disassembly, decompile, assembly và vẽ đồ thị trong một bộ công cụ desktop. Hãy dùng nếu bạn cần một bộ công cụ SRE đầy đủ trên desktop với decompiler thật sự mà không tốn phí bản quyền; bỏ qua nếu bạn chỉ cần xem nhanh một binary và không muốn cài JDK rồi làm quen giao diện mới.

Sao
★ 72.5k
Fork
⑂ 7.9k
Ngôn ngữ
Java
Giấy phép
Apache-2.0
Chủ đề
Cập nhật
Aug 2026
Trang chủ
GitHub

Tìm Hiểu Framework Ghidra

Ghidra là một công cụ phân tích phần mềm chạy trên desktop cho việc dịch ngược, do Ban Nghiên cứu của NSA xây dựng và duy trì, dùng để phân tích mã đã biên dịch trên Windows, macOS và Linux. Các năng lực của nó gồm disassembly, assembly, decompile và vẽ đồ thị, cùng khả năng viết script bằng Java hoặc Python. Ghidra chạy như một ứng dụng desktop tương tác hoặc ở chế độ headless, tự động hoá cho các tác vụ phân tích hàng loạt.

Năng Lực Phân Tích Cốt Lõi

  • Disassembly, assembly, decompile và vẽ đồ thị (graphing) nằm trong cùng một công cụ desktop, cộng với những gì README gọi là 'hàng trăm tính năng khác'.
  • Đọc được nhiều kiến trúc vi xử lý và định dạng file thực thi khác nhau, nên không bị bó buộc vào một dòng CPU hay một định dạng binary.
  • Chạy theo hai cách: giao diện đồ hoạ tương tác để làm thủ công, hoặc chế độ headless tự động cho các tác vụ chạy script hàng loạt.
  • Viết được script bằng Java hoặc Python, và người dùng có thể tự xây các extension component riêng trên nền framework này.
  • Plugin GhidraDev bổ sung tích hợp với Eclipse để phát triển script và extension; Visual Studio Code cũng chỉnh sửa được script, và một cửa sổ CodeBrowser có thể tạo hẳn một VS Code module project.
  • Được xây dựng và duy trì bởi Ban Nghiên cứu của NSA, đơn vị mà README nói đã áp dụng Ghidra vào việc phân tích mã độc và nghiên cứu lỗ hổng bảo mật cho chính các nhà phân tích của mình.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao

Ứng Dụng Thực Tế Của Ghidra

  • Phân tích mã độc: mổ xẻ một binary khả nghi để xem nó thực sự làm gì, đúng loại việc mà README mô tả là trọng tâm trong cách NSA dùng Ghidra.
  • Nghiên cứu lỗ hổng bảo mật: đào sâu vào mã đã biên dịch để tìm điểm yếu trong mạng và hệ thống, điều mà README mô tả là kết quả Ghidra mang lại cho các nhà phân tích.
  • Dịch ngược theo nhóm trên các binary lớn, vì README mô tả Ghidra được xây quanh bài toán mở rộng quy mô và phối hợp nhiều nhà phân tích trên cùng một mục tiêu phức tạp.
  • Xây công cụ SRE riêng trên nền framework: README mô tả Ghidra như một nền tảng nghiên cứu để tuỳ biến và mở rộng thêm, viết script được bằng Java hoặc Python.
  • Xây pipeline phân tích tự động, lặp lại được: chế độ headless của Ghidra cho phép chạy đúng các bước disassembly và decompile đó dưới dạng script thay vì qua GUI.

Bắt Đầu Với Ghidra

Để chạy bản release chính thức, trước tiên cần cài JDK 21 (64-bit), sau đó tải file release từ GitHub Releases: README nói rõ file cần tải có tên dạng ghidra_<version>_<release>_<date>.zip nằm trong mục 'Assets', không phải một trong hai file 'Source Code'. Giải nén vào một thư mục sạch (README nói không nên giải nén đè lên bản cài Ghidra đã có sẵn), rồi chạy bằng ./ghidraRun trên Linux/macOS hoặc ghidraRun.bat trên Windows; ai dùng PyGhidra thì chạy ./support/pyghidraRun (hoặc support\pyghidraRun.bat). File GhidraDocs/GettingStarted.md nằm ở gốc thư mục cài đặt để tra cứu khi gặp lỗi. Muốn build từ source thì cần JDK 25, Gradle 9.1.0 trở lên, Python 3.9-3.14, cùng một bộ công cụ C/C++ (GCC/Clang và make trên Linux/macOS, hoặc MSVC/Windows SDK/C++ ATL của Visual Studio trên Windows); sau khi clone repo, lệnh `gradle -I gradle/support/fetchDependencies.gradle` tải các dependency cần cho build, rồi `gradle buildGhidra` tạo ra bản build tại build/dist/.

Điểm mạnh

  • Miễn phí và mã nguồn mở theo giấy phép Apache-2.0, không tốn phí bản quyền cho một loại công cụ (disassembler cộng decompiler) vốn thường được bán thương mại.
  • Gộp chung disassembly, assembly, decompile và vẽ đồ thị trong một bộ công cụ desktop, thay vì phải ghép nhiều công cụ rời rạc.
  • Theo README, Ghidra hỗ trợ nhiều kiến trúc vi xử lý và định dạng file khác nhau, nên không bó buộc vào một dòng CPU.
  • Viết script được bằng Java hoặc Python, và có thể xây hẳn extension component đầy đủ trên nền framework, không chỉ script đơn lẻ.
  • Chạy được ở chế độ headless tự động lẫn giao diện tương tác, nên cùng một quy trình phân tích có thể đưa vào pipeline chạy hàng loạt.
  • Đa nền tảng chính thức: Windows, macOS và Linux.

Lưu Ý Quan Trọng Về Bảo Mật

  • README có hẳn một mục Security Warning: một số phiên bản Ghidra từng có lỗ hổng bảo mật đã biết, và README dẫn người dùng tới trang Security Advisories của dự án trước khi dùng.
  • Chạy bản release chính thức cần tối thiểu JDK 21 (64-bit), trong khi build từ source lại cần JDK 25 mới hơn, nên người dùng và contributor rơi vào hai phiên bản JDK khác nhau.
  • Build trên Windows kéo theo Visual Studio (hoặc Build Tools độc lập) với MSVC, Windows SDK và C++ ATL, danh sách yêu cầu nặng hơn phần lớn công cụ viết bằng Java.
  • Trong phần dữ kiện có ở đây, không có số phiên bản hiện tại, ngày phát hành hay changelog, nên cần vào thẳng trang Releases để biết bản mới nhất.
  • Đây là ứng dụng desktop viết bằng Java với đường cong học khá dốc ngoài việc cài JDK; README không nói rõ mất bao lâu để làm quen giao diện phân tích.

So Sánh Ghidra Với Các Công Cụ Khác

radare2 — framework dịch ngược mã nguồn mở, miễn phí, xoay quanh giao diện dòng lệnh có thể viết script, khác với GUI desktop của Ghidra.Cutter — giao diện đồ hoạ xây trên nền engine của radare2, dành cho ai muốn dùng radare2 mà không phải sống trong terminal.x64dbg — trình debug mã nguồn mở cho Windows, tập trung vào debug động, trực tiếp thay vì luồng làm việc disassembly/decompile tĩnh như Ghidra.

Câu Hỏi Thường Gặp Về Ghidra

Ghidra được dùng để làm gì?

Ghidra dùng để phân tích mã đã biên dịch: disassembly, decompile và vẽ đồ thị binary để hiểu cách chúng hoạt động. NSA xây Ghidra cho việc phân tích mã độc và nghiên cứu lỗ hổng, chạy được trên Windows, macOS và Linux.

Ghidra hỗ trợ những ngôn ngữ lập trình nào để viết script?

Theo README, Ghidra hỗ trợ viết script và xây extension bằng Java và Python, cho phép người dùng tự tạo công cụ phân tích riêng trên nền framework.

Ghidra có miễn phí để dùng cho mục đích thương mại không?

Ghidra phát hành theo giấy phép Apache-2.0, một giấy phép mã nguồn mở cởi mở cho phép dùng cho mục đích thương mại mà không tốn phí bản quyền.

Yêu cầu hệ thống để chạy Ghidra là gì?

Chạy bản release chính thức của Ghidra cần cài JDK 21 (64-bit); build từ source thì cần JDK 25 cùng Gradle 9.1.0 trở lên, Python 3.9-3.14 và một bộ công cụ C/C++, theo README.

Làm sao để đóng góp cho dự án Ghidra?

README của Ghidra dẫn người muốn đóng góp tới Contributor's Guide (CONTRIBUTING.md) để biết cách gửi bản vá lỗi, cải tiến và tính năng mới cho dự án.

Ghidra có lỗ hổng bảo mật nào đã biết không?

README của Ghidra có hẳn một mục Security Warning nêu rằng một số phiên bản từng có lỗ hổng bảo mật đã biết, và dẫn người dùng tới trang Security Advisories trước khi dùng.

Vấn đề Ghidra giải quyết

Dịch ngược mã đã biên dịch bằng tay, tức là đọc disassembly thô rồi tự đoán ranh giới hàm và cấu trúc dữ liệu, không còn ổn khi binary lớn hoặc cả một nhóm cùng phải làm trên một mục tiêu, vì mỗi người lại có một bộ ghi chú rời rạc trên cùng đoạn mã. README của Ghidra gắn lý do ra đời của dự án đúng vào khoảng trống đó trong công việc phân tích phần mềm của NSA: phối hợp nhiều nhà phân tích trên một mục tiêu khó, bằng một công cụ có thể mở rộng thay vì một công cụ đóng, cố định. Việc phát hành framework đó dưới dạng mã nguồn mở theo giấy phép Apache-2.0, thay vì giữ làm công cụ nội bộ, là nửa còn lại của câu chuyện. Đó là toàn bộ lý do Ghidra tồn tại, theo chính README của nó.

Ai nên dùng — và ai nên bỏ qua

Hãy thử Ghidra nếu bạn làm công việc dịch ngược như phân tích mã độc, nghiên cứu lỗ hổng, hay đơn giản là muốn hiểu một binary đã biên dịch hoạt động ra sao, và muốn một bộ công cụ SRE đầy đủ trên desktop mà không phải trả tiền cho một disassembler hay decompiler thương mại. Đây cũng là lựa chọn hợp lý nếu bạn muốn tự viết công cụ phân tích riêng bằng Java hoặc Python trên nền một framework có sẵn, thay vì bắt đầu từ output disassembly thô. Bỏ qua nếu bạn chỉ cần xem nhanh một binary và không muốn cài JDK rồi làm quen một giao diện desktop mới, hoặc nếu cảnh báo của chính README về lỗ hổng bảo mật đã biết trong một số phiên bản cũ khiến bạn e ngại.

Repo liên quan

Nguồn & ghi công

Thông tin và trích dẫn lấy từ repository GitHub NationalSecurityAgency/ghidra và README của nó.

Dữ liệu GitHub · đồng bộ lần cuối 14 thg 8, 2026Đánh giá bởi Henry
Về TopGit

ghidra có đáng để bạn bỏ thời gian?

ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về ghidra.

GitHub