커널 영역에 메모리 할당 받기
글쓴이: kese111 / 작성시간: 목, 2009/06/25 - 5:59오후
안녕하세요.
유저 권한에서 커널을 가지고 놀려고 하는데 SDT 테이블을 후킹하려고 하고 있습니다.
( ZwSystemDebugControl 을 사용해서... )
문제는 내가 만든 함수를 커널에 위치시키는걸 요리조리 생각해봐도 어렵다는 점입니다...;
드라이버단의 경우 커널이 export해주는 ExAllocatePool를 사용해서 쉽게 nonpaged메모리 영역을 얻을 수 있습니다.
똑같은 방법을 적용해보려고 생각해보니 ExAllocatePool는 이미 커널 메모리에 있어서 미천한 유저권한의 신분으로 접근할 수가 없다는 생각이 들었습니다.
그래서 에라모르겠다 하고 그냥 가상메모리 주소를 덮어씌우니 그냥 재부팅 되어버립니다.
CR3 의 WP 문제도 아닙니다. 왜냐면 그 전에는 원래 SDT 테이블을 구해서 덮어씌워주는 작업을 하던 곳에서 NtQueryInformationProcess가 걸릴때만
ssdt_list의 주소에 제가 만든 함수의 주소를 넣었기 때문입니다.
애초에 40만 번지의 주소는 실제 메모리가 아니기 때문에 문제가 생길 것은 자명한 일이었습니다...
아무리 생각해봐도 방법이 떠오르지 않습니다.
사실 제 식견이 좁고 얕아서 뒤져볼 건덕지도 없기 때문이지요 :D
해서 미남, 훈남들이 서식하는 이 곳에 질문을 던져봅니다;
답변을 달아주시는 분은 김태희와 결혼하게 되실 겁니다.
그럼 오늘도 좋은하루 좋은 일 가득하시길 바라며 글 줄입니다.
Forums:
댓글 달기