|
요즘 들어 바이러스나 스파이웨어같은 녀석들도 커널 드라이버를 통해서 시스템콜을 후킹하거나
커널 오브젝트를 수정하거나 하는 일들을 자주 볼 수 있습니다. 이런 기술들에 대해서 블로그를 통해서 조금씩 시간날때 마다 얘기해 보려고 합니다. 원래 사내 교육용으로 문서를 만들다가 .. 걍 블로그에도 함께 올리는 거구요 ^^ 읽고 조금이나마 도움이 되었다면 트랙백이나 댓글 팍팍 달아주셈. 호응이 없으면 안 할지도 몰라요 :-) 또한 소스코드나 문서(?) 는 맘대로 사용해도 좋습니다만 주인이 바뀌지만 않았으면 합니다. 서로 얼굴 붉힐일 없으면 좋겠네요. 1탄 - 개발 환경 구축 DDK 드라이버개발을 위해서는 DDK 가 필요하다. DDK 는 드라이버 개발을 위해 필요한 헤더파일이나 라이브러리들을 제공하는데 드라이버 개발을 위해 반드시 DDK 가 필요한 것은 아니다. 필요한 헤더나 라이브러리를 직접 만들 수도 있다. 그러나 결코 영장류의 사고능력을 가진 사람이라면 선택하지 않을 방법일 것이다. (예로 holy_father 라는 유명한 해커는 DDK 를 pascal 로 포팅해서 Delphi 로 드라이버를 만들기도 한다.) 이 문서에서는 최신 DDK 버전인 windows 2003 sp1 (3790) 을 사용한다. 최근에는 MS 에서 다시 DDK 를 공짜로 다운로드 받을 수 있도록 한다고 하니 알아서 다운받아서 설치하기 바란다. 개발 환경 구축 Driver 는 기본적으로 command line utility 인 build 명령을 통해 Makefile, sources 파일을 참조해서 빌드를 한다. 이는 통합 개발 환경(IDE)하에서 개발을 하던 일반 개발자들(특히 윈도우 계열에서)에게 매우 불편한 환경이 아닐 수 없다. Visual studio 를 통해서 DDK 의 빌드 환경을 만드는 방법에는 여러 가지가 있는데 - driver studio 를 이용하는 방법 - 월터 오니 아저씨의 WDM wizard - Vs 의 옵션을 수동으로 바꿔서 만드는 방법 - Ddkbuild 등이 있다. 개인적으로 DDKBuild 가 가장 훌륭하다. 이 문서에서는 DDKBuild 를 이용한 개발환경을 사용할 것이다. http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm DDKBUILD 는 위의 링크에서 받을 수 있으며 단순히 배치 파일이다. 이 글을 쓰고 있는 현재 최신 버전은 3.13 이다. 다운로드 한 DDKBUILD 를 압축을 풀고 vs .net 이 참조 가능한 패스에 복사한다. (e.g. C:Program FilesMicrosoft Visual Studio .NET 2003Vc7in) DDKBUILD 에게 사용할 DDK version 을 알려주기 위해 약간의 편집을 해야 한다. ![]() 이것은 DDKBUILD 에게 Windows 2003 Server 또는 W2K3SP1 DDK 환경을 사용하겠다고 알려주는 것이며 경로는 알아서 설치경로를 적어주면 된다. 자세한 내용은 홈페이지에서 확인하기 바란다. ![]() ![]() 그림 처럼 메이크 파일을 생성하고, 명령줄을 입력하면 된다. 참고로 드라이버는 일반 어플리케이션과는 달리 debug build/release build 라고 하지 않는다. Debug build ----- checked build Release build ----- free build 드라이버를 release build , 즉 free build 로 만들기 위해서는 ddkbuild –WNET free . 을 해주면 될 것이다. 주의할 것은 free 또는 checked 뒤에 . (콤마) 를 반드시 찍어줘야 한다.
|
카테고리
< 링크 >
게시판 욕해도 됩니다. ㅋㅋ 심심이 - springnote zesrever 의 지식펌프 까마구님 cpplog Woof 님 maystyle 사파고수 재학사마 서우석님 x-Type 이기탁님 정성태님 신영진님 이명헌경영스쿨 haskell 언어 이재원 e-campus codian.net zendlinde - 건즈온라인개발자 xecode.net 이동우님 위키 왕멀-게임개발자로살아가기 삽질하는 플머-민성기님 블로그 검색엔진 첫눈 블로그 Kei 의 바이러스 세상 mat 님 블로그 신경준님 블로그 윤훈남님 블로그 blog.hsd.or.kr IDA 메인 아키텍트 게임개발-sky team 송상무님 세율이 민쓰 hackaday.com 해킹속임수의 예술 네이버-임베디드 카페 정원교 zealot님 serious-code 홍가일보 doronh peterwie - UMDF leader sysinternals sysinternals 뉴스레터 MS r&d bkchung blog MS 서진호님 window communication 최근 등록된 덧글
잘 보고 가요.. :)
by :) at 10/30 워 이거때문에 해맸는데 .. by 일리 at 10/26 진정한 take(공유)!!!!.. by rees at 10/03 그러게 술한잔 해야 하는.. by somma at 09/25 쫑호~ 잘 지내고 있는감?.. by somma at 09/25 안녕하세요 잘 지내시죠?.. by 김종호 at 09/22 지만이네나 여기나 역시.. by 양군 at 09/22 필코 마제는 기계식인데.. by 욱 at 09/07 그냥 할당에 비해서 걍 3.. by Hide_D at 09/01 으흠.. 해보시고 알려.. by somma at 08/20 최근 등록된 트랙백
폴포츠 꿈은 이루어지다
by 연예의 인연으로... DDK VS에 연동하기~! by 박한범님의 이글루 [PE]DOS대가리의 .. by 미친감자의 BLOG 십년차의 생각 by sugiii's me2DAY 십년차의 생각 by sugiii's me2DAY Windows Handle by MalwareLAB [디버그랩] Windows .. by NaggingMachine jjjismy의 생각 by jjjismy's me2DAY Vista의 EncodePoint.. by Woof's EncodePointer 함수 .. by Woof's 이글루링크
미친병아리가 삐약삐약
김명신의 즐거운 하루 소스코드위를 걷다..... zoops 이야기 ▒ 제닉스의 사고뭉치 ▒ 餘分D: physics and fun Just for fun~ 달리다. 그리고 날다. 게임회사 이야기 ~★~ 우하하!!~ 프로.. 헐랭이와 IT보안 Alphageek 견우의 블로그 from __future__ impor.. Sodécho 내일은 내일의 바람이 분다. 델파이로 만드는 검색엔진 The second story ::거듭나기:: kkamagui의 프로그래.. 루오니의 집 개발자 서씨 Zealot Xeraph@NCHOVY SecurityCode Bellevue Project Coderant의 보안과 전략 Jania's Blog 미친감자의 LOG 그 냥반의 기술 공간 art.oriented mocca Strategy Thinking 이글루 파인더
라이프로그
태그
|