해당 기술에 대한 특허 출원서를 보면 많은 도움이 된다.
왜냐하면 특허 신청을 할떄,
초록 및 도안을 포함해야 하는데,
이를 보면 대략 어떻게 동작하는 것인지 파악할 수 있기 떄문이다.
예를들어 다음은 (주)잉카인터넷에서 스피드핵 보호 기술관련으로
신청한 특허신청서의 일부이다.
프로그램을 실행하는 주 모듈과,
타이머 API의 처리루틴의 주소를 저장하는 IAT를 포함한
프로세스에서, 후킹 여부를 판단하고자 하는 상기 타이머
API의 처리루틴의 원래의 코드값을 저장하는 원코드값저장단계와;
상기 타이머 API의 후킹 여부 검출이 요청되면,
상기 IAT에 저장된 상기 타이머 API의 처리루틴의 주소가 가리키는
위치의 코드값을 읽는 사용코드값획득단계와;
상기 원코드값저장단계에서 저장된 코드값과
상기 사용코드값획득단계에서 읽은 코드값을 비교하는 비교단계와;
상기 비교단계의 결과 상기 두 코드값이 일치하지 않으면
상기 타이머 API의 후킹에 의한 스피드 핵 사용으로 판단하고,
상기 두 코드값이 일치하면 상기 타이머 API의 후킹이 아닌 것으로
판단하는 판단단계를 포함한 것을 특징으로 하는
타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부
검출방법.

스피드핵을 만들어 본 사람이라면,
위의 말과 그림을 보고 나면 "아 그렇군" 하는 말이 나올 것 이다. :)
다음은 안철수연구소에서 제출한 특허이다.
컴퓨터 시스템의 시간 정보를 제공하는 칩을 제어하여
컴퓨터 시간을 변경하거나, 시간 관련 API 함수들을 후킹한 후,
이 함수들이 호출될 때 반환 값을 임의로 변경하여 시간을 변경하는
행위를 차단하는 프로그램에 의한 내부 시간 타이머 조절 감지
방법이 개시되어 있다.
방법은
A) 컴퓨터 시스템의 커널 레벨에서 시간 정보를 제공하는 칩을
통해 기준 시간을 검출하는 단계와;
B) 상기 컴퓨터 시스템의 유저 레벨에서 소정의 프로그램의
내부 시간을 검출하는 단계와;
C) 상기 검출된 상기 기준 시간 및 상기 내부 시간을 비교하는
단계와;
D) 상기 비교 결과를 기초로 상기 컴퓨터 시스템의 시간이
변조되었는지를 판단하는 단계를 포함하여,
컴퓨터 시스템의 내부 시간이 임의로 변경되는 것을 차단할 수 있다.

그외에도 많으나 다 적기엔 뭐하고 해서...:)
위엣것만 적어봤습니다.
좀 더 궁금하신 분들은 직접 특허 관련 사이트에 가셔서
메모리*해킹*회사이름 방식으로 검색해보시면 도움이 될겁니다. :)
Posted by Dual



