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

Thảo luận trong 'Exploitation' bắt đầu bởi zDiv, 19/02/14, 03:02 PM.

  1. zDiv

    zDiv Super Moderator

    Tham gia: 12/02/14, 08:02 AM
    Bài viết: 13
    Đã được thích: 20
    Điểm thành tích:
    18
    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.

    [HR][/HR]
    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.


    [HR][/HR]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.
    [HR][/HR]
    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:


    [​IMG]

    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:

    [​IMG]

    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:

    [​IMG]

    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

    [​IMG]

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

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

    [​IMG]

    Ở 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

    [HR][/HR]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 :

    [​IMG]

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


    [​IMG]

    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.


    [​IMG]

    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.


    [​IMG]

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


    [​IMG]

    [HR][/HR]
    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
     
    Last edited by a moderator: 15/09/14, 04:09 PM
    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
    Cord thích bài này.
  2. Skynet103

    Skynet103 W-------

    Tham gia: 15/05/15, 01:05 PM
    Bài viết: 11
    Đã được thích: 0
    Điểm thành tích:
    16
    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ì :-(
     
    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
  3. Edogawaconan

    Edogawaconan W-------

    Tham gia: 19/05/15, 05:05 PM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    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é
     
    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
  4. maldet

    maldet Moderator Thành viên BQT

    Tham gia: 31/08/16, 08:08 PM
    Bài viết: 83
    Đã được thích: 106
    Điểm thành tích:
    43
    Ảnh die hết sạch rồi ad :(
     
    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
    whf thích bài này.
  5. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,638
    Đã được thích: 697
    Điểm thành tích:
    113
    Cảm ơn em đã report, Ban quản trị đang fix lại.
     
    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
  6. kelalung

    kelalung New Member

    Tham gia: 29/04/17, 11:04 AM
    Bài viết: 3
    Đã được thích: 0
    Điểm thành tích:
    1
    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!
     
    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
  7. david19

    david19 Member

    Tham gia: 19/05/17, 04:05 PM
    Bài viết: 6
    Đã được thích: 0
    Điểm thành tích:
    1
    a cho em hỏi sao e kick vào nó không ra như hình ạ
     
    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
  8. tmnt53

    tmnt53 Moderator Thành viên BQT

    Tham gia: 25/04/15, 09:04 AM
    Bài viết: 91
    Đã được thích: 71
    Điểm thành tích:
    18
    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à
     
    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