Hướng dẫn sử dụng IDA

thanhlong

Moderator
gemgem
Tham gia
18/03/2025
Bài viết
64
Được Like
0
Coin
2,477
Points
355
RE3: Hướng dẫn sử dụng IDA

Trong bài viết trước chúng ta đã tìm hiểu về OllyDBG - một công cụ mạnh, dễ sử dụng nhưng chỉ giới hạn sử dụng để RE các file PE 32-bit (hiện tại đã có phiên bản Olly cho PE 64-bit). Tuy nhiên trong thực tế, những thứ chúng ta cần RE không chỉ có PE 32-bit mà còn rất nhiều định dạng file của các hệ điều hành khác. Vậy công cụ nào sẽ được sử dụng cho công việc đó.

Ở bài viết này mình sẽ giới thiệu một công cụ như vậy. Đó chính là The Interactive Disassembler hay thường được gọi là IDA.

ida-png.14089


Giới thiệu về IDA

1. IDA là gì??

IDA ban đầu là 1 shareware được phát triển bởi Ilfak Guilfanov. IDA sau đó được bản như 1 sản phẩm thương mại bởi công ty DataRescue dưới tên IDA Pro.

Năm 2005 Guilfanov thành lập Hex-Rays để phát triển Hex-Rays Decompiler – một extension cho IDA. Với Hex-Rays Decompiler, ta có thể decompiler được từ code assembly thành Pseudocode, rất hữu dụng.

IDA cũng hỗ trợ rất nhiều định dạng file thực thi khác nhau của các hệ điều hành khác nhau, các nền tảng khác nhau như Windows PE, Mac OS X Mach-O, và Linux ELF.

2. Download và cài đặt IDA

Phiên bản đầy đủ IDA Pro là một phần mềm thương mại, ta phải trả tiền để sử dụng. Tuy nhiên IDA cũng có phiên bản miễn phí (phiên bản IDA 5.0).

Ta có thể download tại đây.

Trong bài viết mình sử dụng IDA 6.1, có thể có một số điểm khác biệt so với phiên bản IDA 5.0 free.

Một số extension của IDA cũng cần phải trả phí như Hex-Rays Decompiler.

Các chức năng chính

Trong bài viết này mình sử dụng 1 crackme trên trang https://www.hackthissite.org/ đó là Application Challenge 5.

1. Các cửa sổ chính

Khi mở một file để debug, ta sẽ thấy các options như sau:

1-png.14090


IDA đã tự động lựa chọn các options phù hợp với target của ta nên các bạn sẽ không phải điều chỉnh gì thêm nữa.

Ở đây file .exe của ta đã được IDA nhận dạng là file PE for 80386.

Bấm Ok để disasm .

Đợi 1 chút thời gian để IDA phân tích file .exe của chúng ta.

Kết quả là như sau:

2-png.14091


Với rất nhiều nút bấm, nhiều cửa sổ, nhiều thông tin. Hơi bị ngợp.(_ _!)

Quan sát các cửa sổ của IDA như sau:

3-png.14092


Các cửa sổ chính:

1 - Function window: tên của các hàm trong target của chúng ta.

2 - Nơi chứa nhiều thông tin chúng ta quan tâm đến nhất. Với disasm, hex view, imports và exports function.

3 - Các chức năng của IDA cung cấp.

4 - output window : các thông tin về hoạt động của IDA.

2. Các chức năng chính

Một trong những chức năng mà mình rất thích ở IDA là Graph Disassembly View

Chúng ta có thể chuyển từ Text Disassembly View qua lại với Graph Disassembly View bằng chức năng

4-png.14093


hoặc sử dụng phím tắt Space.

Ở Graph Disassembly View ta sẽ thấy như sau :

5-png.14094


Ở góc phải dưới có graph overview, giúp ích rất nhiều cho việc tìm hiểu một cách tổng quan cách thức đoạn chương trình được thực thi.

IDA cũng cho phép người dùng chuyển đến một function 1 cách nhanh chóng bằng cách click double vào function name trong cửa sổ function.

Ngoài ra còn rất nhiều chức năng khác, mọi người có thể xem ở trên thanh công cụ.

Hướng dẫn sử dụng IDA

Trong bài viết này mình sử dụng 1 crackme trên trang https://www.hackthissite.org/ đó là Application Challenge 5.

1. Static analysic

Load file app5win.exe vào IDA và bắt đầu công việc của mình nào.

Như trong bài viết trước đã thực hiện thì suy nghĩ đầu tiên của chúng ta khi gặp một vấn đề như thế này sẽ là tìm mọi xâu có trong chương trình.

Với IDA thì công việc này rất đơn giản. Chúng ta chỉ việc mở cửa sổ String Window lên bằng tổ hợp phím tắt Shift + F12.

Và ta tìm được các xâu sau :

6-png.14095


Click vào xâu "Please enter the password: "

7-png.14096


Và ta dễ dàng tìm đến đoạn code sử dụng đến xâu trên và đọc code ở graph disassembly view.

8-png.14097


Việc đọc code dễ dàng hơn rất nhiều so với việc đọc trên OllyDBG.

Ngoài ra việc xem xét các function trong cửa sổ Imports và Exports cũng giúp ích rất nhiều trong quá trình phân tích code.

2. Debug

Bản thân IDA không phải là 1 debugger, tuy nhiên ta cũng có thể sử dụng IDA kết hợp với 1 debugger để thực hiện việc debug.

Ta có thể sử dụng 1 debugger để debug qua việc sử dụng menu "Debugger" của IDA.

9-png.14098


Ở đây mình sử dụng Windbg, yêu cầu phải cài đặt Windbg ở máy trước khi thực hiện chức năng này.

Có thể tìm hiểu thêm về windbg tại đây.

Sau khi lựa chọn debugger thì việc debug trên IDA cũng tương tự như debug trên Olly với các phím tắt, cách bố trí cửa sổ tương đối giống nhau.

F9 để chạy chương trình, F2 để đặt breakpoint, F7/F8 để debug step by step.

10-png.14099


Trong bài viết này mình đã giới thiệu cho mọi người về IDA và hướng dẫn sử dụng 1 số chức năng cơ bản của IDA.

Tất nhiên IDA không chỉ có như vậy, còn rất nhiều chức năng nâng cao khác nữa nhưng trong giới hạn của một bài giới thiệu kiến thức cơ bản mình chưa đề cập tới.

Mình cũng không hướng dẫn chi tiết cách thực hiện crackme này vì với những điều mọi người biết được từ các bài viết trước, mọi người hoàn toàn có thể hoàn thành nó. Các bạn có thể gửi cho mình kết quả các bạn làm ra qua inbox, mình sẽ kiểm tra giúp xem các bạn đã làm đúng chưa.

Rất cám ơn mọi người đã theo dõi bài viết và rất mong nhận được phản hồi của mọi người để trong những bài viết tiếp theo mình sẽ hoàn thành tốt hơn.

Hẹn gặp lại mọi người ở bài viết tiếp theo :RE4: Hướng dẫn sử dụng .NET reflector trong thời gian sớm nhất.
 
Sửa lần cuối:
Top Bottom