|
드라이버 쪼물딱 거리기 1탄
최대한 간단하게 코드 골격이나 필요한 것들에 대해서만 설명하려 했는데 이게 쉽지가 않네요. 설명해야 할 것도 많고, 작성해야 할 코드도 많고.. -_-;; 일단 그러려니 하고 넘어갑시다. 나중에 하나 하나 만들어 가죠 뭐 ~~ ㅎㅎ 저번에 게임 보안 세미나 갔더니 메모리 디펜더를 써라 뭐라 말씀들 하시던데.. 3탄에선 기본 적인 SSDT 훅을 이용해서 메모리 보호(?) 비스무리한걸 한번 만들어 보도록 하지요 ^^ ddkbuild 가 빌드하고자 하는 source 들의 경로에 공백문자나 한글이 들어있는 경우 빌드가 잘 안되는 경우가 있습니다. 프로젝트를 C:kdp 처럼 공백이나 한글이 들어있지 않는 경로를 사용해 주세요. 또한 DDK 의 설치경로 또한 한글이나 공백이 있는 경우 문제가 됩니다. 주의하세요 :-) 개발 환경도 만들어 졌으니 이제 불후의 명작 "hello world" 를 만들어 봅시다. 드라이버 프로젝트 소스 코드 ==> bkdp1.zip 드라이버 로더 ==> FxLoader.zip 먼저 드라이버 빌드를 위해서는 Makefile 과 sources 파일이 있어야 하는데 DDK sample 에서 적당한 것 하나를 복사해 오자. 아래는 sources 파이릐 예이다. ![]() 대충 보면 뭘 해야 할지 감이 올 것이다. 전혀 이해가 가지 않는다면 build 명령에 대한 DDK help 를 먼저 대충 읽어보자. ![]() 프로젝트에 drv_entry.cpp 파일을 하나 추가하자. 파일의 이름은 sources 에서 등록한 파일이름이다. 예제 코드는 최소한의 driver 골격이다. 자세한 내용은 다른 훌륭한 책들이 많으니 그런 책들을 참고하자. 아무튼 빌드가 되면 실행을 해보자. 드라이버는 일반 실행 파일이 아니기 때문에 좀 다른 방법으로 로딩을 해주어야 한다. Driver code 내에서 출력한 내용(디버그 메시지)을 보기 위한 툴을 설치해야 한다. Sysinternals 에 가서 DebugView 를 받아서 실행하길 바란다. 드라이버를 로딩하는 프로그램은 fxLoader.exe 를 사용하면 된다. (내가 만든 거지만 오래 전에 만든 거라 기억이 잘 안난다. ㅠㅠ 이넘의 휘발성 두뇌구조때문에...) 뭐 UI 는 예쁘지 않지만 그런대로 쓸만하다. system service 내용도 볼수 있고.. PE 분석기능도 있으니 예뻐해 주셈 :-) 굳이 나를 못 믿어서 이걸 쓰기 싫다면 osronline 이나 그런데 가면 loader 들이 많이 있으니 사용하기 바란다. 어찌되었든 간에 fxLoader.exe 를 실행하면 아래와 같은 화면이 보일 것이다. ![]() Open 버튼을 눌러서 생성된 sys 파일을 로딩하고, Init driver loader -> Register as Service -> Start Service -- Stop Service -> UnRegister Service 순서로 클릭하면 된다. Issue command 나 Init event 버튼은 누르지 마세요.. C 드라이브가 포맷됩니다. 호호호 ^.^ FxLoader 를 순서대로 실행하면 Debug View 에 hello 어쩌구 하는 메세지가 출력되는 것을 확인 할 수 있을 것이다.
|
카테고리
< 링크 >
게시판 욕해도 됩니다. ㅋㅋ 심심이 - 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 이글루 파인더
라이프로그
태그
|