|
후킹은 DLL를 만들어야 합니다.
그게 후킹의 법입니다.
후킹 자료는 많은데 이유는 잘 설명하지 않죠.
왜 DLL로 만들어야 하냐면
후킹은 커널에서 호출하는데
커널에서 호출할 수 있는 메모리 영역에 올라가야 하기 때문입니다.
그게 DLL 메모리 영역입니다.
보통, 어플은 커널과 완전히 다른 주소 공간에 있기 때문에
커널의 후킹 함수를 설정할 수 없습니다.
사실 할수 없다기 보다는 OS가 만들어 놓은 장벽을 넘을 수 없는거죠.
그걸 알면 코드로 다 제거하면 되지만 그건 고난이도 지식이 필요합니다.
커널과 메모리 주소공간에 놓인다고 해서 커널 보호벽까지
넘을 수 있는 것은 아닙니다.
어플에 후킹 함수를 설정할 수 있으면
누가 DLL을 만들겠습니까.
온새미 님이 쓰신 글 :
: 안녕하세요, 온새미입니다.
:
: 제가 한동안 화상키보드에 며칠밤을 새면서 했는데요... 결국 못했습니다... 그런찰나에 소스를 구하긴 했는데...
: [현재 분석중]
:
: 제가 질문할 것은 소스에 관한게 아니라 대부분 후킹할 때 따로 DLL 파일을 만들어서 그 안에 있는 함수를 꺼내오는데요... 꼭 그렇게 해야하는지 그게 궁금합니다. 그러니까...
:
: 하나의 프로젝트에 다 넣으면 안되냐는 얘기지요...
:
: 그렇게 해보려면 시간도 좀 걸리구요[이미 dll로 되어 있는 소스가 있는데, 그걸 빌더로 옮기자니 잘 모르겠구해서요...] 안되면 시간낭비니까 확실히 알고 가고 싶어서 그런겁니다. 다시 정리 해서 말하자면,
:
: 후킹을 할 때 DLL로 넣어야하나? 하나의 CPP나 프로젝트에 다 넣어버리면 안되나?
:
: 이것입니다. 질문 봐주셔서 감사합니다 :)
|