본문 바로가기

보안/프로그램

DLL을 디버깅하기 위해 필요한 프로그램

1. DebugView


코드에 다음과 같은 함수를 작성한다.


void DebugLog(const char *format, ...)

{

va_list vl;

FILE *pf = NULL;

char szLog[512] = {0,};


va_start(vl, format);

wvsprintf(szLog, format, vl);

va_end(vl);


    OutputDebugString(szLog);

}


(출처 : 리버싱 핵심 원리, redirect.cpp)

DebugLog("XXX함수가 에러났어요 : %u\n", GetLastError() ); 

이런식으로 에러난 부분에 로그를 출력시켜준다.

그러면 이 프로그램의 화면에 로그가 출력된다.




2. ProcessMonitor


어떤 프로세스가 어떤 API를 호출했는지 알고 싶을 때 사용하는 프로그램이다. 


모든 프로세스가 출력되므로 상단 중앙에 있는 메뉴에서 필터기능을 이용해 필요한 내용만 볼 수 있도록 한다.


ProcessMonitor.zip


출처 : https://technet.microsoft.com/ko-kr/sysinternals/bb896645



3. ProcessExplorer


taskmgr 보다 자세한 프로세스 확인 프로그램이다. 프로세스의 자식 트리 구조를 확인할 수 있고 어떤 DLL을 가지고 있는지 여부 또한 확인할 수 있다. 추가적으로 바이러스 토탈을 이용해 실행 중인 프로세스가 악성인지 확인할 수 있다.


ProcessExplorer.zip


출처 : https://technet.microsoft.com/ko-kr/sysinternals/bb896653