AI nói chung, bao gồm cả học máy, hứa hẹn những cải tiến đáng kể trong công cụ kỹ thuật đảo ngược. Disassemblers là khá câm. Nếu các ký hiệu không bị tước khỏi tệp thực thi, một tệp được tạo thành giống như mã lắp ráp nguồn có thể được tạo từ tệp thực thi. Các tệp thư viện như .a, .so hoặc các tệp dll cũng có thể được khôi phục để lắp ráp. Trong trường hợp của Java, mã byte có thể được khôi phục thành ngôn ngữ máy ảo.
Khôi phục mã cấp cao hơn trong C hoặc Java là khó khăn hơn. Cấu trúc cao hơn trong C ++ hoặc Scala tạo ra nhiều khó khăn hơn. Vấn đề là có nhiều hơn một cấu trúc mức cao biên dịch thành một máy đơn, mã byte hoặc chương trình cấp độ lắp ráp. Biên dịch gần với một mối quan hệ nhiều đối với bất kỳ trình biên dịch và mức độ tối ưu hóa cụ thể nào. Dịch ngược là mối quan hệ một đối với nhiều người và việc tối ưu hóa chỉ làm tồi tệ hơn tình hình. Mã trong một ngôn ngữ biên dịch giả vờ
for int i = 0 to 10 by 2
squares[i] = x[i]^2
có thể biên dịch ở mức độ tối ưu hóa cao cho cùng một mã với mã này trong cùng ngôn ngữ giả vờ.
int i = 0
while (true)
s = x[i]^2
squares[i ++] = s
if ((i ++) > 10) break
Giống như AI có thể được sử dụng trong tối ưu hóa (để tìm tập lệnh máy nhỏ nhất và nhanh nhất để chạy thuật toán), AI cũng có thể được phát triển để gán kiểu lập trình cấp cao hơn cho việc dịch ngược mã lắp ráp, máy hoặc mã byte. Một vài điều sẽ là cần thiết.
- Một mạng lưới sâu rộng, có thể tận dụng một mô hình đại diện cho phát triển và kỹ thuật đảo ngược để tích hợp vào đào tạo và sử dụng mạng
- Một bộ trình biên dịch {gcc, g ++, llvm, llvm ++, vcc, v ++, javac, scala, ...} để sử dụng để tạo các tính năng (chương trình đã biên dịch) từ nhãn (mã nguồn)
- Trình tạo các chương trình hợp lệ hoặc một bộ sưu tập lớn chúng hiện có (từ GitHub, Bitbucket hoặc GitLab) để cung cấp cho trình biên dịch
Trong trường hợp dịch ngược các tệp mà thông tin ký hiệu bị tước, AI có thể gán tên hợp lý cho các biến, hằng và hàm từ việc sử dụng các biến trong chương trình và từ vựng dành riêng cho miền được trích xuất từ bất kỳ văn bản nào viết về chương trình .
Đây có thể là một lĩnh vực vượt xa các công nghệ hàng đầu, nhưng nó không phải là không khả thi.