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

zDiv

Super Moderator
12/02/2014
21
12 bài viết
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

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

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

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

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

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

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

5.png

Ở 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ụ. :D


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

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

7.png

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

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

Ở đâ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


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.:D

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.:D
 
Chỉnh sửa lần cuối bởi người điều hành:
Re: RE3: Hướng dẫn sử dụng IDA

mình đọc mãi mà vẫn chưa hiểu tác dụng có nó để làm gì :-(
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: RE3: Hướng dẫn sử dụng IDA

Ad ơi có thể chỉ giúp mình các phát hiện lỗi và lỗ hổng phần mềm dựa vào Idapro này không. Mình đang làm báo cáo về phân tích tĩnh để phát hiện lỗi và lỗ hổng phần mềm. Mình muốn Demo phần dịch ngược mã nguồn sử dụng Ida. Tks Ad nhé
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Ảnh die hết sạch rồi ad :(
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: whf
Comment
có ai dạy IDA này ko, mình muốn biết cách dùng nó để sửa nội dung 1 số file global-metadata.dat của game unity3d trên ios và android, mình sẽ trả học phí nếu ai đó chỉ mình tốt!
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
a cho em hỏi sao e kick vào nó không ra như hình ạ
Bạn đăng ảnh nội dung khi click vào xâu đó xem. Khi click đúp vào string thì sẽ ra các references của nó như ý tác giả mà
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Xin chào mọi người.
Trong 2 bài viết trước về chủ đề RE, anh Mask đã giới thiệu những khái niệm cơ bản về RE và hướng dẫn sử dụng 1 công cụ phổ biến đó là OllyDBG.
Các vấn đề tiếp theo trong chủ đề này mình sẽ tiếp tục thực hiện do anh Mask còn phải tập trung cho một số chủ đề khác. Mong nhận được nhiều nhận xét và góp ý của mọi người.


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.



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:


14908929991.png


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:

14908929992.png


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:

14908929993.png


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

14908929994.png


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

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

14908929995.png


Ở 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ụ. :D


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 :

14908929996.png

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


14908929997.png


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.

14908929998.png


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.

14908929999.png


Ở đâ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.


149089299910.png



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.:D

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.:D
Bài viết hay qua. Nhìn rõ hơn cách thức và quy trình vận hành của ứng dụng.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bác nào có link tải IDA 32bit không cho em xin với
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Chào ad, mình đang tìm hiểu về IDA Pro này. Không biết công cụ này có hỗ trợ chuyển file *.so với cấu trúc 32 bit sang 64 bit không ạ. Mình phát triển ứng dụng android và đang gặp vấn đề vì thiếu lib cho 64 bit. Mong ad trả lời giúp mình ạ.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Chào ad, mình đang tìm hiểu về IDA Pro này. Không biết công cụ này có hỗ trợ chuyển file *.so với cấu trúc 32 bit sang 64 bit không ạ. Mình phát triển ứng dụng android và đang gặp vấn đề vì thiếu lib cho 64 bit. Mong ad trả lời giúp mình ạ.
Mình đang không biết sao bác phải chuyển từ 32bit sang 64bit vì các OS 64 nó support 32bit rồi. Còn về dùng IDA pro thì mình cũng chưa dùng để convert từ 32bit sang 64bit bao giờ nhưng mình nghĩ là không được. Mình thấy bài viết này có liên quan chút hi vọng giúp ích được cho bác https://stackoverflow.com/questions...o-file-to-64-bit-so-file-for-android/54491463
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: WhiteHat Team
Comment
Thẻ
ida ida pro
Bên trên