본문 바로가기
카테고리 없음

[ROOTKIT #5] Symbolic Link

by dladbru 2014. 6. 22.

유저모드 프로그램이 디바이스를 쉽게 찾도록 디바이스 이름에 Symbolic Link 를 걸어 줍니다.

옵션사항이지만 다른 룻킷 코드를 볼때 이해에 도움이 되겠죠?

지난 시간에 디바이스 객체를 만들때처럼 UNICODE_STRING 구조체를 만들고

IoCreateSymbolicLink 함수를 호출하면 됩니다.

이제 아무 일도 하지 않았던 MyUnload 함수에서 IoDeleteSymbolicLink 와 IoDeleteDevice 를

호출해서 적절한 청소작업을 하도록 수정합니다.







[ 코드 해석 ]


 

줄번호를 기준으로 해석을 달아봅니다.

 

6   디바이스 SymblockLink 이름을 MyDevice 로 정합니다.

8   UNICODE_STRING 타입의 deviceLinkUnicodeString 변수 선언

20~21   RtlInitUnicodeString 함수를 호출하여 UNICODE_STRING 구조체를 만듭니다.

36~37   IoCreateSymbolicLink 함수를 호출하여 디바이스 링크를 만듭니다.

39~43   링크 생성 실패시 디바이스 객체를 청소

50~53   링크와 디바이스를 청소

 

반응형

댓글