심심이는 Windows system 을 살펴보기 위한 툴입니다.
Sysinternals 의 Process explorer 는 두말 할 필요없이 Windows system 을 살펴보기 위한 최고의 툴이지만 사용하기에 몇 가지 불편한 점들이 있어 직접 만들게 되었습니다.
심심할때 개인적인 필요에 의해서 만들기 시작한 프로젝트여서 '심심이' 라는 이름을 가지게 되었습니다. :-)
심심이는
kernel mode module (sys, ntoskrnl.exe, etc) 의 변경 사항 추적 및 복원 (kernel mode api hooking 탐지 / 복원)
등의 기능이 있습니다.
부가적으로
앞으로 어떤 기능들이 추가 될 지는 아직 미정입니다.
필요하다 생각되면.. 만들면 되니까요 ^^
각 엔진을 호출하는 GUI 모듈
실행파일의 구조를 분석하기 위한 플러그인 파일
PE 헤더 구조 분석 (헤더, IAT, EAT, etc)
유저모드 프로세스 메모리 덤프
Borland 계열 링커 처럼 INT (Import Name Table) 이 뭉개져 있는 경우에도 IAT, EAT 분석 가능 (오오~~~ nice !~)
디스크상의 PE 이미지와 메모리상의 PE 이미지 모두 분석 가능
Base relocation 자동 지원 ( cool ~ )
etc...
디스어셈블러 엔진
디스어셈블러 코어는 matt conover 씨의 x64 dis 엔진( http://mconover.openrce.org/ )
(소스코드를 제공 해 주고, 사용을 허가 해 준 matt conover 씨에게 감사드립니다.)
x64dis 엔진을 C++ 로 래핑하고, 범용적으로 사용가능한 dll 로 모듈화 시킴
debugging symbol engine 내장 (SPSymbol.dll)
커널 모드 드라이버
응용프로그램 레벨에서 접근 불가능한 모든 처리
SPDriver 를 커널에 로드하고, 드라이버와 통신을 위한 모듈
여러개의 드라이버를 로드할 수 있으며 각각의 드라이버 인스턴스를 관리
user mode process 가 비 정상 종료되어도 로드한 드라이버의 언로드를 확실히 보장 (cool ~~~ )
유저모드 dll injection 프레임 워크
injection 된 dll 과의 통신 채널 유지 가능
Plugin 인터페이스를 지원
injection 후 injection 한 dll 과 통신을 주고 받을 수 있으며 injection 된 dll 의 메소드 호출이 가능
Microsoft debugging symbol support library that embeded in SPDisas
함수 단위 덤프