OllyDbg Tut_9

Posted: September 8, 2008 in OllyDbg Tutorials, OllyDbg tut_9

Một cái đầu lạnh để vững vàng, một trái tim đỏ lửa để yêu và làm việc hết mình!

I. Giới thiệu chung

Vậy là chúng ta đã trải qua tám bài viết trong loạt bài viết về OllyDbg, trong tám bài viết này tôi đã hoàn thành phần việc đầu tiên là giới thiệu và giải thích sơ bộ về các lệnh asm thường được sử dụng nhất khi chùng ta làm việc với OllyDbg. Trong các phần tiếp theo tới đây chúng ta sẽ dần dần tiếp cận những kiến thức mới mẻ hơn,  sẽ có nhiều đất để cho chúng ta tìm tòi, học hỏi và thực hành. Chúng ta sẽ tìm hiểu dần dần từng phần một một cách chậm rãi, song song với việc đọc lý thuyết thì chúng ta sẽ thực hành luôn những gì chúng ta đã tìm hiểu được và tự bổ sung những mảng mà chúng ta còn khiếm khuyết. Bài viết này tôi sẽ trình bày tới các bạn một số thuật ngữ cơ bản, cách thức làm việc với các hàm APIs, cách patch thông qua các cờ và cuối cùng là các edit trực tiếp code của chương trình. N0w….L3t’s G0!!!!!!!!!

II. Thuật ngữ cơ bản, làm việc với APIs và patch thông qua cờ

Trong phần 9 này chúng ta vẫn tiếp tục sử dụng crackme của CRUEHEAD để demo, Load crackme vào trong Olly chúng ta dừng lại tại entrypoint của Crackme. Vậy entrypoint nó là cái gì? Có khá nhiều câu hỏi của các bạn liên quan đến nó, tôi không phải là dân lập trình chính gốc nên tôi hiểu thế nào sẽ giải thích cho các bạn.

Về cơ bản thuật ngữ EntryPoint (EP) ám chỉ điểm bắt đầu của một chương trình nơi mà tại đó trở đi chương trình sẽ được thực thi một cách bình thường. Không nên bị nhầm lẫn giữa EPOEP (Original Entry Point), OEP là một thuật ngữ khác mà chúng ta sẽ tìm hiểu ở các phần tiếp theo sau của bộ tuts này. Sau khi chúng đã open một chương trình trong Olly, đợi cho quá trình phân tích kết thúc thì Olly sẽ đưa chúng ta dừng lại tại EntryPoint của chương trình đó.

Download toàn bộ bài viết :

ollydbg_tut9

Best Regards

Comments
  1. aemhd says:

    it’s a great work
    thank you
    but I asked if i can get them ( all the 22 tutorials ) in english

    please reply me as soon as
    ahmed_mostafa020@yahoo.com

  2. kienmanowar says:

    You can download all translated tutors at: http://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/EN%20INGLES%20%28IN%20ENGLISH%20WITH%20TRANSLATOR%29/

    Note: All theses tutorials are translated from Spain to English by the translator, so you must try to read and understand :). Good luck!

    Regards
    m4n0w4r

  3. John says:

    e chào anh ạ. tình hình là e đang là newbie và đang đọc bộ tut của a, nó khá là hay ạ. chuyện sẽ không có gì đáng nói nếu thầy e không cho bài tập là dịch ngược một con virus và e phải hoàn thành nó. e có debug trong ollydbg và phát hiện được sau khi load virus vào ollydbg=>debug=> ghi đè vùng nhớ trong cửa sổ dump.
    sau khi ghi đè xong thì trong cửa sổ dump window=>right+click=> diassemble thì nó tạo thành một doạn code mới hoàn toàn(e nghĩ là con virus đã bị pack và đây là code gốc) cho e hỏi là có cách nào để dump code gốc này ra thành file exe không ạ. e có thử nhiều cách nhưng chỉ toàn là dump từ code chứ không dump từ memory. mong a có thể hướng dẫn giúp e được không ạ. e cảm ơn a nhiều

  4. kienmanowar says:

    Chào em,

    Hi vọng bộ tutors của anh giúp ích được thêm cho em trong công việc học tâp.
    Về phần bài tập của em thì malware nào cũng có xu hướng áp dụng self-packing, bung code có hành vi độc hại để thực thi. Việc làm này nhắm tránh việc bị phát hiện từ đầu bởi AV. Thường thì malware sẽ sử dụng các API như VirtualAlloc/ZwAllocateVirtualMemory/HeapCreate để cấp phát các vùng nhớ có thuộc tính Protect = PAGE_EXECUTE_READWRITE hay HEAP_CREATE_ENABLE_EXECUTE, sau đó sẽ drop code mới hoặc PE mới vào và chuyển đổi tới để thực thi. Hoặc cũng có thể decode chính vùng nhớ mà em đang thực hiện debug,…

    Trong trường hợp của em, với vùng code em nghi ngờ tại cửa sổ dump, em nhấn chuột phải, chon Backup -> Save data to file. Nó sẽ dump thành một file dạng .mem. Tuy nhiên, khi em save kiểu này, nó không phải là PE file bình thường, cho nên em chỉ có thể load bằng công cụ disassembly như là IDA để phân tích code tĩnh.

    Hoặc có một cách khác nữa, em nghi ngờ đó vùng code của malware, muốn debug tiếp thì tìm cách thiết lập các breakpoint như Hw_bp hoặc mem_bp.

    Regards,

  5. John says:

    e cảm ơn a ạ. Hiện tại e đã dump được ra một file exe mới(sau khi chạy để ghi đè code mới e vào cửa sổ M => chon vùng memory bị thay đổi, sau đó vào ollydump->find oep-> nó chuyển sang cửa sổ C và dùng ollydumpEX để dump ra). Nhưng cho e hỏi thêm là bây giờ vùng code này không phải vùng code section thì có cách nào để trace từng dòng code để xem không ạ. chứ đọc code tĩnh thì e không hiểu gì hết trơn. e đã click chuột phải nhưng không có option “new origin here”. hiện tại e đang khá tắc. mong a giúp đỡ. e cảm ơn a nhiều

  6. kienmanowar says:

    Khi em dump ra rồi thì buộc phải load vào debugger để debug tiếp, tuy nhiên còn tùy vào file em dump ra có phải là PE file run được hay không?

    Nếu em đã biết được EP của vùng code mới thì em Go to đến địa chỉ đó và chọn new origin. Tùy chọn này chỉ xuất hiện tại màn hình CPU thôi, tại màn hình Memory không có đâu.

    Regards,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.