C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49815] Re:후킹에 대해 질문할게요...
김태선 [cppbuilder] 1216 읽음    2007-07-06 10:17
후킹은 DLL를 만들어야 합니다.
그게 후킹의 법입니다.

후킹 자료는 많은데 이유는 잘 설명하지 않죠.
왜 DLL로 만들어야 하냐면
후킹은 커널에서 호출하는데
커널에서 호출할 수 있는 메모리 영역에 올라가야 하기 때문입니다.
그게 DLL 메모리 영역입니다.

보통, 어플은 커널과 완전히 다른 주소 공간에 있기 때문에
커널의 후킹 함수를 설정할 수 없습니다.
사실 할수 없다기 보다는 OS가 만들어 놓은 장벽을 넘을 수 없는거죠.
그걸 알면 코드로 다 제거하면 되지만 그건 고난이도 지식이 필요합니다.

커널과 메모리 주소공간에 놓인다고 해서  커널 보호벽까지
넘을 수 있는 것은 아닙니다.

어플에 후킹 함수를 설정할 수 있으면
누가 DLL을 만들겠습니까.



온새미 님이 쓰신 글 :
: 안녕하세요, 온새미입니다.
:
: 제가 한동안 화상키보드에 며칠밤을 새면서 했는데요... 결국 못했습니다... 그런찰나에 소스를 구하긴 했는데...
: [현재 분석중]
:
: 제가 질문할 것은 소스에 관한게 아니라 대부분 후킹할 때 따로 DLL 파일을 만들어서 그 안에 있는 함수를 꺼내오는데요... 꼭 그렇게 해야하는지 그게 궁금합니다. 그러니까...
:
: 하나의 프로젝트에 다 넣으면 안되냐는 얘기지요...
:
: 그렇게 해보려면 시간도 좀 걸리구요[이미 dll로 되어 있는 소스가 있는데, 그걸 빌더로 옮기자니 잘 모르겠구해서요...] 안되면 시간낭비니까 확실히 알고 가고 싶어서 그런겁니다. 다시 정리 해서 말하자면,
:
: 후킹을 할 때 DLL로 넣어야하나? 하나의 CPP나 프로젝트에 다 넣어버리면 안되나?
:
: 이것입니다. 질문 봐주셔서 감사합니다 :)

+ -

관련 글 리스트
49813 후킹에 대해 질문할게요... 온새미 1084 2007/07/06
49815     Re:후킹에 대해 질문할게요... 김태선 1216 2007/07/06
50604         Re:Re:후킹에 대해 질문할게요... 이성제 1390 2007/09/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.