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 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:
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:
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:
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
hoặc sử dụng phím tăt Space.
Ở Graph Disassembly View ta sẽ thấy như sau :
Ở 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ụ.
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 :
Click vào xâu "Please enter the password: "
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.
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.
Ở đâ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.
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.
Ở 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:
Ở đâ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:
Quan sát các cửa sổ của IDA như sau:
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
Ở Graph Disassembly View ta sẽ thấy như sau :
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 :
Click vào xâu "Please enter the password: "
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.
Ở đâ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.
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.
Chỉnh sửa lần cuối bởi người điều hành: