본문 바로가기

Windows/Kernel

(15)
DeleteFile SetDispositionInformationExFlags: FILE_DISPOSITION_DELETE, FILE_DISPOSITION_POSIX_SEMANTICS CreateFileDesired Access: Delete, Disposition: Open, Options: Non-Directory File, Delete On Close, Attributes: n/a, ShareMode: Delete, AllocationSize: n/a, OpenResult: Opened
FltGetFileNameInformation FLT_FILE_NAME_NORMALIZED FLT_FILE_NAME_NORMALIZED 옵션으로 파일을 구하는 경우 고객사에 따라 느려지는 경우가 발생. 원인 불명 FLT_FILE_NAME_OPENED 을 쓰는 걸로. https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/fltkernel/nf-fltkernel-fltgetfilenameinformation
Registry / OB filtering rurury.tistory.com/category/?page=5 '쫑`s 개발 이야기' 카테고리의 글 목록 (5 Page) 개발하면서 도움되는 정보들을 올릴생각입니다~ 한걸음 한걸음 올라가는 중 입니다.. rurury.tistory.com
Create process from kernel mode www.rohitab.com/discuss/topic/41532-create-process-from-kernel-mode/ Create process from kernel mode - Source Codes Create process from kernel mode - posted in Source Codes: It is possible to create process from kernel mode. The following driver injects code into user mode memory, and then execute it with user mode APC. How it works: 1) Enumerate all running pr www.rohitab.com
DNS 쿼리 탐지 및 변조 커널단에서 UDP를 이용한 DNS 쿼리 알기 및 변조 가능성. 그러나 DNS는 TCP를 사용 해서 쿼리 할 수도 있고 암호화되서 수행될 수도 있어 이건 안된다는 것. 아래 링크를 보면 재미있는 내용이 있다. Callout functions & driver You can do it by Callout Driver. You can capture, parse and edit DNS packet in callout for FWPM_LAYER_DATAGRAM_DATA_V4. Here is a code of FWPM_LAYER_DATAGRAM_DATA_V4 callback to get DNS query name. How to intercept DNS queries in Windows I am looking into..
FltQueryInformationFile - TopLevel IRP 인 경우 호출 불가 Symptom/Steps/Outputs (증상,재현방법,결과) 클라우드 스토리지(G드라이브)가 설치된 PC에 Insights Agent 설치 시 PC Hang 발생 Caused by (원인) G드라이브 제품은 네트워크 드라이브 형태의 가상 스토리지를 제공 GDrive.exe >> cbfsconnect2017.sys >> xfilter64.sys 로 전달된 I/O 처리 과정에서 파일사이즈를 구하기 위해 FltQueryInformationFile 호출 후 DeadLock 발생 MSDN의 FltQueryInformationFile api에 대한 기술 내용 검토 중 Deadlock 관련 추정되는 원인을 확인 (TopLevelIrp 가 설정된 경우, 사용자로부터 유발된 IRP가 아니라는 의미) NOTE: Do n..
NT vs. Zw 커널 드라이버를 만들다 보면 동일 함수인데 앞에 붙은 접두어가 Nt인 것이 있고 Zw인 것이 있습니다. 둘의 차이점은 뭘까요? 결론: 근본적인 루틴은 같지만 호출시 전달된 함수의 인자들을 검사하는 방식이 다르다. Nt 는 인자들이 적합한지 깐깐하게 살펴보고 Zw 는 믿고 넘어간다. 그러나 User mode에서 호출한 경우라면 Nt = Zw 는 서로 동일하다. 인자들을 다 본다는 말이겠죠. 이게 가능한 이유는 PreviousMode() 라는 API로 해당 스레드의 콜 스택을 보고 이전 동작 환경이 User mode 인지 Kernel mode인지 확인하기 때문이다. The Windows native operating system services API is implemented as a set of rout..
Thread Start Address 구현을 해봤는데 뭔가 부족해서 자료를 찾는 중입니다. http://www.jiniya.net/wp/archives/7676 스레드 열거하기 | 괴짜 프로그래머의 일상사~ 스레드 열거하기 by 신영진(YoungJin Shin), codewiz at gmail.com, @codemaru, http://www.jiniya.net ToolHelp를 사용해서 스레드 열거하기 윈도우 환경에서 시스템에서 수행중인 스레드를 열거하는 가장 손쉬운 방법 www.jiniya.net