전체 글169 [ROOTKIT #3] "Hello, world!" 드라이버 ################################################강의는 City님의 강의를 기반으로함을 재차 말씀드립니다.################################################ 어느 프로그래밍이나 단골로 나오는 "Hello, world!" 드라이버를 만들어 봅니다.우선 첨부한 InstDrv.zip 을 다운받아서 자신의 룻킷 폴더에 풀어주세요. 자신의 c 소스 파일을 열어서 아래와 같이 코딩하고 저장합니다. (제 경우는 empier.c)코드를 올릴까 하다가 코딩하면서 얻는게 있을거라는 생각에 이미지로 올렸습니다 ;) [ 코드 해석 ] 대문자는 이미 선언된 데이타 타입이나 상수, 매크로에 해당합니다.예) VOID, NTSTATUS, IN PDRIVER_O.. 2014. 5. 29. [ROOTKIT #2] 드라이버 제작을 위한 필수 파일들 프로그램이 실행되는 영역에는 크게 두가지가 있습니다.사용자 모드(User mode 또는 Ring 3)와 커널 모드(Kernel mode 또는 Ring 0)쉽게 생각해서 사용자 모드는 학생이고커널 모드는 선생님이라고 보심 이해가 쉽습니다.커널 모드에서 내 코드가 실행되어야 여러가지 특권을 누림으로써 컴퓨터 시스템을내 마음대로 조정할 수 있습니다. ################################################몇년전 글이다보니 운영체제가 진화하면서 아래에서 설명하는 DDK는 비스타부터 호환이 잘안되게 되었으니 WDK로 다운받아주세요~ 네이버에 Windows Driver Kit이라 검색하시면 뜹니다.################################################ .. 2014. 5. 28. [ROOTKIT #1] RootKit이란? 룻킷이란 컴에서 젤로 중요한 루트(Root) 디렉토리에 접근하여 여러가지 작업(?)을가능하게끔 하는 작지만 유용한 프로그램의 집합체(Kit)입니다.가장 중요한 특징은 "검색되지 않는 것" 즉 코드나 자료를 숨기는 것입니다.파일이나 폴더를 숨기기도 하고 원격조정이나 패킷 훔쳐보기 등등... 크게 두가지 기능이 있는데 하나는 원격조정입니다.파일을 제어하거나, 재부팅을 초래하거나 (심지어 BSOD 까정 ㅜ) ...또하나는 훔쳐보기입니다.패킷엿보기, 키보드로거, 이멜엿보기 등등 ;) 룻킷의 기본원리는 "수정" 입니다.수정할 수 있는 곳을 몇군데 보면; 1. 바이너리 코드 우리가 치엔으로 바이너리 코드를 수정해서 원래 소프트웨어가 해야할실행을 수정하듯이 이런 작업을 패치한다고 합니다.심지어 마소도 핫패치라고 해서.. 2014. 5. 28. [RootKit] Hook?? User-Mode HookingIAT(Import Address Table) Hooking: IAT 에 적혀있는 API 의 주소를 자신의 함수주소로 바꾸고 자신의 함수 끝에 다시 원래 API 주소로 돌려주는 방식. 가장 일반적으로 바이러스에서 사용하는 기법. Inline Function Hooking (Detour Hooking): 사용할 API 의 첫 5바이트를 자신의 함수주소로 Jmp 하는 코드로 바꾸고 자신의 코드에서 다시 원래 API 의 바뀐 코드를 수정해주고 API 시작위치로 돌려주는 방식. IAT 후킹보다 지능적이여서 찾아내기가 쉽지 않다. 요새 많이 등장한다. Kernel-Mode Hooking (루트킷)SSDT(System Service Descriptor Table Modification.. 2014. 5. 25. 이전 1 ··· 26 27 28 29 30 31 32 ··· 43 다음 반응형