Tản mạn về Reverse Engineering trên Linux

Oce, mọi người sẽ đặt ra câu hỏi là tại sao lại có bài viết này? Không phải là cài IDA Pro trên Linux giống như cài mọi app khác sao?

Đối với một cánh cụt con như mình thì việc cài mọi thứ trên Linux khá là thú vị, Reverse và setup môi trường để Reverse trên Linux là một phần trong số đó.

→ Ừ thì đúng là như vậy, IDA Pro và Decompilers đều có phiên bản native dành cho Linux nhưng đối với sinh viên như mình thì tiền đâu ra mà đập vào đó. Hầu hết các bản IDA Pro leaked trên mạng thường là dành cho Windows, Linux cũng có nhưng là version đã từ rất lâu về trước.

Vấn đề tiếp theo là tại sao không cài Windows hay là Dualboot để Reverse?

→ Không không, ở đây chúng tôi không làm thế.

Untitled

Đối với một cánh cụt con mà nói thì việc cài Windows hay Dualboot là giải pháp cuối cùng. Không ai muốn dành 60s cuộc đời để đợi Windows khởi động mỗi khi muốn làm Reverse cả. Bên cạnh đó, việc tắt các công việc bạn đang dở trên Linux để switch qua Windows cũng là một lí do.

Câu hỏi tiếp theo đó là tại sao phải cài IDA Pro trong khi chúng ta có Ghidra, Binary Ninja, Hopper,…?

→ Đơn giản vì thích cài 🤷‍♂️ hoặc là vì một lí do nào đấy. Đùa chứ, đối với một người chơi Reverse mà nói, việc không sử dụng King IDA là một bất cập lớn.

From someone who does binary reverse engineering full time, in my experience, BinaryNinja, Hopper, radare2, etc are toys compared to IDA Pro + Hex Rays Decompiler.

Không chỉ mỗi IDA Pro mà người chơi Reverse cần nhiều tools khác (x64dbg, DnSpy, BinDiff,…) do đó việc mang chúng đến Linux là một điều cần thiết.

Dễ chơi dễ trúng thưởng → Virtual machine

Có vẻ đây là cách mà hầu hết mọi người đều nghĩ đến. Đúng vậy, đây là cách đơn giản và dễ hiểu nhất, mình sẽ cài IDA Pro và các tools khác trong một máy ảo Windows và Reverse trên đó → Vấn đề đã được giải quyết.

IDA Pro trên Windows 10 trong máy ảo QEMU + KVM

IDA Pro trên Windows 10 trong máy ảo QEMU + KVM

Tuy nhiên việc chạy máy ảo Windows thì khá là tốn dung lượng và tài nguyên máy, do đó mình sẽ cần một cách nào đó tối ưu và gọn nhẹ hơn. Một trong số đó là sử dụng QEMU + Kernel-based Virtual Machine (KVM).

Cũng giống như VMware Workstation hay VirtualBox thì QEMU cũng là một Hypervisor còn KVM là một module hỗ trợ ảo hóa có trong kernel Linux. Khi kết hợp QEMU với KVM thì mình sẽ có được một Hypervisor loại 1 và tất nhiên, nó sẽ có hiệu năng tốt và tối ưu hơn Hypervisor loại 2 (VMware Workstation, VirtualBox,…)

Các bạn có thể dựa vào link bên dưới để setup một máy ảo Windows trên KVM và cài IDA Pro trên đó.

IDA Pro on Wine - That’s how it works