U E D R , A S I H C RSS

Debugging Seminar_2005/Und Name

DLL 파일의 이름 알아보기

요약

DLL 파일에 의해서 분석된 내용을 보면 DLL 에 함수의 이름이 이상하게(?) 변형되어 있는것을 확인하실 수 있는데(DUMPBIN.EXE 를 통해서 가능합니다.) 이 이름의 원형을 알고 싶을때가 있습니다. 그럴때 undname.exe 라는 파일을 사용하시면 아주 쉽게 확인해 보실 수 있습니다.
디버깅 세미나에서는 이러한 함수의 이름이 컴파일 옵션으로 설정되는 map 파일안에 존재하는 것으로 이용하였다. - eternalbleu

본문

아래의 예제에서 보시면 ~cpp '?MapDLLappyFunc@@YAPADPAD@Z' 라는 이름이
~cpp 'char * __cdecl MapDLLappyFunc(char *)' 라는 알기 쉬운 형태로 변형되어 있음을 확인할 수 있습니다.

예제

~cpp 
H:\>undname -f ?MapDLLappyFunc@@YAPADPAD@Z 
Microsoft(R) Windows (R) 2000 Operating System 
UNDNAME Version 5.00.2184.1Copyright (C) Microsoft Corp. 1981-1999 
>> ?MapDLLappyFunc@@YAPADPAD@Z == char * __cdecl MapDLLappyFunc(char *) 
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:06
Processing time 0.0086 sec