본문 바로가기

조금은 전문적인 이야기/IT

메모리 덤프를 이용한 리버스 엔지니어링

리버스 엔지니어링의 방법 중의 하나는 메모리의 정보를 뒤저보는 방법이 있다. 윈도우 7이전(Vista의 경우 지원하는지 확실하지 않다...) Windows XP에서는 WinHEX라는 프로그램을 사용해서 프로그램이 사용하는 메모리 내역을 확인 할 수 있었는데, 고맙게도 윈도우 7에서는 윈도우가 자체적으로 Dump 파일을 생성해 주는 기능이 생겼다. 그야말로 MS에게 감사할 일인데, 사용하는 방법은 설명 하겠지만, 이 것을 어떤 용도로 쓸 지는 각자 생각을 해서 사용하길 바란다.


먼저 메모리의 내용을 보고 싶은 프로그램을 실행 시킨다.



작업 관리자를 열어 메모장의 프로세스를 찾은 뒤에 우클릭을 하면 메모리 덤프 관련 항목이 있는데 실행시키면 된다. 아주 간단하지 않은 가!!





덤프파일의 경로를 잘 살펴보고 이름을 기억을 하길 바란다. 생각 외로 찾기가 그렇게 쉽지는 않으니....그리고 윈도우의 폴더 옵션을 숨긴파일 보기로 해놔야 무리없이 찾을 수 있을 것이다. 




해당 덤프파일을 HEX 에디터나 일반 편집프로그램을 사용하면 열어 볼 수 있는데, 주의할 점은, 테스트용으로 사용한 메모장은 고작 5~10 MB의 메모리를 사용하는 아주 작은 프로그램이지만, 큰 프로그램들은 기가대 까지 올라긱도 한다. PC가 파일 열다 다운 될 수도 있으니 잘 보고 열어야 한다. 



메모장이 사용하는 메모리에 있는 내용인데, 사용하는 API에 대한 정보들이 들어 있는 것 같다. 이를 응용하면 여러가지 작업들을 할 수 있다. 


XP에서 사용하는 WinHEX도 이와 별 차이는 없는데, 나중에 포스팅을 해보도록 하겠다.