알약에 자가보호기능이 도입된것은 그렇게 오래되지 않은것으로 알고있다.
알약이 자가보호기능을 어떻게 하는지 , 상세히는 아니고 , 초 간단히 분석해본결과를 써보고자 한다.

다음은 알약이 자기보호기능을 수행하는 시점에 , Kernel에 출력되는 디버그 메시지이다.
IOCTL_PROTECT_PROCESS
IOCTL_PROTECT_FOLDER (Protected Folder) - 30, C:\PROGRAM FILES\ESTSOFT\ALYAC

이름이 매우 직관적이라 , 자가보호기능이 어떠한 기능을 대략적으로 수행하는지는 알수 있을것이다.

1) 알약이 설치된 폴더와 파일에 대한 , 수정이라던가 ,  외부로부터의 접근을 금지시킨다.
2) 알약 서비스 프로세스에 대한 무단 접근을 금지시킨다.


1, 2번의 기능은   SSDT 후킹을 통해서 이뤄진다.
단순한 SSDT 후킹만을 시행하는것은 아닐테고  , 추가적으로 내부 함수를 더 후킹할것으로 추측된다.
다음은 알약의 자가보호기능을 켰을때 ,  제일 기본적으로 SSDT후킹이 수행되는 함수이다.


NtCreateFile

NtOpenFile

NtOpenProcess

NtSetInformationFile

NtSetSecurityObject

NtTerminateProcess

NtTerminateThread


뭐 함수 이름들도 대부분 직관적인 이름들이라 , 왜  저 함수들을 후킹하는지는 대략 짐작가능할 것이다.

저작자 표시 비영리 변경 금지
신고
by Sone 2009.09.07 22:16
| 1 |