본문 바로가기

메모리

(6)
WinDbg|전체 프로세스 메모리에서 특정 패턴 스캔하기 http://voneinem-windbg.blogspot.kr/2007/06/scan-full-process-memory-for-pattern.html 전체 프로세스 메모리에서 특정 패턴 스캔하기Scan the full process memory for a pattern 프로세스 메모리에서 특정 패턴을 스캔해야 할 때가 매우 많았다.특정 포인터이거나 문자열일 수도 있고 무엇이라도 될 수 있다.Very often I need to scan the process memory for a specific pattern.This can be either a pointer or a string or whatever and I want to find out, which other memory references th..
리소스 모니터 메모리 탭 탐구 윈도우 7의 리소스 모니터가 아주 좋다. 메모리 탭의 예쁜 그래프가 과연 무엇을 나타내는지 탐구해 봤다.준비물은 시스인터널즈의 RamMap 유틸리티.성능모니터를 직접 실행하거나, 작업관리자에서 성능모니터를 실행시키고 메모리 탭을 본다.실제 물리 메모리의 사용량을 그래프로 나타내 준다. 사용 중은 rammap 툴에서는 active 로 표현하는 실제 프로세스나 시스템이 현재 사용하고 있는 메모리를 뜻한다. 수정한 날짜라는 부분은 분명한 오역인데, modified 로 표현되는 (윈도우즈 인터널즈 5판 한국어판에서는 "변경"으로 번역하고 있다.) 메모리 페이지를 뜻하는 듯 하다. 대기 모드 또한 오역으로 보인다. rammap에서는 standby, 윈도우즈 인터널즈 5판 한국어판에서는 "스탠바이"로 번역한 것이다..
[64Bit] 64비트 시스템에서의 프로세스 가상메모리 어드레스, 시스템 dll 64비트 윈도우 상에서의 32비트 프로세스와 64비트 프로세스를 비교해 봤다. 64비트 윈도우7에서 explorer.exe 는 64비트 프로세스가, wmplayer.exe 는 32비트 프로세스가 돌았다.이 두 프로세스를 시스인터널즈의 vmmap.exe 툴로 잠깐 들여다 봤다. 가장 먼저 눈에 띄는 차이점은 다음과 같다. 1. 32비트 프로세스 wmplayer.exe 다. imm32.dll 등의 시스템 dll들이 windows\sysWOW64 패쓰에 있는 것들이 주루륵 붙어서 돌고 있다. 2. 프로세스의 버추얼 어드레스가 16진수 여덟자리이다. 7FFFFFFF 까지 보이고 있다. 3. 64비트 프로세스인 explorer.exe 를 보면, windows\system32\ 아래의 DLL들이 붙어 있는 걸 확인..
[WINDOWS] 메모리상의 맵파일과 이미지 비교 김성우 해킹, 파괴의 광학 6장 예제 6-3을 조금 변형했다. 소스의 저작권이 좀 아리까리한데, 일반적인 예제코드라 생각하여 저자의 허락없이 변형하여 올렸다. (혹시 저작권자가 이 글을 보고, 문제를 제기한다면 요청대로 처리하겠다.) #include #include int CompareMappedAndAutoLoaded(char *szDllPath) { int i, result; //char szDllPath[] = BYTE *pMapFile, *pDll; DWORD dwSize; DWORD dwSameSize = 1; HANDLE hFile, hFileMap; char c; hFile = CreateFile(szDllPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_..
[WINDOWS] DLL 매핑 주소 알아보기 김성우 해킹, 파괴의 광학 6장 예제 살짝 변형해서 실행해 보고, sysinternals vmmap 툴로 비교해 봤다. 결과는 간단히 아래 캡쳐를 보라.
Private but Shareable 시스인터널즈 툴 중에 재미있는 게 있다. vmmap 이라는 툴로, 특정 프로세스가 사용하는 가상주소공간을 지금 어떤 것이 얼마나 사용되고 있는지를 나타내 주는 툴이다. 색색깔로 예쁘게 서로 다른 의미로 사용되는 것을 다르게 보여줘서 아주 좋다. 이 툴을 가지고 이것저것 살펴보다가 이상한 것을 발견했다. 아래 그림에서 반전시킨 부분이다. 뭐가 이상하다고 하는 거냐면, 다시 위쪽 부분을 보자. 메모리의 종류에는 Private 이라고 노란색으로 표시된 것이 있는데, 이렇게 딱지가 붙은 것은 다른 프로세스와 공유되지 않는 자기 자신만 사용할 수 있는 그야말로 "개인적인", "자기만의" 공간이다. 그런데, 각 메모리 종류에 대해 상세하게 워킹셋(WS)을 구분하여 보여주는 곳에는 Private, Shareable ..