저자는 남한에서 거주중이며, 공산주의 사상에 동의하지 않으며 민주주의를 수호하는 시민입니다.
또한 해당 리뷰는 오직 학습을 위해서 만들어진 리뷰입니다.
선행연구에서 제안한 IAT 후킹에 관하여 다루고있다.
IAT Hooking은 간편하지만, 간접호출과 같은 호출방식은 후킹하지 못한다는 단점이 있다.
IAT는 다음과 같이 존재하며, 사용된다.
PE FILE내의 IAT는 해당 프로그램이 사용하는 API의 정보를 담아두는 Table로써,
해당 Table을 통해서 직접적인 API의 호출이 가능하다.
따라서 해당 Table의 주소를 바꾼다면 공격자의 코드가 실행 될 것이다.
또한 64비트 환경에서의 어셈블리 후킹에 관한 문제점을 다루고 있다.
이러한 문제점들을 극복하기 위해서 해당 논문에서는 Windows 64bit에서 모든 API호출에 대한 후킹을 다룬다고 한다.
32bit에서 어셈블리 후킹은 단순히 직접분기를 사용하는데 (JMP 0x~~)
64bit에서는 상위주소 4byte가 모듈마다 다르고, 주소가 8바이트까지 표현되므로 직접 분기 방법으로는 후킹이 불가능하다는 내용이다.
따라서 후킹할 API의 가장 가까운 메모리 영역에 임의로 코드를 인젝션하여 4Byte크기 안에서 분기가 가능하다고 한다.
이렇게 64비트 환경에서의 API후킹 문제를 해결한다면 32비트와 크게 다른점없이 후킹이 가능 할 것이다.
후기...
64bit register를 jmp instruction의 인자로 사용한다면 8Byte크기의 메모리 공간도 분기가 가능하다는 내용이 없어서 당황했다.
하지만 단순히 API근처 메모리 주소에 코드를 할당하여 후킹한다는 발상은 32비트와 호환이 가능한 방식이라 신선했던것 같다.
앞으로 북한에서 유저모드 루트킷이라도 개발하려는 의도인지는 모르겠으나, 폐쇄적인 환경에서 이런 내용의 논문이 써진다는건 매우 흥미로운 부분인것같다.
논문 분량이 상당히 적어서 리뷰가 편했다.