2010-05-17 4 views
1

나는 오래된 VB6 응용 프로그램을 가지고 있으며 컴파일하는데 어떤 코드가 사용되었는지 잘 모르겠습니다. 소스의 한 개정판은 kernel32.dll에서 절전 모드를 호출합니다.VB6 exe에서 DLL 함수가 호출되는지 확인하는 방법은 무엇입니까?

exe가 DLL에 특정 함수를 호출하는지 확인하는 방법이 있습니까? kernel32.dll이 "Dependency Walker"도구를 사용하여 연결되어 있지만 특정 함수가 exe에서 호출되었다고 알려주지 않는 것을 알 수 있습니다.

답변

2

Process Explorer을 사용하면 런타임에 exe에서 호출되는 DLL 함수를 확인할 수 있습니다.

1

디버거에서 프로그램을 실행할 수 있으면 언제든지 interrest의 기능 주소에 중단 점을 설정할 수 있습니다. 물론 가져온 함수에 대한 실제 호출을 트리거해야합니다.

디스어셈블러에서 프로그램을로드하고 해당 프로그램에 대한 참조가 있는지 확인할 수도 있지만 동적으로로드 된 함수는 catch하지 않습니다. 살펴볼 도구는 PE Explorer입니다. VB6 프로그램에서 작동하는지 모르겠다. dll 가져 오기 코드는 GetProcAddress 등을 사용하여 함수를 동적으로로드하기 때문이다.

+0

+1 디버거 용. 누구나 WinDbg 사용에 대한 단계별 지침을 게시 하시겠습니까? VB6 DLL 가져 오기 코드 동적으로 함수를로드 할 꽤 확신합니다 - 지정된 함수 DLL에 존재하지 않는 경우 함수 호출이 만들어 질 순간에 런타임 오류가 발생합니다. 앱이로드 될 때가 아닙니다. – MarkJ

0

종속성 워커에서 프로필 명령을 사용할 수 있습니다.
이렇게하면 호출 할 메소드를 추적하고 볼 수 있습니다.

관련 문제