Monthly Archive for 3월, 2008

Advanced Windows Debugging

Author : MARIO HEWARDT DANIEL PRAVAT
Level: ★★★ ( 3/5)
Continue reading ‘Advanced Windows Debugging’

x64 Architecture에 대한 이야기

x64 Architecture는 x86후속 Architecture 라는 사실은 누구나 하실겁니다. 롱 모드와 레거시 모드를 지원함으로서 하위 호환성도 지니고 있지요. (참고 : 64bit 롱 모드에 대한 이야기  ) 롱 모드를 지원하면서 새로운 많은 변화가 있었는데 가장 유심히 봐야할 부분은 아마도 Instruction과 Register 부분일 것입니다.
Continue reading ‘x64 Architecture에 대한 이야기’

FltGetFileNameInformation Fail에 관한 처리

FltGetFileNameInformation  함수는 Targe FileName을 구하는데 매우 유용하게 사용 할 수 있는 함수 입니다. 하지만 FltGetFileNameInformation 함수를 사용하다 보면 Fail을 리턴하는 경우가 생각 보다 상당히 많습니다. 
 그 ErrorCode 중 단연 많이 발생하는경우가 아마도 STATUS_FLT_INVALID_NAME_REQUEST 라는 Error Code 일것입니다. DDK Document의 내용을 보면 STATUS_FLT_INVALID_NAME_REQUEST에 과한 내용이 자세히 설명되어 있지요.
Continue reading ‘FltGetFileNameInformation Fail에 관한 처리’

Hooking에 관한 이야기

 최근에 유행했던 Virut 같은 File바이러스를 보면 실제로 Function의 Prolog를 변조하여  자신의 코드를 실행하는 것을 확인할 수 있습니다. 이러한 방법을 악용하는 것은 나쁘지만 이를 이용한 Hook Library를 만들면 꽤나 유용하게 사용할 수 있지요.
Continue reading ‘Hooking에 관한 이야기’

64bit 롱 모드에 대한 이야기

AMD 64 프로세서를 크게 2가지로 나누면 레거시 모드와 롱 모드로 나눌 수 있습니다. 레거시 모드는 기존 32bit과 동일하며 64bit을 사용하기 위해서는 롱 모드로 전환을 해야합니다. 롱 모드라는 녀석은 기존 레거시 모드에 비해 처리 bit수 말고도 많은 변화가 있었습니다.
Continue reading ‘64bit 롱 모드에 대한 이야기’