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