RE1: Giới thiệu về Reverse-Engineering

Thảo luận trong 'Exploitation' bắt đầu bởi Mask, 10/02/14, 09:02 AM.

  1. Mask

    Mask Moderator

    Tham gia: 03/07/13, 08:07 AM
    Bài viết: 25
    Đã được thích: 19
    Điểm thành tích:
    18
    1. Reverse-Engineering là gì?

    Trước khi tìm hiểu Reverse Engineering (RE) là gì ta cùng xem xét đến một tình huống như sau:
    • Bạn may mắn được thưởng thức và mang về nhà 1 món ăn rất ngon từ 1 trong những nhà hàng nổi tiếng nhất thế giới. Nhưng lượng thức ăn có hạn, làm sao để có thể mời bạn bè món này trong các bữa tiệc??
    • Bạn sẽ làm gì để thực hiện được ý định của mình ???
    • Có 1 cách, đó là, trước khi thưởng thức, bạn nên tìm cách học xem họ chế biến như thếnào. Không may thay, nhà hàng này không phải lúc nào bạn cũng có thể đến, vì nó rất xa, và đầu bếp cũng không có thời gian hướng dẫn bạn, hoặc là họ sẽ giữ bí mật, không tiết lộ cho bạn. Bạn sẽ làm gì? Bây giờ thì khó khăn hơn nhiều rồi
    • Điều này buộc bạn sẽ phải quan sát xem món ăn này gồm có những thành phần gì, nếm thử, và đoán xem có những gia vị đặc trưng nào... Đây có thể coi là khái niệm cơ bản về RE thức ăn!
    Trong bài viết này chúng ta sẽ cùng xem xét về khái niệm RE, khái niệm RE trong công nghệ thông tin.
    RE là quá trình tìm hiểu những công nghệ được sử dụng bởi 1 thiết bị, 1 đối tượng hoặc 1 hệ thống thông qua việc phân tích cấu trúc, các chức năng và hoạt động của nó.

    RE là 1 khái niệm rất rộng, bao gồm cả RE phần cứng và RE phần mềm. Nhưng trong bài này, chúng ta chỉ tìm hiểu RE phần mềm. Và từ đây, trong bài này, nhắc đến RE, chúng ta chỉ nói đến RE phần mềm.

    Việc phân tích hoạt động cụ thể của một hệ thống hay 1 chương trình sẽ được sử dụng trong việc bảo trì chính hệ thống hay chương trình đó. Một mục đích khác của RE là phục vụ cho việc tạo ra một hệ thống mới hoặc chương trình mới có những chức năng tương tự mà không sử dụng hoặc chỉ là sao chép đơn giản (không có sự hiểu biết) hệ thống/chương trình gốc.

    2. Ứng dụng của RE

    Vậy RE được ứng dụng cho những công việc gì??
    Có thể kể ra một số công việc cần sử dụng đến RE như Phân tích malware (viruses, trojans, worms...) để biết được chúng lây lan ra sao, lấy cắp thông tin cá nhân như thế nào? Để xóa chúng khỏi hệ thống, hay điều tra thông tin về người phát tán, cần thực hiện những hành động điều tra gì?

    Ngoài ra một ứng dụng khác của RE, tương tự như ví dụ đưa ra ở đầu bài viết, đó là khi bạn có một phần mềm thương mại, cần phải trả phí để sử dụng mà bạn không đủ khả năng để chi trả hoặc thậm chí là không muốn trả khoản phí đó. Bạn có thể RE để tìm hiểu cách thức hoạt động của module thực hiện công việc bạn cần quan tâm để viết lại 1 chương trình khác thực hiện công việc đó, hay tìm hiểu xem module kiểm tra key của phần mềm đó hoạt động như thế nào.:)

    Bên cạnh đó RE còn là một sở thích, thỏa mãn tính tò mò của bạn về cách thức hoạt động của một hệ thống nào đó.

    3. Các vấn đề chính của RE


    Xét trong vấn đề nhỏ được bàn bạc trong bài viết này là RE phần mềm. Với mỗi một nền tảng, hệ điều hành khác nhau ta có các chương trình được xây dựng khác nhau, thực thi theo cách khác nhau. Điều này tạo ra sự phức tạp trong quá trình thực hiện công việc RE.

    Với đặc trưng của mỗi nền tảng, ta có những hướng khác nhau để tiếp cận, những công cụ khác nhau để trợ giúp cho công việc.
    Với các chương trình trên Window ta sử dụng những công cụ khác, các chương trình trên Linux ta dùng công cụ khác.
    Những chương trình chạy trên nền tảng .Net Framework và các chương trình được viết bằng python sẽ có những công cụ RE khác nhau.

    Một số công cụ thường sử dụng
    [HR][/HR]
    1. OllyDBG

    OllyDBG hay còn gọi tắt là Olly là công cụ debug rất phổ biến. Nhờ giao diện trực quan và dễ sử dụng nên Olly phù hợp với người dùng ở mọi trình độ khác nhau.

    Tôi sẽ dành bài viết tiếp theo để nói về Olly: cách cài đặt, những chức năng chính và demo việc sử dụng Olly để thực hiện 1 crackme đơn giản.

    2. .Net Reflector


    Nếu như ta có Olly để debug các chương trình window 32-bit thì các chương trình chạy trên nền tảng .NET Framework ta có công cụ .Net Reflector.
    Trong bài viết tiếp theo tôi sẽ giới thiệu về tính năng và cách sử dụng của .Net Refector.

    3. IDA


    IDA là công cụ disassembler và debuger đa nền tảng, có thể sử dụng trên nền tảng Windows, Linux or Mac OS X. Đây là tính năng ưu việt hơn hẳn so với Olly và .Net Reflector- chỉ sử dụng cho 1 nền tảng nhất định.
    Tôi sẽ giới thiệu chi tiết về IDA và cách sử dụng trong bài viết tiếp theo, cùng với .Net Reflector.

    4. Hex Editor


    Trong quá trình thực hiện công việc Reverse, ta cần đến các công cụ Hex Editor để đọc và chỉnh sửa các file dưới định dạng hex.
    Có rất nhiều Hex Editor, mỗi người thường lựa chọn 1 công cụ phù hợp với điều kiện và sử dụng quen tay.
    Có một số công cụ đưa ra để gợi ý cho mọi người như : 010 Hex Editor (phần mềm trả phí), Winhex (phần mềm miễn phí), CFF Explorer VIII (1 chương trình nằm trong bộ công cụ Explorer Suite)

    Các bạn quan tâm có thể theo dõi chuyên đề tiếp theo - "RE2: Hướng dẫn sử dụng OllyDBG" từ ngày 12/2/2014
     
    Last edited by a moderator: 11/02/14, 08:02 AM
    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
  2. vn5chau_com

    vn5chau_com W-------

    Tham gia: 22/02/14, 04:02 PM
    Bài viết: 8
    Đã được thích: 0
    Điểm thành tích:
    6
    Re: RE1: Giới thiệu về Reverse-Engineering

    bro ở đâu cho e địa chỉ e cắp sách theo học a!
     
    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. phieulang1993

    phieulang1993 W-------

    Tham gia: 03/02/15, 07:02 AM
    Bài viết: 34
    Đã được thích: 14
    Điểm thành tích:
    18
    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 and sunny like this.
  4. 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
    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
  5. MinhMy

    MinhMy W-------

    Tham gia: 04/01/16, 03:01 PM
    Bài viết: 21
    Đã được thích: 2
    Điểm thành tích:
    3
    Em có thắc mắc nhỏ. Như anh nói "Olly để debug các chương trình window 32-bit", vậy với môi trường Windows 64-bit thì Olly có thể RE được không ạ :D
     
    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. khanhhoangbkdn

    khanhhoangbkdn Moderator Thành viên BQT

    Tham gia: 07/10/16, 10:10 AM
    Bài viết: 61
    Đã được thích: 30
    Điểm thành tích:
    18
    olly sẽ không mở file win 64 bit ,bạn có thể dùng IDA 64 bit và kết hợp với một debug nào đó hoặc sử dụng một debug 64bit nào đó .
     
    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 and MinhMy like this.
  7. MinhMy

    MinhMy W-------

    Tham gia: 04/01/16, 03:01 PM
    Bài viết: 21
    Đã được thích: 2
    Điểm thành tích:
    3
    Cám ơn anh!
     
    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. tên

    tên New Member

    Tham gia: 17/07/17, 12:07 AM
    Bài viết: 3
    Đã được thích: 2
    Điểm thành tích:
    3
    bài viết hay, cảm ơn tg nhiều.
     
    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