본문 바로가기

전체 글

(388)
Security Descriptors 보안 설명자(Security Descriptor)는 보안 오브젝트의 보안 관련 정보를 가지고 있다. 보안 설명자는 SECURITY_DESCRIPTOR 구조체로 구성되어 있다. 해당 구조체는 보안 정보와 관련되어 있다. 하나의 보안 설명자는 아래의 보안 정보를 포함하고 있다. 1. 오브젝트의 소유자와 그룹의 Security identifiers (SIDs)를 포함2. 특정 유저와 그룹의 접근/거부를 지정할 수 있는 DACL을 포함DACL? [https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa446597(v=vs.85).aspx]Discretionary Access Control List를 나타냄. 임의의 접근 제어 리스트이다. 리스트...해당 리스트의..
Minifilter - User Mode Communication 1. Filter Communication Port Object 보안을 고려하고, 다중 통신 채널을 구성하기 위해서, 미니필터 통신 포트(minifilter communication port)라는 새로운 오브젝트가 소개 됨.해당 오브젝트는 커널 유저 통신을 위해 사용된다. 커널 커널 통신은 현재는 지원되지 않고 있다. 하나의 포트는 보안 설명자(sd)가 있는 이름 있는 NT 오브젝트이다.필터 매니저는 새로운 오브젝트 타입인 FilterConnectionPort를 위와 같은 통신을 가능하기 위해서 만든다.필터 매니저는 이 새로운 오브젝트 타입을 만드는데, 어떤 미니필터가 로드 되기 전인, 드라이버의 시작 초기 루틴이 진행되는 동안에 만들어 진다. 커널 모드의 드라이버만 미니필터 통신 포트를 생성할 수 있음..
백준 - [동적계획법] 1463 보호되어 있는 글입니다.
IRP, I/O Stack 관련 내용 정리 디바이스를 관리하기 위한 드라이버들이 존재한다. 이 드라이버들이 디바이스를 컨트롤 하는데 참여한다는 의미로 드라이버 마다 디바이스 오브젝트를 생선한다.그리고 이 디바이스 오브젝트들이 순서를 가지고 쌓여서 디바이스 스택이 된다.그러면 이제 하드웨어나 드라이버 통신을 위해서 어떻게 구성되어 있는지 이해한대로 정리해보려 한다. 윈도우에서 드라이버나 하드웨어를 통신 할 때, I/O Manager 가 참여하게 된다. 그 이유는 시스템 상에서 드라이버를 파일로 취급하여서 파일 입출력을 통해서접근을 하는데, 파일 입출력은 I/O Manager[관리자]가 제공하기 때문이다.응용프로그램에서 드라이버에 접근하여, 하드웨어를 제어한다고 생각해 본다. [응용프로그램] — [파일 입출력 드라이버에 대한]-----> [I/O M..
백준 - [스택] 1874 보호되어 있는 글입니다.
조합 알고리즘 조합은 n개 중에 r개를 뽑는 경우의 수를 말한다.순서를 생각하지 않고 단순히 뽑는 경우의 수! 사람 자리 선택 문제 같은 경우도 이와 비슷한데, 5개의 자리 중에서 4명의 사람이 앉는 경우의 수는?이라는 문제가 존재한다고 생각하면, 5개중에서 4개를 선택하는 경우의 수라고 생각하면 된다.이때 보통 수학에서 라고 표현을 한다. 그러면 이를 컴퓨터에서는 어떻게 표현할 것인가가 문제인데... 위와 같이 접근을 한다고 한다. 5개중에서 4개를 고를 때 케이스를 이렇게 나눈다.1. A를 선택 해놓고 난 후, 3개를 선택 ==> A가 선택이 되었으니 선택할 수 있는 범위도 줄어들고, 선택해야 할 갯수도 줄어 듬==> 2. A를 제외 해놓고 난 후, 4개를 선택 ==> A가 제외 되었으니 선택할 수 있는 범위는 줄..
C++ Vector 사용 vector 사용법 정리 문제 풀면서 필요한 부분과 함수 사용 정리 Assign1234567891011121314151617181920212223242526272829303132333435363738#include #include using namespace std; int main(){ std::vector first; std::vector second; std::vector third; /* * assign 할당 방법 3가지 */ //assign(num, value)first.assign (7,100); // 7 ints with a value of 100 std::vector::iterator it;it=first.begin()+1; //assign(begin_iterator, end_iterato..
Driver Object , Deivce Object 연관성 및 함수 정리 디바이스 스택과 디바이스 오브젝트, 디바이스 드라이버는 다음과 같은 연관성을 가진다. 위와 관련되어 있는 함수를 정리 123456789NTSTATUS IoCreateDevice( _In_ PDRIVER_OBJECT DriverObject,/ _In_ ULONG DeviceExtensionSize, _In_opt_ PUNICODE_STRING DeviceName, _In_ DEVICE_TYPE DeviceType, _In_ ULONG DeviceCharacteristics, _In_ BOOLEAN Exclusive, _Out_ PDEVICE_OBJECT *DeviceObject);Colored by Color Scriptercs PDRIVER_OBJECT : 호출자인 드라이버 오브젝트의 포인터 값 Devi..