본문 바로가기
반응형

Security33

IRQL(Interrupt Request Level)이란?(1) ※ IRQL(Interrupt Request Level)이란? 커널 스케줄러가 cpu사용을 인터럽트가 발생했을 때 실행 우선순위 ※ 인터럽트 기준 간단하게 우선순위 높은 놈이 들어올 경우 cpu실행을 양보한다. IRQL 우선순위와 설명은 다음의 그림과 같습니다. - IRQL 0 :PASSIVE_LEVEL 보통의 쓰레드 가장 낮은 우선순위를 갖기때문에 모든 인터럽트 레벨에 의해 선점당할 수 있습니다.. - IRQL 1 : APC_LEVEL(비동기 프로시져) 쓰레드와 관련된 인터럽트 루틴 - IRQL 2 : DISPATCH_LEVEL, IRQL이 3이상의 값을 가지는 루틴에서 우선순위가 낮은 루틴을 위해 현재 실행에 꼭 필요한 기능만을 수행하고 다른 기능들은 DPC(Deferred Procedure Call.. 2017. 8. 3.
DeviceObject란?(2) - DeviceTack편 이해를 돕기위해 http://jeep-shoes.tistory.com/29 DeviceObject글을 참고해주세요. ※디바이스 스택 - 하나의 장치관련된 Device들이 구성한 스택 ※PDO(Physical DeviceObject), FDO(Functional Device Object), FilDO(Filter Device Object) - PDO : 상위의 디바이스 스택에서 만들어진다. - FDO : 디바이스에서 만든 DeviceObject. - FilDO : 기능층을 기준으로 상/하위치에서 추가(?)적인 기능을 수행. ->이쪽에 관심이있어 공부를 시작했음. ※ DeiviceObject구성 - Device Object구조체의 Attached Devoce : 바로 위 상위 DeviceObject 주소(D.. 2017. 7. 30.
DeviceObject이란?(1) 루트킷 코드를 작성하며 정식적으로 드라이버 개발공부를 해야 한다고 생각들어 유투브 강의내용과 책에서 공부한 내용들을 간단하게 정리해봅니다. ※DeviceObject란? -IO manager에 의해 생성되는 구조체로써 해당 디바이스의 정보 (드라이버 오브젝트, 디바이스 스택 연결정보, IRP포인터등)를 담고 있다. => 단순히 운영체제에서 디바이스들과 드라이버들을 관리하기 위한 Object로 보임(제 생각입니다) -하나의 장치(HDD,USB)에는 여러 개의 DeviceObject로 이루어진 DeviceStack있다. ※Device Object & Device Stack전체그림 -장치(HDD,Print)에는 디바이스 스택이 존재하며 내용에는 DeviceObject들을 포함한다. DeviceObject는 IO.. 2017. 7. 30.
커널진입(INT 2E,SYSENTER)-전체적인흐름 처음 페이징을 공부하게 된 계기는 바로 커널진입에 대해 공부하면서 였습니다. 커널진입중에 INT 2E를 사용하는 방법이 있는데 Native API를 Call하기 이전에 과정중 GDT라던지 Descriptor등에 대한 개념이 필요했기 때문입니다. 그렇다면 이번 글에서는 자세한 내용을 다루기에 앞서 커널진입의 전체적이 흐름에대해 파악하겠습니다. Windows 2000이전버전에서 커널진입을 위해서 INT 2E를 사용하여 IDT(Interrupt Descriptor Table)을 이용하여 접근하였습니다. 하지만 위에 그림에서 보시다시피 INT 2E의 경우 KiSystemService()를 사용하기 위한 중간과정이 필요합니다.때문에 Windows2000이후 SYSENTER를 이용하여 훨씬 더 Native함수호출이.. 2017. 6. 23.
반응형