Công cụ mã nguồn mở giúp AI phân tích phần mềm không có mã nguồn

Công cụ mã nguồn mở giúp AI phân tích phần mềm không có mã nguồn

Một công cụ mã nguồn mở có tên REA đang mở rộng khả năng của các AI coding agent, cho phép chúng kết nối với những công cụ dịch ngược chuyên dụng để tìm hiểu cách phần mềm hoạt động ngay cả khi không có mã nguồn ban đầu.

AI có thể tìm hiểu phần mềm từ mã máy

REA, viết tắt của Reverse Engineer Anything, được thiết kế để kết nối các AI agent như Claude Code và Cursor với những công cụ phân tích như Ghidra, IDA Pro và Hopper. Thay vì chỉ tạo mã theo yêu cầu, AI có thể sử dụng kết quả phân tích để lần theo logic chương trình, kiểm tra các mối liên hệ giữa những thành phần và tái tạo một số chức năng cụ thể.

AI có thể tìm hiểu phần mềm từ mã máy


Thông thường, khi không có mã nguồn, việc tìm hiểu cách một chương trình hoạt động đòi hỏi chuyên gia phải phân tích tệp thực thi, mã máy, các lời gọi hàm và dữ liệu liên quan. Đây là công việc có thể mất nhiều thời gian, đặc biệt với những phần mềm phức tạp. REA đóng vai trò cầu nối giữa AI agent và các công cụ dịch ngược. AI có thể yêu cầu kiểm tra một thành phần, nhận kết quả phân tích, sau đó tiếp tục truy vết dựa trên những bằng chứng thu thập được.

AI có thể tìm hiểu phần mềm từ mã máy

Với các chương trình gốc, kết quả có thể bao gồm mã giả, lệnh hợp ngữ, chuỗi ký tự, ký hiệu, lời gọi hàm và các tham chiếu trong chương trình. Những dữ liệu này giúp AI xác định một chức năng có thể quan sát được liên quan đến phần mã nào bên trong phần mềm.

Theo tài liệu dự án, REA còn hỗ trợ phân tích JavaScript, ứng dụng Electron, chương trình .NET và website. Một số loại mục tiêu khác như firmware, ứng dụng Android cũng có thể được xem xét thông qua các quy trình và công cụ tương ứng.

Điểm đáng chú ý là REA không thay thế những công cụ dịch ngược chuyên dụng. Ghidra, IDA Pro hay Hopper vẫn đảm nhiệm các tác vụ phân tích tương ứng, trong khi REA giúp AI điều phối quá trình điều tra, đọc kết quả và đưa ra những câu hỏi tiếp theo.

Cách tiếp cận này hướng tới việc biến quy trình dịch ngược thành một chuỗi công việc có thể được AI hỗ trợ, thay vì yêu cầu người dùng tự thực hiện từng bước phân tích thủ công.

Thử nghiệm DX-Ball cho thấy khả năng tái tạo logic phần mềm


Một ví dụ được công bố trên trang giới thiệu của REA liên quan đến trò chơi DX-Ball phiên bản 1.07, phát hành từ năm 1996. Trong thử nghiệm, nhóm phát triển tìm cách khôi phục phép tính xác định vị trí âm thanh dựa trên vị trí của đối tượng trong trò chơi. Quá trình này yêu cầu truy vết từ hàm được gọi, kiểm tra các lệnh hợp ngữ và xác định những hằng số được sử dụng trong phép tính.

Thử nghiệm DX-Ball cho thấy khả năng tái tạo logic phần mềm

Theo kết quả được công bố, phần mã C tái tạo đã vượt qua 3.205 trường hợp kiểm thử đối chiếu với hàm gốc. Đồng thời, khi biên dịch bằng công cụ tương thích với môi trường ban đầu, phần mã tái tạo khớp toàn bộ 63 byte mã máy của hàm được kiểm tra, sau khi xử lý các tham chiếu cần thiết.

Kết quả này cho thấy AI có thể hỗ trợ khôi phục một phần logic chương trình khi được cung cấp công cụ phân tích và quy trình kiểm chứng phù hợp. Tuy nhiên, thử nghiệm chỉ tập trung vào một hàm cụ thể, không đồng nghĩa toàn bộ trò chơi đã được khôi phục hoàn chỉnh.

REA cũng giới thiệu ví dụ phân tích cách ứng dụng Notion xử lý dữ liệu clipboard. Thông qua việc truy vết các thành phần giao diện, lớp trung gian và cơ chế giao tiếp giữa những tiến trình Electron, AI có thể lần theo đường đi của thao tác trong ứng dụng.

Những ví dụ này cho thấy giá trị của REA không chỉ nằm ở việc tạo ra đoạn mã thay thế, mà còn ở khả năng cung cấp bằng chứng để người dùng kiểm tra cách AI đi đến kết luận.

Khả năng phân tích sâu cũng đặt ra vấn đề bảo mật


Việc AI có thể hỗ trợ phân tích phần mềm không có mã nguồn mang lại lợi ích cho nghiên cứu bảo mật, kiểm tra hành vi ứng dụng và tìm hiểu những chương trình mà người phát triển không còn lưu giữ mã nguồn. Tuy nhiên, năng lực này cũng cần được sử dụng có trách nhiệm. Việc phân tích phần mềm phải tuân thủ quyền sở hữu, điều khoản sử dụng và các quy định pháp luật có liên quan.

Một vấn đề khác là quyền riêng tư. Theo tài liệu REA, quá trình phân tích được thực hiện cục bộ trên máy tính người dùng, nhưng kết quả có thể được chuyển cho AI agent để tiếp tục xử lý. Vì vậy, chạy công cụ trên máy cá nhân không có nghĩa toàn bộ dữ liệu chắc chắn được giữ lại trên thiết bị.

Cách dữ liệu được lưu trữ và xử lý tiếp theo còn phụ thuộc vào nhà cung cấp mô hình AI, cấu hình sử dụng và chính sách dịch vụ tương ứng. Người dùng cần chú ý khi phân tích phần mềm chứa thông tin nội bộ hoặc dữ liệu nhạy cảm.

Ngoài ra, khả năng phân tích cũng phụ thuộc vào định dạng chương trình, nền tảng và các công cụ được hỗ trợ. Mã giả do công cụ dịch ngược tạo ra không phải lúc nào cũng phản ánh đầy đủ mã nguồn ban đầu, còn kết luận của AI vẫn cần được kiểm tra bằng dữ liệu thực tế.

Sự xuất hiện của REA cho thấy AI coding agent đang tiến xa hơn nhiệm vụ viết mã mới, hướng tới khả năng tìm hiểu và tái tạo những phần chức năng của phần mềm hiện có. Dù vậy, công cụ này không thể bảo đảm khôi phục hoàn chỉnh mọi chương trình, và việc kiểm chứng của con người vẫn đóng vai trò quan trọng.

Nguồn: GitHub – REA

Viết bình luận của bạn
Gọi ngay: 0945029902
CÔNG TY TNHH DIGIVI