[카테고리:] <span>Win32, MFC</span>

[카테고리:] Win32, MFC

[WinAPI] DLL Injection – 2. 코드 예제(VirtualAllocEx)

DLL 인젝션을 하기 전에 아래 사항을 확인해 주세요 주절 주절 썼는데, 제가 이때까지 실무에서 파악한 내용입니다. 부정확하거나, 놓친 내용이 있을 수 있습니다. 자, DLL 인젝션 코드를 알아보겠습니다.우선 인젝션 작업을 할 MFCApplication1는 관리자 권한이 있어야합니다.아래와 같이 UAC 실행수준을 requireAdministrator로 …

[WinAPI] DLL Injection – 1. 개념

이번 글에서는 DLL 인젝션의 간단한 개념에 대해 알아보겠습니다. DLL 인젝션은 기본적으로 다른 프로세스의 주소 공간 내에서 DLL을 강제로 로드시키는 기술로써, 의도치 않은 코드를 실행시키는 기술입니다.보통 DLL 인젝션은 다른 프로세스가 어떤 프로그램을 의도하지않거나 예상하지 않은 기능을 수행하게 만듭니다.일반적인 프로그램은, …

[WinAPI] CreateProcess, WaitForInputIdle 함수 사용 예제

이번 글에서는 CreateProcess와 WaitForInputIdle 함수를 사용하는 방법을 알아보겠습니다. 외부 프로그램을 실행하다 보면 컴퓨터가 느리거나 해서 실행이 늦게 될 수 있습니다.그럴때 WaitForInputIdle을 사용하셔서 코딩을 하시면 편합니다.저같은 경우 카카오톡이 느리게 실행됩니다. 아래 코드는 카톡 실행 후 메시지를 …

[WinAPI] FindWindow 사용법

이번 글에서는 FindWindow에 대해 알아보겠습니다. FindWindow를 사용하시기 전 아래 헤더파일을 선언하셔야합니다. FindWindow의 함수 원형은 아래와 같습니다. FindWindow의 첫번째 인자는 클래스네임, 두번째 이름은 캡션을 입력해야합니다.하지만 꼭 두개의 인자를 입력해야 하는건 아닙니다. 둘 다 NULL로 입력해도 되고, 둘 중 …

[WinAPI] IP Address 읽어오기

이번 글에서는 IP를 읽어오는 방법에 대해 알아보겠습니다. 자신의 PC에서 IP를 확인하는 방법은 명령 프롬프트에서 확인할 수 있습니다. 윈도우+R을 눌러서 cmd를 입력하시면 명령 프롬프트가 실행됩니다. 위와 같은 화면에서 ipconfig를 입력하시면 아래와 같이 PC에 설정된 IP 리스트가 표시됩니다. 이 IP …

[MFC] 대화상자 ClassName 변경

이번 글에서는 MFC 대화상자 ClassName을 변경하는 방법을 알아보겠습니다.Win32프로그래밍에서는 생성할때 ClassName을 설정해줘서 쉬운데, MFC는 손을 여기저기에 대야합니다. 우선 MFC 프로젝트 생성 해주신 뒤, 아래와 같이 리소스뷰에서 .rc를 클릭하면 우측에 RC노드라 하여 속성이 나타납니다. 여기서 MFC Mode를 False로 변경하셔야합니다. 그 …

[WinAPI] Dump 파일 생성하기 – SetUnhandledExceptionFilter

프로그래밍을 하다 보면 여러 에러가 나타납니다. 문법을 틀리거나 잘못된 인자를 사용하는 등의 컴파일 에러, 링크 단계에서 나타나는 링크 에러, 프로그램 실행중 나타나는 런타임 에러가 있을 수 있습니다. 컴파일, 링크에러의 경우 보통 개발도구에서 에러 메시지를 표시하기 때문에 프로그래머가 확인하기 용이하지만(그렇다고 바로 …

[WinAPI] GetNativeSystemInfo, 윈도우 OS 몇 bit인지 확인하기

오늘은 윈도우 OS가 몇 비트인지 확인하는 함수를 알아보겠습니다.우선 내 컴퓨터 우클릭 -> 속성에 들어가면 아래와 같이 몇비트 인지 확인 할 수 있습니다. GetNativeSystemInfo함수를 사용하면 손쉽게 알아낼 수 있습니다. 함수 원형은 아래와 같습니다. 해당 함수는 최소 Windows XP, …

[C++] _tcstol, strtol, wcstol 문자열 진수 변환

오늘은 문자열을 쉽게 2진수, 10진수, 16진수로 변경할 수 있는 _tcstol 함수에 대해 알아보겠습니다. 함수 원형은 아래와 같습니다. 오버플로우가 되면 LONG_MAX또는 LONG_MIN이 반환됩니다.3번째 인자(진수)가 2보다 작거나 32보다 크면 ERANGE , EINVAL을 반환합니다.해당 함수는 변환이 불가능하면 0을 반환합니다.  사용 예제는 아래와 같습니다. …

[Visual C++] 문자열에 대하여 – 유니코드, 멀티바이트

가끔 프로그램을 만들다 보면 코드상으론 한글을 잘 표시했는데, 실행시켜보면 한글이 깨져있는 경험들이 있을겁니다. 프로그램뿐만 아니라 파일에서도 분명히 한글로 저장했는데 메모장으로 열었을 때 한글이 저장되어있지 않은 경우도 있구요. 최근엔 프로젝트 생성하더라도 유니코드로 기본 설정 되는데 가끔 …