WH_SHELL 후킹 시 확인할 것!

델파이로 갈구리질을 하려면 꼭 봐야 하는 강좌(검색해도 이게 제일 확실하고 잘 설명된 자료이다.)가 있습니다.

바로 델파이 고수 중 한분이신 민성기님께서 다가오는 21 세기를 바라보며 쓰신 주옥같은 델파이 후킹 강좌입니다.

지금은 델파이 코리아가 문을 닫고 델마당 강좌란에 퍼온 자료가 남아있어(여러 블로그에서 펌질이 되어 검색하면 다 같은 글이 나올겁니다.) 링크를 겁니다.

민성기도 하는 후킹 3화 링크 : http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=42&indx=196917

이 강좌에서 한가지… 운 없으면(컴파일러가 삽질할 경우) 문제가 생길 수 있는 코드를 정정하고자 합니다.

 

제가 작성했던 코드에서는 이전 포스트의 프로세스 아이디로 윈도우 핸들을 얻는 코드를 통해 윈도우 핸들은 얻은 뒤 후킹 DLL 로 핸들 값을 넘겨 위 코드를 이용해 해당 프로그램이 죽는지 사는지 감시하도록 했습니다. (아래 코드 첨부)

이 코드에서는 클래스명 비교부분에 strPAS 함수를 사용하여 비교하도록 하였습니다.
민성기님 코드의 경우 비교문 우측에 ‘Notepad’ 라는 String 문자열이 있어 좌측 Char 배열을 컴파일러가 비교를 위해 자동 형변환을 하도록 했지만 위 코드에서는 비교문 양쪽 모두 Char 배열이 되어 문자열로 비교하지 않게 됩니다.
strPAS를 통해 String 으로 변환하여 비교하면 문제없이 처리가 됩니다.