ISR Jump Templates

미친 감자님의 글 : IDT ISR jump template
Greg, James의 소스 : basic_int.c

오늘 아침에 날씨도 꾸물꾸물해서 이글루스를 돌다가 미친감자님의 글을 보게
되었다. 예전에 잠깐 Greg의 책에서 본 듯한 내용인데 기억이 희미해져서 다시금
살피게 되었다.

일반적으로 IDT Hook 할 때, Single IDT Entry를 대상으로만 할 경우에는 특정 IDT
엔트리의 주소를 Hook Func의 주소로 변환하고 Hook Func 내부에서 Original ISR
주소로 점프하도록 했었다. 그런데 보다 많은 인터럽트 아니 전체 인터럽트를 Hooking할
경우는 어떻게 되어야 하는가? 아마도 Hook Func 의 코드가 인터럽트의 갯수
만큼 필요할 것이다. 그래서 Greg이 소개한 것이 Jump Templates을 통해서 하나의
RootKit Func을 통해서 Hook하도록 한 것이다. 아래의 그림을 보면 이해가 빠를 것이다.
( 아래 그림은 짱께 사이트에 e-book으로 올라온 Greg의 책에 나온다. )

이 방법의 장점은 Multiple IDT Entry Hook을 할 경우 Hook Func을 위한 각각의 코드가
필요하지 않고 단순히 jump templates을 위한 공간만 필요하다는 것이다. jump templates 도
대단히 간단하다.
....
SAVED REGISTERS
STANDARD FAR CALL (ROOKKIT CODE ADDRESS)
RESTORE REGISTERS
FAR JMP (ORIGINAL EACH ISR ADDRESS)
요런 형태로 존재하면 되는 것이다.

미친감자님 말처럼 다른사람이 써놓은 것을 이해하기는 쉬워도 이런걸 처음에 알아내는
것은 정말 쉽지 않은 것 같다. 기본지식 + 잔머리 + 꼼수 + 내공 .... 등등이 있어야
이런걸 생각해 내지 않을까??? 아~ 고수의 길은 험하고도 멀구나...

ps. 아침부터 공부시켜주신 미친감자님께 감사드린다는 말씀 전하고 싶습니다. ㅋㅋ

by nerd | 2007/03/22 11:32 | Garage | 트랙백(1) | 덧글(3)


트랙백 주소 : http://nerd.egloos.com/tb/3066741
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from Leader &.. at 2007/03/22 19:15

제목 : 세상엔 똑똑한 사람들이 너무나 많다 ㅠㅠ
ISR Jump Templates 나도 더 열심히 공부해야겠다. 원본은 미친감자님 블로그에서 봤는데 더 잘 정리되어 있는 블로그를 발견해서 따로 정리해둠. ㅋ...more

Commented by somma at 2007/03/22 20:42
어디서 많이 본 그림이다 했더니.. rootkit 책에 있던 그림이었구나..
사실 이해하는건 쉽고 처음 알아내는건 어려운게 사실이지만...
이해했다고 해도 실제로 내손으로 만들어 보는것과 머리로 이해하는것은 많은 차이가 있어용...
숨어있는 복병이 시도 때도 없이 나타난다는...-_-;;
뭐든지 시간 되는 대로 이해한걸 구현해 보길..

ps. 요새 열심이네..ㅋㅋ
Commented by 미친감자 at 2007/03/23 20:15
그렇군요...저도 공부만 하고 있어서 걱정입니다. 직접 만들어봐야하는데....
Commented by 사특마녀 at 2007/03/24 01:13
우와~~~ 뭔진 모르지만.. 굉장히 어려워 보이는데요...

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶