1. 새 프로젝트 만들기 → Empty WDM Driver
2. 프로젝트 생성 후 .inf 파일 삭제
3. 프로젝트에 main.cpp 추가
4. IDE → 보기 → 다른 창 → 속성 관리자 클릭
5. Debug | x64 선택 후 우 클릭 → 새 프로젝트 속성 시트 추가 → 속성 시트(.props) 추가
6. 추가 한 속성 시트 우 클릭 → 속성 클릭
7. 공용 속성 → 사용자 매크로 → 매크로 추가
이름 : DisableKernelFlag
값 : true
8. 프로젝트 →  속성 → 구성 속성 → C/C++ → 코드 생성 → C++ 예외 처리 가능 → 예(/EHsc)
9. 프로젝트 →  속성 → 구성 속성 → 일반  → C++ 언어 표준 → 미리 보기 - ISO C++23 표준
10. x64 Native Tools Command Prompt for VS 2022 실행
11. vcrtl 다운로드 및 vcrtl 프로젝트 실행

git clone https://github.com/avakar/vcrtl
cd vcrtl
cmake .
vcrtl.sln

12. vcrtl 프로젝트 →  속성 → 구성 속성 → 일반  → C++ 언어 표준 → 미리 보기 - ISO C++23 표준
13. vcrtl 빌드 및 산출물 .lib을 내 프로젝트에 복사
14. 내 프로젝트 →  속성 → 구성 속성 → 링커 → 입력 → 추가 종속성 → vcrtl_driver.lib
15. main.cpp 작성 및 빌드

#include <ntifs.h>

EXTERN_C VOID DriverUnload(PDRIVER_OBJECT DriverObject)
{
	UNREFERENCED_PARAMETER(DriverObject);
}

EXTERN_C NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegPath)
{

	UNREFERENCED_PARAMETER(RegPath);
	DriverObject->DriverUnload = DriverUnload;

	try {
		throw 1;
	}
	catch (int i) {
		KdPrint(("catch");
	}

	return STATUS_SUCCESS;
}

 

 

+ Recent posts