윈도우즈 드라이버

[DDK] Sfilter 디바이스 드라이버와 어플리케이션 통신

SFilter를 사용하고자 하면, 종류가 다르다. 2000 버전에서 사용하는 SFilter는 정적 로딩이고, XP버전으로 새로나온 SFilter는 동적 로딩도 가능하다. 다들 그냥 Filemon으로 동적 후킹을 하는 경우가 많다. 그것도 좋은 방법 이지만 볼륨관련작업을 하기 위해서는 SFilter도 접근해보는게 좋다. Sfilter에서 드라이버와 통신하기 위해서는 심벌릭 링크를 생성해야한다.   /**           심볼릭 링크를 생성하는 루틴     […]

[DDK] Sfilter 디바이스 드라이버와 어플리케이션 통신 더 읽기"

[DDK] 비스타와 XP의 디렉터리 쿼리의 차이점

폴더를 감추는 방법은 다양하다. 다양하지만 정형화된 방법으로 인해서 더이상 아이디어가 나오지 못하는 형편이다,,큭 일단 XP의 상황에서 IRP_MJ_DIRECTORY_CONTROL의 MAJOR IRP가 날라오면, MINOR로 IRP_MN_QUERY_DIRECTORY이다. 이때 여기에 감추는 루틴을 작성하면 된다. 근데 XP와 VISTA는 사용하는 Class가 다르다는 것이다,, – _-; 삽질끝에 알았는데, XP의 경우 폴더 목록 요청시 Class가 FileBothDirectoryInforamation이고, Vista의 경우에는 FileIdBothDirectoryInformation을 사용하더라,, 췌   NTSTATUS InitializeHiddenFileList()  

[DDK] 비스타와 XP의 디렉터리 쿼리의 차이점 더 읽기"

[DDK] 파일 시스템 드라이버의 FastIoDispatch 루틴

Filemon과 SFilter를 예로 들어서 설명하자, 일단 Filemon은 동적 필터 드라이버이다. SFilter와는 다르게 재부팅을 요하는 만큼의 작업은 필요가 없다. 단지 파일의 입출력을 감시할뿐, 이정도의 기능이라면 SDT 후킹을 해서 구현할 수도 있을 것 같다, 하지만 내부적으로 엄청나게 잘짜놨겠지, – _-; 일단 DriverEntry()를 보면 다음과 같은 루틴이 존재한다. 파일 시스템 필터 드라이버를 작성하다보면, Fast I/O에 대해서 많이 보게

[DDK] 파일 시스템 드라이버의 FastIoDispatch 루틴 더 읽기"

[DDK] Windows NT드라이버 개발자들을 위한 정보 - 피해야 할 사항들

요약 loadTOCNode(1, ‘summary’); 다음은 Windows NT 장치 드라이버들을 만들기 위한 정보 입니다. 나타난 정보는 모든 기술에 적용됩니다. 이것은 드라이버 문제를 해결하기 위한 점검 목록으로도 사용될 수 있습니다. 아래에 기술된 정보를 효과적으로 사용하기 위해서 Windows NT 구조에 대한 기본 지식과 일부 장치 드라이버 개발 경험이 필요합니다. 장치 드라이버 개발에 대한 추가 정보를 보시려면 MSDN Professional 멤버쉽을

[DDK] Windows NT드라이버 개발자들을 위한 정보 - 피해야 할 사항들 더 읽기"

[DDK] MS에서 공개하지 않은 함수 ObOpenObjectByName() 내부 코드

NTSTATUS    STDCALL   ObOpenObjectByName(     POBJECT_ATTRIBUTES ObjectAttributes,     POBJECT_TYPE ObjectType,     PVOID ParseContext,     KPROCESSOR_MODE AccessMode,     ACCESS_MASK DesiredAccess,     PACCESS_STATE PassedAccessState,     PHANDLE Handle     )   {      UNICODE_STRING RemainingPath;      PVOID Object = NULL;      NTSTATUS Status;        DPRINT(“ObOpenObjectByName()\n”);      

[DDK] MS에서 공개하지 않은 함수 ObOpenObjectByName() 내부 코드 더 읽기"

[DDK] Recognizer

필터 드라이버를 등록할때 레코그나이져(인식기)가 사용된다. 일단 지금 필터를 등록하는데 앞으로 등록되는 VDO보다는 지금 등록되어 있는 VDO에 기존의 필터를 붙이는게 중요하다, 백신을 보면 재부팅을 안하고 필터를 다 붙이는 기술을 지니고 있다. 이것은 OSR에서 만든 레코그나이저를 사용하는 듯한데,, 일단 A사의 V백신 및 N사의 P백신을 보면 필터 드라이버를 붙이는 모습을 볼 수 있다. 기본적으로 디바이스 트리에 FsRec라는 게

[DDK] Recognizer 더 읽기"

[DDK] Bug check 0x50 PAGE_FAULT_IN_NONPAGED_AREA 추적방법

What Happened? To understand this bugcheck code, it’s first necessary to understand what a “page fault” is. If you’re not completely sure you understand this concept, read the article So, Exactly What Is A Page Fault here at OSR Online. The Windows Memory Manager reserves pre-defined ranges of kernel virtual address space for specific uses.

[DDK] Bug check 0x50 PAGE_FAULT_IN_NONPAGED_AREA 추적방법 더 읽기"

[DDK] MS에서 사용하는 Common Naming Prefix

Prefix Component ———Cc ——————-Cache manager Cm Configuration manager Ex Executive support routines FsRtl File system driver run-time library Hal Hardware abstraction layer Io I/O manager Ke Kernel Ks Kernel Streaming Lpc Local procedure call Lsa Local security authentication Mm Memory manager Nt Windows system services (most of which are exported as Windows functions) Ob Object

[DDK] MS에서 사용하는 Common Naming Prefix 더 읽기"

윈도우즈 디바이스 드라이버 개발 방법

윈도우즈 디바이스 드라이버 개발 방법 디바이스 드라이버 개발을 처음 시작하시는 분들이 가장 많이 하시는 질문은 ” 디바이스 드라이버를 개발하려면 무엇을 어떻게 공부해야 하나요 ? ” 라는 것이다 . 일반 애플리케이션 프로그램 개발을 시작하는 경우에는 자료도 많고 , 주변에 개발자들도 많아서 공부 방법이나 자료들을 쉽게 접할 수 있는데 , 디바이스 드라이버 분야는 개발자들이 많은 분야도 아니고

윈도우즈 디바이스 드라이버 개발 방법 더 읽기"

윈도우 디바이스 드라이버 개발환경 구축

윈도우 디바이스 드라이버 개발환경 구축 디바이스 드라이버가 처음이신 분들이라면 , 아직 개념 및 용어 이해에 어려움이 있었을 것으로 본다 . 그것은 아마도 실제 개발을 해보지 않은 상태에서 이론적인 내용만 가지고 이해하려다 보니 어려웠을 것으로 보인다 . 그래서 , 이번 컬럼에서는 디바이스 드라이버를 실습해 볼 수 있는 개발 환경 구축에 대한 내용을 다뤄 보도록 하겠다 .

윈도우 디바이스 드라이버 개발환경 구축 더 읽기"

위로 스크롤