본문 바로가기

커널모드2

드라이버에서 파일 읽기 예제/ ZwOpenFile ,ZwReadFile 유저모드 프로그램에서 파일을 읽을 때에는 CreateFile API를 통해 파일을 열고 ReadFile함수 이용하여 파일을 읽습니다. 드라이버 개발을 할 때에도 간혹 파일 처리를 해야할 때가 있는데 이때 사용 가능한 커널모드 함수로는 Zw계열 함수인 ZwOpenFile, ZwReadFile입니다. 다음 코드는 ZwOpenFile, ZwReadFile 의 예시입니다. void FileRead() { NTSTATUS status = STATUS_SUCCESS; HANDLE hFile = NULL; IO_STATUS_BLOCK iostatus; OBJECT_ATTRIBUTES oa; LARGE_INTEGER byteOffset; UNICODE_STRING uFilename; unsigned char buf[1.. 2020. 11. 12.
Windows 드라이버 커널모드에서 파일 해시 구하기 일반적으로 보안 프로그램에 쓰이는 디바이스드라이버들은 파일이벤트, 레지스트리, 프로세스이벤트 등을 탐지하여 자신이 가지고 있는 정책에 따라 차단을 하거나 로깅을 합니다. 특히 특정 파일이나 프로그램을 찾기위해서 파일 해시를 구하는 경우가 많습니다. 파일 해시를 구하기 위해서는 암호화 라이브라리 등을 사용하여 유저영역에서 구하는 경우가 일반적입니다. 하지만 이벤트를 유저모드 애플리케이션에 통지하고 해시를 구하고, 다시 차단하는 로직을 수행하면서 컨텍스트 스위칭이 잦아지는 문제점이 있습니다. 파일 해시를 커널모드에서 구해서 필터링이 가능할까? 이러한 의문점에 검색을 해보니 많은 내용이 검색되지는 않았지만 단서가 될만한 내용을 다음 사이트에서 찾을 수 있었습니다. http://www.rohitab.com/di.. 2020. 7. 23.