서브클래싱, 슈퍼클래싱, PE포멧, 후킹 GetKeyState 메세지 입력 시점의 키 상태를 조사 GetAsyncKeyState 메세지 처리 시점의 키 상태를 조사 서브클래싱 : 윈도우 프로시저로 전달되는 메세지를 중간에 가로채는 기법. 윈도우 프로시저만 교체한다. 통과 : 관심 없는 메세지는 윈도우 프로시저로 전달 return CallWindowProc 직접 처리 : 원하는 메세지는 .. 컴퓨터 공부/Win32 API 프로그래밍 2009.09.30
[5월 12일 2교시] 전역 후킹(미완성) 후킹 메세지를 감시. 해당 소스코드의 접근권한을 가지지 않고 운영체제나 응용 프로그램의 행동양식을 바꾸거나 증진시키기 위해 사용되는 기술이다. DLL문제 연결 DLL마다 훅 서버 정보, 훅 핸들 값이 달라진다. 훅 서버 핸들 값은 모든 DLL에서 일정해야 한다. SetWindowsHookEx문제 hModule이 필요하며 훅 .. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.12
[5월 12일 1교시] DLL 동적링크 실행 중에 라이브러리에 있는 함수를 호출 실행 파일의 크기가 작아짐. DLL 파일 필요 장점 한 코드를 여러 프로그램이 사용 프로그램 크기가 작아짐 리소스 교체 가능 디버깅 용이 혼합 프로그래밍(Basic등) 가능 단점 DLL없으면 실행 불가능 버전이 교체되었을 경우 기존 프로그램 실행이 안될.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.12
[5월 11일 3교시] 동기화 2 이벤트 사건이 일어났음을 알려주는 동기화 객체. 쓰레드 간의 작업 순서나 시기를 조정하기 위해 사용. HANDLE WINAPI CreateEvent(__in_opt LPSECURITY_ATTRIBUTES lpEventAttributes, __in BOOL bManualReset, __in BOOL bInitialState, __in_opt LPCTSTR lpName); 참고주소 : http://msdn.microsoft.com/en-us/library/ms682396(VS.85).asp.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.11
[5월 11일 2교시] 동기화 1 경쟁 상태 : 멀티 쓰레드에 의해 시간이나 순서가 의도하지 않게 혹은 치명적으로 결과가 나오는 경우. -> 동기화로 문제 해결. Critical Section(크리티컬 섹션) 공유 자원의 독점을 보장하는 코드의 한 영역. 한 프로세스 내에서만 사용 가능하다. 공유자원을 얻기 위해 대기할 때 CPU시간을 포기한다. void WI.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.11
[5월 11일 1교시] 멀티 쓰레드 2 CreateProcess 함수는 프로세스를 생성한 후 곧바로 리턴. - FindWindow로 윈도우 핸들을 찾지 못함. DWORD WINAPI WaitForInputIdle(__in HANDLE hProcess, __in DWORD dwMilliseconds); 참고주소 : http://msdn.microsoft.com/en-us/library/ms687022.aspx 초기화가 완료될 때까지(사용자의 입력을 대기할 수 있을 때까지) 기다림. 리턴 : 성공.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.11
[5월 8일 3교시] 메모리 2 + 멀티 쓰레드 1 Memory Mapped File 파일을 마치 메모리인 것처럼 사용하는 기법 HANDLE WINAPI CreateFileMapping(__in HANDLE hFile, __in_opt LPSECURITY_ATTRIBUTES lpAttributes, __in DWORD flProtect, __in DWORD dwMaximumSizeHigh, __in DWORD dwMaximumSizeLow, __in_opt LPCTSTR lpName); 참고주소 : http://msdn.microsoft.com/en-us/library/aa366537.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.08
[5월 8일 2교시] 메모리 1 Win32 메모리 구조 16비트 환경 메모리 구조 - 8088/86 : 최대 1메가, segment/offset - 80286 : 1메가 + 15메가(보호모드에서만 사용가능) 80386(32비트) - 최대 4G 메모리까지 관리 가능. 가상메모리 메모리 + 하드 디스크 페이징 파일. 페이지 단위(약 4K)로 메모리 관리. 가상 주소 공간 -> 페이지 테이블 -> 물리 .. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.08
[5월 8일 1교시] 시스템 정보 2 시스템 정보 int WINAPI GetSystemMetrics(__in int nIndex); 참고주소 : http://msdn.microsoft.com/en-us/library/ms724385(VS.85).aspx 윈도우즈 화면 구성이나 설정 상태에 대한 수치값을 얻는다. nIndex : 얻고 싶고자 하는 정보. 리턴 : 얻는 정보의 수치값. BOOL WINAPI SystemParametersInfo(__in UINT uiAction, __in UINT uiParam, __inou.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.08
[5월 7일 3교시] 시스템 정보 1 void GetSystemInfo(LPSYSTEM_INFO lpSystemInfo); 시스템 정보를 얻어오는 함수 SYSTEM_INFO 구조체 내용 : http://msdn.microsoft.com/en-us/library/ms724958(VS.85).aspx 컴퓨터 이름 조사 BOOL WINAPI GetComputerName(__out LPTSTR lpBuffer /*버퍼*/ , __inout LPDWORD lpnSize /*크기*/); 컴퓨터 고유 이름을 얻는다. 참고주소 : http://msdn.microsoft.com/.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.07