Một công cụ mã nguồn mở mới có thể kết nối Claude Code, Cursor với những công cụ dịch ngược chuyên dụng như Ghidra và IDA Pro, giúp AI lần theo cách phần mềm hoạt động ngay cả khi không có mã nguồn. Thay vì chỉ viết code theo yêu cầu, các AI coding agent giờ có thể tiếp cận sâu hơn vào cấu trúc chương trình, tìm hiểu logic bên trong và kiểm chứng những gì chúng phát hiện.
Công cụ này có tên REA, viết tắt của Reverse Engineer Anything. Dự án đưa các công cụ phân tích phần mềm vốn được giới nghiên cứu bảo mật sử dụng vào một quy trình làm việc do AI điều phối, mở ra khả năng tự động hóa một phần công việc dịch ngược vốn đòi hỏi nhiều thời gian và kiến thức chuyên môn.
AI có thể lần theo cách phần mềm hoạt động
Thông thường, khi không có mã nguồn, việc tìm hiểu một chương trình hoạt động như thế nào đòi hỏi chuyên gia phải phân tích tệp thực thi, mã máy và cách các thành phần tương tác với nhau. REA đóng vai trò cầu nối, cho phép AI yêu cầu những công cụ chuyên dụng kiểm tra chương trình, sau đó nhận lại kết quả để tiếp tục đặt câu hỏi và truy vết sâu hơn.
Với các tệp thực thi gốc, công cụ có thể trả về 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 liên quan. Những dữ liệu này giúp nhà nghiên cứu liên kết một tính năng có thể quan sát được với phần mã đứng phía sau nó.
Khả năng của REA không chỉ giới hạn ở phần mềm chạy trực tiếp trên máy tính. Công cụ còn hỗ trợ phân tích JavaScript, ứng dụng Electron, chương trình .NET, gói ứng dụng Android, firmware và website. Với ứng dụng Electron, chẳng hạn, REA có thể lập bản đồ các mô-đun, đường dẫn, source map và luồng giao tiếp giữa những tiến trình khác nhau.
Điểm đáng chú ý là AI không tự mình thay thế Ghidra, IDA Pro hay Hopper. Những công cụ này vẫn đảm nhiệm phần phân tích chuyên sâu, trong khi REA giúp AI điều phối quy trình, đọc kết quả và tiếp tục điều tra dựa trên bằng chứng thu được.
Thử nghiệm cho thấy AI có thể tái tạo chính xác một phần logic phần mềm
Các ví dụ do nhóm phát triển công bố cho thấy cách tiếp cận này có thể tạo ra kết quả kiểm chứng được.
Trong một thử nghiệm với trò chơi DX-Ball, nhóm phát triển cho biết họ đã khôi phục phép tính xác định vị trí âm thanh từ mã x86 gốc. Phần triển khai được tái tạo vượt qua 3.205 bài kiểm tra đối chiếu với chương trình ban đầu, đồng thời tái tạo chính xác toàn bộ 63 byte mã máy của hàm đã biên dịch.
Một ví dụ khác cho thấy REA có thể lần theo cách Notion xử lý dữ liệu clipboard, từ thành phần hiển thị giao diện đến các lớp trung gian và tiến trình chính của ứng dụng.
Những kết quả này cho thấy AI có thể hỗ trợ tái tạo một số logic phần mềm khi được kết hợp với công cụ phân tích phù hợp. Tuy nhiên, đây là các thử nghiệm do dự án công bố, không phải bằng chứng cho thấy mọi chương trình đều có thể được khôi phục hoàn chỉnh.
Công cụ mạnh hơn cũng kéo theo những rủi ro mới
Khả năng phân tích phần mềm không có mã nguồn có thể hữu ích với các nhà nghiên cứu bảo mật, đặc biệt khi họ cần hiểu hành vi của một chương trình hoặc điều tra phần mềm đáng ngờ. Nhưng chính năng lực này cũng đòi hỏi người sử dụng phải chú ý đến quyền truy cập và cách xử lý dữ liệu.
REA có thể thực hiện phân tích trên máy tính của người dùng, song kết quả sau đó vẫn được gửi cho AI agent. Vì vậy, chạy công cụ cục bộ không đồng nghĩa mọi thông tin đều được giữ lại trên thiết bị, bởi dữ liệu còn chịu sự điều chỉnh của chính sách từ nhà cung cấp mô hình AI.
Ngoài ra, cần phân biệt giữa phân tích tĩnh và phân tích khi chương trình đang chạy. Việc kiểm tra tệp JavaScript hoặc .NET có thể thực hiện mà không cần khởi chạy ứng dụng. Ngược lại, chức năng thu thập dữ liệu trong quá trình chạy có thể tương tác với chương trình bằng chính quyền hạn của người dùng, tạo ra những rủi ro khác nếu đối tượng phân tích là phần mềm độc hại.
REA cũng chưa phải công cụ có thể dịch ngược mọi thứ. Dự án vẫn phụ thuộc vào nền tảng, loại mục tiêu và những công cụ phân tích tương ứng. Giá trị cốt lõi của nó nằm ở khả năng kết nối câu hỏi của AI với dữ liệu có thể kiểm tra, thay vì loại bỏ nhu cầu xác minh của con người.
Sự xuất hiện của REA cho thấy AI coding agent đang tiến xa hơn việc viết mã mới, hướng tới khả năng tìm hiểu và phân tích những chương trình đã tồn tại. Nhưng việc AI có thể lần theo bí mật bên trong phần mềm không có nghĩa mọi ứng dụng đều có thể bị giải mã hoàn toàn, hay kết quả phân tích có thể được tin tưởng mà không cần kiểm chứng.
Nguyễn Hải
