목록Study (40)
삽이 부서질 때까지 삽질
mini filter driver 스터디 - 미니 필터 드라이버 생성 및 기본 개념mini filter driver 스터디 - 디버깅 메세지 출력 및 파일 필터 스터디 자료 받는 곳https://github.com/xinfolab/mini-filter-driver-study 앞에서는 IRP를 이용하여 프로세스 접근을 차단했으면, 이번에는 프로세스 콜백으로 차단을 해보겠습니다. 프로세스 콜백 등록은 DriverEntry 에서 합니다. PsSetCreateProcessNotifyRoutineEx 는 MSDN을 참고합시다. https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k(NTDDK%2FPsSetCreateProcessNotif..
1. mini filter driver 스터디 - 미니 필터 드라이버 생성 및 기본 개념 이 글에선 1번 글을 다 읽고, 이해했다는 전제하에 진행이 됩니다.windbg 명령어 설명 및 프로젝트 생성과 같은 중복된 작업은 전부 제외합니다.위 글을 읽고 모르시면 덧글 또는 메일을 남겨주세요.메일이 훨씬 빠르게 답변 할거에요. 두번째 시작. https://github.com/xinfolab/mini-filter-driver-study 자료는 git에서 받고, print_study 프로젝트를 보시면 됩니다. 이번엔 windbg에 로그를 찍는 것과 특정 파일을 열기를 시도했을 때 막는 미니 필터 드라이버를 제작해보겠습니다.프로젝트 생성과 기타 등등은 전부 패스하고, 미니 필터 드라이버에선 main 함수가 Driv..
미니필터 드라이버 스터디용!!공부용이니 틀리거나 모르는 부분은 덧글, 메일, 카톡으로 주세요~ 카톡은 지인 한정이겠죠? ㅎ 환경입니다.--host--win10 x64vs2015sdk 1703wdk 1703 virtualKD 3.0git python 3.x(선택 사항)vcpkg (선택 사항) - boost 패키지 - curl 패키지 - sqlite3 패키지 - jsoncpp 패키지 - gtest 패키지 --guest--win10 x64virtualKD 3.0 미니 필터 드라이버 설치 파일 및 스터디 진행할 때 사용하는 모든 걸 올려 놓은 git 주소입니다.https://github.com/xinfolab/mini-filter-driver-study 가져가실 땐 출처를 남겨주세요. 먼저 프로젝트 생성해보죠...
템플릿 에러를 수정하니 이번엔 css가 적용이 하나도 안되어 있다... 하...산 넘어 산... 이번에도 에러를 봐보자!!에러는 콘솔에 친절히 떠있을 것이다. image, js, css 등 하나도 찾을 수 없다고 나온다... 자 이번에도 doc를 찾아보자http://flask.pocoo.org/docs/0.10/quickstart/#static-files 위에서 아래와 같은 내용을 볼 수 있을 것이다. Static FilesDynamic web applications also need static files. That’s usually where the CSS and JavaScript files are coming from. Ideally your web server is configured to se..
jinja2.exceptions.TemplateNotFound 웹도 처음 손대봤는데 처음 보는 flask로 뭔가를 하려니 하나도 안된다.. 하하하핳 저 에러로 검색해보면 가장 먼저 뜨는게 stackoverflow 글이다.누군가 친절히 링크를 해놨다. http://flask.pocoo.org/docs/0.12/quickstart/#rendering-templates 로 들어가서 해결해보셈 이라며! Flask will look for templates in the templates folder. So if your application is a module, this folder is next to that module, if it’s a package it’s actually inside your pack..
어쩌다 계기가 되서 utmp, wtmp parser를 만들어 봤는데요.윈도우에서 작동하도록 제작했어요. 이 파서는 uinx나 linux에서 사용자 계정 접속이나 로그아웃 등의 기록을 볼 수 있도록 해주는거에요. 로그 경로 utmp /var/run/utmp wmp /var/log/wtmp utmp는 w 명령어로 확인가능하며 현재 접속한 리스트를 바이너리 형태로 저장하고 있고,wtmp는 last 명령어로 확인가능하며 지금까지 접속한 모든 기록을 바이너리 형태로 저장하고 있어요. 이렇게 말이죠 ㅎㅎ 이걸 아래처럼 보여주도록 제작했어요. 사용법은 간단하게 파일명만 주면 알아서 파싱해요.불편점이나 개선점이 있으시면 덧글로 남겨주세요.[코드 수정도 환영이에요!!]수정해서 올릴게요!! utmp5 기준으로 작성되서 버..
업 캐스팅은 자식 클래스 객체가 부모 클래스 타입으로 변환되는 걸 업캐스팅이라고 한다. 솔직히 이렇게 말하면 잘 못알아 먹겠다...그래서 예제를 보며 간단히 설명해죠. 여기서 부모 클래스는 A 자식 클래스는 B 입니다.시선을 가지고 이해했더니 편해서 시선을 가지고 설명할게요. A 클래스 타입으로 a를 생성했죠. 그러니 저희의 시선은 A 를 보고 있다고 생각하겠습니다.그런데 B 클래스를 A 클래스에 대입했죠. 하지만 저희는 계속 A를 보고 있는 겁니다.시선은 A인데 B를 가지고 놀려니까 에러가 발생하는 거죠. 음...설명만으로는 난해할 수 있으니그림으로 표현할게요.시선이 A 즉, 파란 부분만 보고 있으니 B가 대입이 되어 있어도 B는 관심도 없는 거죠. 이해하기 쉬웠으려나 모르겠네요 ㅎㅎ;...
저번 글에서 이번글로 넘어오신 분들은 순서가 참... ㅋㅋㅋㅋ이럴건데 그냥 쓰고 싶은 것만.. 메소드 오버로딩은 cpp 개념과 같지만...java 버전으로 하나 만들죠 ㅋㅋㅋ 메소드 오버로딩은 같은 이름의 메소드가 있을 때 메소드의 파라미터가 다르면 같은 이름이여도 됩니다.같은 이름이여도 여러개를 만들 수 있는 거죠. 위 두개의 사진의 차이점을 아시겠나요??첫번째 사진은 int를 2번 호출하였고, 아래 사진은 int 한번, double 한번을 호출하였습니다.이유는 구분이 안되기 때문에 컴파일러가 int 형으로 인식하고 int 형으로 넣었기 때문입니다.즉, 구분이 힘들면 컴파일러에 정의된 값에 따라 호출한다는 것이죠. ㅎ 그리고 메소드 오버 로딩 주의 사항이 있습니다. 바로 메소드의 이름이 같고 인자의 개..
자바에도 c/cpp 처럼 while, for, do~while 이 존재해요.이번 글에서는 for만 설명하고 나머지는 구글링 하시기를...요청글이 오면 쓰겠어요!![덧글이 하나도 없는 세상 ㅎ] for(시작 ; 조건 ; 증감){//루틴} 이렇게 작동합니다.시작에는 초기화 해주는 값. int i = 0 이라던가 i = 0 이라던가 등등...사용자가 시작하기 원하는 값이 존재하겠죠.하지만 처음 시작하는 분들이 가장 많이 사용하는 i = 0 으로 시작해볼게요. 배열을 시작하면 가장 친근한 1 ~ 9 출력하기!c랑 다른 점이 있다면 배열에 .length를 하면 길이를 반환한다는 점??...하면서 신기했어요... [cpp로 하면 이렇게...] 뭐... 다시 java로 넘어와서 1차 배열은 아래처럼도 표현이 가능하죠..
전 글에서 언급했던 두 개의 도큐먼트 타입을 지원하는걸 만들어볼게요.맛보기 1 글에서 사용했던 프로젝트를 사용하니 없으시면 그 글을 보시고 만드시면 되겠습니다.[MDI 맛보기 1 글 보러가기] 먼저 글자 이외에 클릭하면 원을 찍는 새로운 도큐먼트를 만들어볼게요.MFC 클래스를 추가해주세요. 새로운 도큐먼트니 CDocument와 View가 필요하겠죠. 원을 저장하는 CircleDoc.h에서 CArray 를 만들어주고 CircleDoc.cpp 에서 초기화를 해줍니다. CircleView.cpp 에 왼쪽 클릭하면 발생하는 메세지 핸들러를 추가하고 좌표를 저장하는 코드를 작성합니다.그리고 OnDraw에 원을 출력하는 코드를 작성합니다. 리소스 뷰 전환 후 String에 IDR_Circle_Type 를 추가합니다..