Category Archives: Windows Reverse 2nd

서브시스템 관리자 Csrss.exe (Client-Server Runtime Subsystem)

Client-Server Runtime Subsystem의 약자로, Basesrv.dll, winsrv.dll, csrsrv.dll를 로드하여 Console Windows 처리, 프로세스와 스레드 생성과 삭제, 16비트 가상 DOS 머신(VDM) 프로세스를 위한 기능 일부 및 SxS(Side-by-Side) 지원 한다. Windows Startup Process임과 동시에 서브시스템 관리 프로세스로써 중요한 위치를 차지하는 프로세스이며, 이 역시 네이티브 어플리케이션이다. 레지스트리 (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows키)에서 설정값을 확인할 수 있다. 그리고 CSRSS은 윈도우 서브시스템 DLL과 빠른

Read More

윈도우 세션 관리자 Smss.exe (Session Manager Subsystem)

Smss.exe는 Session Manager Subsystem의 약자로, 부팅 이후 최초로 생성되는 시스템 구동에 필요한 프로세스이다. (1장 후반부 성능 부분에서 Xperf를 통해 부팅 프로세스를 확인할 수는데 부팅 최초 프로세스로 확인할 수 있다.) Smss.exe는 레지스트리 정보를 확인하여, 먼저 기본 실행 파일(…\Session Manager\BootExecute)을 확인하여 실행하게 된다. (기본적으로는 autochk, 디스크검사가 실행된다.) 그리고 시스템 환경 설정을 레지스트리(HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)에서 확인하고 설정에 맞게 초기화

Read More

windbg를 이용한 poll 추척 – Gflags

이 도구는 Windbg를 설치하면 함께 설치되는 도구로서, 커널 디버깅 시 유용한 기능을 제공한다. 대표적으로 윈도우에서 발생하는 페이지 풀 오류를 찾기 위해 먼저 Enable poll tagging를 활성화 하여, 힙 태그를 통해 오류시 사용된 힙의 태그을 확인할 수 있어, 장애 해결에 도움을 준다. HeapMon을 사용할 때에도 Gflags를 이용하여 활성화 하여야 한다. [그림] Heap, Pool 관련 문제를 추적하기

Read More

메모리의 실체, 공포의 파란 화면

윈도우 구조는 크게 유저모드와 커널모드로 메모리 영역이 나누어져 있다. 여기에서는 커널 메모리 영역과 윈도우에서 메모리를 관리하는 방식에 대해 정리해 보도록 하겠다. 메모리 부분은 역분석에서 주요 분석 부분이므로, 이 구조 이해도 필요하다 할 수 있다. 윈도우는 실제 메모리보다 많은 공간을 사용할 수 있도록 가상 메모리 공간을 만들어 사용한다. 가상 메모리는 메모리상의 일부 영역을 디스크로 페이징시켜 메모리

Read More

레지스터와 어셈블리 그리고 스택

레지스터와 어셈블리 그리고 스택 가장 먼저 공부해야할 부분을 CPU로 잡았다. 이유는 윈도우 구조 분석에 있어 대다수 코드가 CPU가 처리하는 과정을 보는 과정이기 때문이다. CPU 처리 과정의 이해는 윈도우 구조를 이해하는데 매우 중요하다. 윈도우라는 운영체제는 사용자와 하드웨어에서 중간 다리 역활을 해주는 장치라 할 수 있다. 예로 사용자가 엑셀을 이용해서 문서를 만들때 입력 장치인 키보드를 사용할 수

Read More

윈도우 버전과 커널 변화

윈도우 버전과 커널 변화 “요즘 같이 바쁜 시대에 개발할 시간도 없는데 윈도우 구조를 이해하라고? 웃기고 있네~” 이렇게 콧웃음을 칠 수도 있습니다. 여러분, 그럼 여러분이 빨리 하고 싶다고 애기하는 개발에 대해서 애기해 봅시다. 개발이라면 무엇일까요? 사전적의미는 “무엇인가를 보다 쓸모있거나 향상된 상태로 변화시키는 행위”라고 합니다. 그렇다면 IT에서 개발이란 위에서 “만들어~” 라고 지시한 특정한 프로그램이지요. 그렇게 시작된 개발은

Read More

멀티 프로세싱(multiprocessing)

윈도우는 다수의 프로세서가 하나의 메모리 영역과 하드웨어 자원들을 공유해서 사용하는 대칭형 다중처리(Symmetric multiprocessing, 앞으로 SMP라고 표현함)를 지원한다. 현재 대부분의 시스템들이 지원하는 시스템 구조 역시 SMP라 할 수 있다. SMP는 데이터가 어느 위치에 있든 각 프로세서가 동일한 위치를 바라볼 수 있으므로, 작업 스케줄링을 통해서 효율적으로 여러 프로세서를 이용할 수 있게 된다. 윈도우 7과 2008에서는 256개의 논리

Read More