분류 전체보기 548

C# 키보드 후킹 (샘플)

Just hook! 첨부된 파일을 먼저 확인하시라. 컴파일을 수행하고 Hook! 버튼을 누르면 해당 폼에서뿐만 아니라 전체 윈도우에서 delete, tab, esc 키 등이 입력되지 않는 것을 확인할 수 있다. (alt + tab 등도 tab키가 입력되는 조합이므로 입력되지 않는다) 실제 코드를 살펴보자. (Form1.cs 참조) KeyboardHooker의 사용 방법은 실로 간단한데, 단순히 KeyboardHooker.HookedKeyboardUserEventHandler 딜리게이트를 처리할 수 있는 이벤트를 만들고, 이벤트 핸들러를 KeyboardHooker.HookedKeyboardUserEventHandler에 등록하면 된다. private void Form1_Load(object sender, ..

Dumpbin - Checking Your Application Compiled Platform (x86 vs x64)

dumpbin is a program in Visual Studio Tools that helps you to display information in binary file. I find it useful to check whether a dll is build for x86 or x64. Corflags is good for checking .exe, and soon, you will realize that it is not effective on checking dll files. Especially for unmanaged dll, you will see this error message corflags : error CF008 : The specified file does not have a va..

Numa의 이해

오늘은 Numa(Non-Uniform Memory Access) 아키텍처에 대해 알아보도록 하겠습니다. 하드웨어가 발전하면서 하나의 메인보드에 여러개의 CPU, 버스, 메모리 컨트롤러를 구성할 수 있게 되었습니다.Numa는 간단하게 CPU와 메모리가 한 Set를 이루는 것을 의미합니다. [그림1] Numa 관계도 그림 1을 보면 Processor와 Memory 가 하나의 그룹을 이루며 각 그룹은 Numa Node라고 불립니다.하나의 Node는 CPU와 Memory가 Pair로 구성되어 있으며 Bus를 통해 각각의 Node는 연결되어 있습니다.그럼 1번 Node를 기준으로 하여 각 용어를 설명하도록 하겠습니다.로컬 메모리 - 1번 Node의 메모리를 의미합니다.외부 메모리 - 2, 3, 4번 Node의 메..

디자인 패턴 - Adapter 패턴

Adapter(적응자) Adapter?— Adapter는 개조시키다 라는 의미로 직류 10볼트의 컴퓨터를 교류 100볼트로 환경에 맞게 바꿔서 사용가능하게 하는것을 말한다.— 프로그래밍에서의 Adapter은 이미 제공되는 인터페이스를 다른 클래스에서도 재사용할수 있도록 바꿔주는 디자인패턴이다.Adapter 의 의도— 클래스의 인터페이스를 사용자가 기대하는 인터페 이스 형태로 적응(변환)— 함께 동작시킴— 다른이름 : 래퍼(Wrapper) 어떠한 장치가 있을 때 다른 장치에 도움을 받아야 할 때 그 장치간에 호환성이 있어야 한다.인터페이스를 우리가 사용할 수 있는 인터페이스를 바꿔주는 장치가 아답터 이다.주된 개체가 사용할 수 있는 인터페이스에 맞게끔 다른 클래스를 이용해서 주된 개체가 사용할 수 있는 인..