Trao đổi với tôi

http://www.buidao.com

6/19/09

[Rootkit] Viết 1 driver trên C++

Hướng Dẫn C++ | Cách Viết và Debug 1 Driver Cơ bản trên C++
Author: coder_gate
Origin Link: http://forums.congdongcviet.com/showthread.php?t=17959

Yêu cầu ai copy paste thì ghi rõ nhé bài viết thuộc về congdongcviet nhé

Trình Biên dịch Driver : DDK



Từ Điển WDK http://download.microsoft.com/downlo...s_03202009.EXE

hoặc http://download.microsoft.com/downlo...m_03202009.exe

Công Cụ debug http://download.sysinternals.com/Files/DebugView.zip

Công Cụ Chạy Thử Driver http://www.4shared.com/file/10408755...ad_Driver.html

Công Cụ để soạn thảo code : Bất Kỳ 1 Trình Biên dịch C nào
1 Driver cũng giống như 1 ứng dụng win32API vậy,nó cũng có hàm Main,các hàm con...

sau đây là source 1 Driver cơ bản chỉ có nhiệm vụ là in ra màn hình debug câu chào hỏi
Code:

// My Driver ptit

#include "ntddk.h"

// ham unload

VOID OnUnload( IN PDRIVER_OBJECT DriverObject )

{

DbgPrint("Coder_gate Driver Unload\n");

}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT theDriverObject,

IN PUNICODE_STRING theRegistryPath)

{

DbgPrint("Coder_nguyen@yahoo.com load");

// Initialize the pointer to the unload function

// in the DriverObject

theDriverObject->DriverUnload = OnUnload;

return STATUS_SUCCESS;

}



Bạn có thể tra cứu trong WDK để biết ý nghĩa của từng kiểu giá trị như PDRIVER_OBJECT,PUNICODE_STRING ...


để biên dịch,ta cần phải đặt source vào Folder F:\WINDDK\3790.1830\src ( với đường dẫn F:\WINDDK\ là nơi để dữ liệu cài đặt của DDK )
sau đó tạo 2 File là source và MAKEFILE với giá trị như sau
Sources
Trích dẫn:

TARGETNAME=Coder_gate
TARGETTYPE=DRIVER
TARGETPATH=obj


INCLUDES=..\..\inc

SOURCES = coder_gate.c

Trích dẫn:

#
# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source
# file to this component. This file merely indirects to the real make file
# that is shared by all the driver components of the Windows NT DDK
#

!INCLUDE $(NTMAKEENV)\makefile.def

Bật DDK lên






sau đó chạy DDK và đánh lệnh BUILD