Categories
Tags
3d algorithms alignment analyze APIT Arc Architecture arm ascii assembly asynchronous base64 BitHacks Blogging box c c23 clang clang-format client clippy cmake compiler Computer concat concurrency const_fn constexpr contravariant cos covariant cpp cpu crate CS Customization cybersecurity DataStructure db debugging Demo deserialization discrete doc DP drawio dtruss Dynamic emulator example Example FFI flamegraph flat_map fold format FP fsanitize Functional FunctionalProgramming functions futures Fuwari game GATs gcc gccrs generics gitignore glibc GUI hacking hashmap haskell heap hyperfine Imperative interop invariant iterator join justfile kernel LaTeX leak LFU linux lto MachineLearning macOS map Markdown math ML mmap mod nc OnceLock optimization OS ownership panic parallels perf physics pin postgresql product profiling pub radare2 rayon release reverse RPIT rust sanitizer Science science serialization server shift sin size SmallProjects socket std strace String StringView strip strlen struct sum super surrealdb SWAR swisstable synchronous tan thread time toml tracing traits triangulation uint32_t UnsafeRust utf16 utf8 Video vulkan wsl x86_64 xilem zig
178 words
1 minutes
260204_Impl_GUI_in_Windows_Kernel
link
윈도우에서 GUI프로그램의 작동 원리
GUI 프로그램일 경우 그래픽과 메시지 등을 담당하는 기능이 커널 드라이버인
win32k.sys에서 담당하므로 시스템 콜 테이블을 가져오는 과정에서KeServiceDescriptorTable이 아닌KeServiceDescriptorTableShadow구조체를 가져온다. 이 구조체는 커널 자체(KiServiceTable)와win32k.sys의 시스템 콜 테이블이 모두 들어가 있다. 여기서win32k.sys의 시스템 콜 테이블은W32pServiceTable이다.win32k.sys의 시스템 콜도 역시win32u.dll라는 라이브러리로 사용자 모드에 노출된다.user32.dll과gdi32.dll이win32u.dll의 함수를 사용한다.
260204_Impl_GUI_in_Windows_Kernel
https://younghakim7.github.io/blog/posts/260204_impl_gui_in_windows_kernel/