본문 바로가기

내가 작업한 것들

PWatch v 0.3.2.40 - 프로세스 덤프 프로그램.


특정 작업을 위해 만들어진 프로세스 덤프 프로그램 입니다.
멋진 상용 프로그램들이 꽤 많지만 가져다 쓸 여유가 안되는 관계로 직접 만들었습니다 -_-;

이 프로그램은 특정 프로세스를 열어서 (실행 중인 프로세스만 처리 합니다) 그 프로그램이 로드된 메모리와 힙 메모리 영역등을 모두 덤프 합니다.

초허접한 레지스트리 검색 기능도 있긴 합니다만, 이건 +알파 기능으로 만들어 놓은거라 쓸게 못되고 ...
간단히 현재 실행중인 프로세스를 덤프 하고자 하시는 분이라면 쓸 만한 정도 이겠습니다.

열기 버튼을 눌러 프로세스를 검색하여 찾아 낸 다음.

성공적으로 프로세스가 찾아 진 다면 아래 이미지 처럼 좀 더 자세한 내용을 볼 수 있습니다.
옆의 목록에서 ProcessID 와 ParentID 를 클릭 하시면, 해당 프로세스가 사용중인 DLL 목록도 볼 수 있습니다.
물론 해당 DLL 검색 기능도 있으면 좋겠지만 ... 그런건 다음 버젼에 ... -_-;;

메뉴에 나오는 것 중에 종이박스에 뭐 담는 듯한 이미지가 덤프 입니다.
덤프 메뉴 누르면 Dump'O All 이란게 나오고, Dump 버튼 눌러 주면 메모리를 통으로 덤프 합니다.
알고보면 대단힌 기술은 아닌데, 조금 노가다 성 입니다.
노가다 안하려고 만든거니 ... 도움이 되는 분들이 계심 좋겠네요.
마음 같아서는 dis-assemble 코드도 보여 드리고 싶지만 ... 제 실력은 거기 까지가 아니라죠~


출력된 파일은 Pwatcher.exe 가 실행 된 위치에 DUMP_XXXXXX 로 폴더가 생기고, 그 안에 차곡차곡 들어 갑니다.
실행중인 프로세스가 있는 폴더를 통으로 복사하니 ..
Windows 폴더 내에 있는 프로세스는 절대 Dump 하지 마세요 ... ㅎㄷㄷ 합니다.


기본적으로 실행 중인 프로세스가 시스템에 예약받아 쓰는 메모리 영역을 두 방법으로 덤프 합니다.

dumpimage_executive.bin 은 실행 바이너리 덤프
dumpimage_memory0.bin 은 전체 할당 된 메모리 덤프
dumpimage_memory1.bin 은 실제 사용중 메모리 덤프 (프로세스 메모리 포함됨)
proc_info.txt 는 덤프된 프로세스 정보.

이 외에 src-bin 이 dump_image 와 동일한 레벨의 폴더로 생성 되는데,
이곳에 실행중인 프로세스의 폴더 위치를 모두 복사하게 됩니다.

windbg 같은 툴로 디버깅 하실 수 도 있겠네요.
다음 버젼 언젠가는 ... dis-assemble 되는기능도 넣어 보도록 할지 .. 모르겠네요 ..

개발은 windows7 64bit 였지만, 컴파일러가 32bit 라, 64bit 프로세스는 처리 못 합니다 ...

다운로드 :