[질문] 어플리케이션이 사용하는 모든(!) dll 리스트 보는법??
글쓴이: kleinstein / 작성시간: 금, 2011/07/15 - 6:13오후
일반적으로 process monitor 나 process explorer, 혹은 Dependency Walker 등의 툴로
어플리케이션이 사용하는 dll 들의 리스트를 볼수 있다는건 알고 있습니다만..
제가 가진 문제는..
어플리케이션이 잠깐 불러서 사용하고는 다시 unload 시키는 dll 들까지 전부(!) 깔끔하게(!) 알고 싶다는겁니다.
process explorer 로 dll 보기를 켜서 .exe 하나를 지켜보고 있으면
dll 리스트가 지속적으로 변하는걸 볼수 있는데요.. 이때 한번이라도 load 되었던 dll 들은 전부 리스트에서 다시 사라지지 않게 하고 싶은거죠..
process explorer 가 계속 이 리스트를 update 하기때문에 잠시 load 되었던 dll 들은 금새 리스트에서 사라지기 때문에 전부 알아내기가 쉽지않거든요..
다른 툴이나 어떤 방법이 없을까 싶어서 고수님들이 즐비하신 이곳에 여쭙습니다.
알려주세요~
Forums:
LoadLibrary hooking.
다른 방법도 아마 있을 것 같네요.
혹시
알고 계시면.. 좀 가르쳐주세요~
다른 분들은 어떻게 보시나요?
이런 필요를 느끼는 경우가 드문가봐요?
log보기
해당 실행파일을
visual c++에서 debug mode로 돌려보세요.
debug console창에
load하고 unload하는 dll들이 보일겁니다.
네.. 물론 그렇게 하면 다 보입니다만..
기타 다른 debug 메세지들이 즐비하게 같이 나와서 찾기도 번거롭고..
더군다나 직접개발한 exe 가 아닐경우에는 불가능한 방법이지요..
네.. 전부! 깔끔하게! 가 목표입니다.. 프로그래머의 특성이라 그런지 이런게 포기가 안돼네요..
디버그 메시지 말고, 다 나와요. dll 로드하는거.
디버그 메시지 말고, 다 나와요. dll 로드하는거.
Dependency Walker 에서는 다
Dependency Walker 에서는 다 보여주는게 아닌가요??
runtime-linking은 안보여줍니다.
runtime-linking은 안보여줍니다.
프로파일링을 하면 됩니다만..
runtime-linking도 프로파일링을 하면 되긴 하지만.. 역시 기타 다른 메세지들이 즐비하게 나오고..
때로는 Dependency Walker에서 프로파일링이 불가능한 상황도 가끔 있어서요..
아마 ida로 보실수 있을껍니다. 리버싱툴입니다.
아마 ida로 보실수 있을껍니다. 리버싱툴입니다.
프로그램에서 호출할 예정인 dll리스트도 보여줬던것으로 기억합니다만...
댓글 달기