Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: virus inject DLL nghĩa là gì? Tại sao chỉ cần kill Explorer là có thể unhook được???

  1. #1
    Ngày gia nhập
    01 2009
    Bài viết
    201

    Wink virus inject DLL nghĩa là gì? Tại sao chỉ cần kill Explorer là có thể unhook được???

    Mình không hiểu thuật ngữ inject DLL nghĩa là làm gì,có phải là nó hook 1 hàm trong DLL nào đó,mỗi khi hàm đó được sử dụng thì sẽ thực hiện 1 tác vụ mà người lập trình đã override hàm API đó ( chèn code vào hàm đó trên bộ nhớ )
    tại sao chỉ cần kill Explorer là có thể unhook được bọn inject DLL ???

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Inject dll tức là bắt một process nào đó phải nạp thư viện của mình vào bất kể là process đó có cần dùng thư viện này hay không. Sau khi inject xong thì dll chạy trong ngữ cảnh của process bị hại, tức là ta phá từ trong ra, thích làm cái gì thì tùy hỉ.

    Trong một số trường hợp khi kill explorer tức là dll đã chết chung với explorer, explorer mới chạy lại sẽ không có dll inject. Tuy nhiên vẫn có trường hợp explorer mới là bị inject dll trở lại tùy vào chương trình dùng để inject dll.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    01 2009
    Bài viết
    201

    cảm ơn bạn mèoconlong vang nhé,cho mình hỏi thêm là trong DLL người ta sẽ viết cái gì ,viết giống như 1 File exe ah bạn,cũng có hàm DLL main,trong hàm DLL main thì ta viết hàm của virus ah( tại mình cứ tưởng phải Hook API mới là inject DLL )

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    186

    Inject tức là chèn mã khác vào làm thay đổi quá trình xử lý của tiến trình bằng các API định nghĩa trong DLL của mã Inject
    Hook là quá trình nằm chờ bắt sự kiện của một API nào đó được gọi để từ đó đưa ra phương pháp xử lý.

    mình hiểu là thế
    Ước mơ vươn tới Linux Developer.
    Đang trong quá trình tập luyện:
    1. C system programming
    2. GNU distribution
    3. Gtk+/Gnome Application Programming.

    Bác nào giỏi lĩnh vực này giúp Kim với nha. Kim cám ơn nhiều !!!

  5. #5
    Ngày gia nhập
    01 2009
    Bài viết
    201

    người ta Hook hàm API tức là override hàm đó,cũng chính là chèn mã vào hàm API đó mà

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định virus inject DLL nghĩa là gì? Tại sao chỉ cần kill Explorer là có thể unhook được???

    Có 2 khái niệm coi chừng bị lộn :
    - Hook cửa sổ : dùng hàm api SetWindowsHookEx, thường dùng đề inject dll
    - Hook hàm api : hay còn gọi là override hàm api, tức là dùng nhiều cách khác nhau như đổi địa chỉ, sửa code ... Mục đích cuối cùng là để khi gọi hàm api bị hook thì hàm "dỏm" của ta sẽ chạy. Thông thường, để hook được hàm api thì phải inject dll vào process.

    - Hàm DllMain khác với WinMain ở chỗ nó phải trả về càng sớm càng tốt, trong khi winmain chỉ trả về khi kết thúc chương trình. Muốn dll chạy như app thì cần phải tạo thread trong dllmain và coi như thread đó là hàm main. Việc này hơi mạo hiểm vì nếu làm không khéo thì có thể bị loop vô tận khi tạo thread trong dllmain.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    01 2009
    Bài viết
    201

    - Hàm DllMain khác với WinMain ở chỗ nó phải trả về càng sớm càng tốt, trong khi winmain chỉ trả về khi kết thúc chương trình. Muốn dll chạy như app thì cần phải tạo thread trong dllmain và coi như thread đó là hàm main. Việc này hơi mạo hiểm vì nếu làm không khéo thì có thể bị loop vô tận khi tạo thread trong dllmain.
    em làm được cái đoạn inject cái dll vào process rồi,nhưng không rõ trong cái dll ta phải viết cái gì,vì nếu như bạn nói phải kết thúc nhanh dll thì làm sao mà các thread trong nó còn tồn tại dược,thêm nữa nếu ta inject dll vào process là nó sẽ hoạt động ah,hay là ta phải kích hoạt dll đó

  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    DllMain phải trả về ngay nhưng đâu có nghĩa là dll bị unload ra khỏi process. Sau khi dllmain trả về, dll vẫn nằm trong process mà. Bạn kiểm tra giá trị của tham số thứ 2 của dllmain, nếu nó là DLL_PROCESS_ATTACH thì gọi hàm CreateThread và cứ sử dụng thread vừa tạo như là hàm main.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. Xin hướng dẫn unhook khi hook bằng CreateRemoteThread
    Gửi bởi zeroplus trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 13
    Bài viết cuối: 18-07-2011, 04:42 PM
  2. Viết virus khóa chuột - Lập trình virus trên C
    Gửi bởi AlexF trong diễn đàn Lập trình Virus & Anti-Virus
    Trả lời: 21
    Bài viết cuối: 03-07-2010, 09:57 AM
  3. help unhook ZwOpenProcess
    Gửi bởi gaVC++ trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 1
    Bài viết cuối: 26-06-2010, 09:12 PM
  4. Liệt kê các dll inject với VC++
    Gửi bởi AdminPro trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 8
    Bài viết cuối: 23-05-2009, 12:25 AM
  5. Kill Process bằng việc Kill toàn bộ thread của Process đó trên VC++ như thế nào?
    Gửi bởi AdminPro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 22-05-2009, 05:44 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn