반응형 Programming24 Processor Affinity사용하기 이번에는 Processor Affinity에 대해 알아보고 간단한 예제를 통하여 Processor Affinity를 사용해보겠다.먼저, ※ Processor Affinity란?- Process나 Thread에서 사용하는 작업을 지정된 CPU에서만 실행되도록 함. 예를들어, 쿼드코어를 가진 PC에서 계산기를 실행시킬때 Processor Affinity를 설정하여 원하는 CPU에서 프로그램이 동작하도록 할 수 있다는 말이다.Windows는 해당 기능 사용하도록 다음과 같은 API들을 제공한다. ※ SetProcessAffinityMask : 대상 Process를 특정 CPU에서 실행되도록 설정. BOOL SetProcessAffinityMask( HANDLE hProcess, DWORD_PTR dwProce.. 2018. 8. 6. DeviceIoControl을 이용한 Kernel / User 통신 프로그램 개인적인 프로젝트를 진행하며 DeviceIoControl를 이용한 통신방법에 프로그래밍 한 것에 대해 정리해보았습니다. 우선, 유저레벨 코드를 보겠습니다. ※ 코드 흐름 설명 - CreateFile(g_lpSymbolName,GENERIC_ALL,0,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL) : 통신할 디바이스에 접근합니다.- DeviceIoControl(hDev,IOCTL_TEST, g_TestStr, wcslen(g_TestStr), &result, sizeof(result), &dwSize, 0) : 제가 정의한 컨트롤 코드인 IOCTL_TEST와 디바이스에 전달할 g_TestStr를 전달합니다. 디바이스는 잘 전달받았을 때 &result로 결과값을 받습니.. 2018. 7. 24. VirtualProtectEx메모리 속성변경 size 특정 메모리의 몇 바이트만 메모리 속성변경하고 에러 핸들링을 싶었는데 이부분이 변경되지 않아 삽질이 시작했습니다....그러면서 알게된 내용들은 정리해보겠습니다 먼저, VirtualProtectEx API에 대해서 알아본다. BOOL WINAPI VirtualProtectEx( _In_ HANDLE hProcess, _In_ LPVOID lpAddress, _In_ SIZE_T dwSize, _In_ DWORD flNewProtect, _Out_ PDWORD lpflOldProtect ); - hProcess : 메모리 속성 변경 프로세스- lpAddress : 변경 메모리- dwSize : 변경메모리 size- flNewProtect : 변경할 메모리 속성- lpflOldProtect : 기존 메모리 속.. 2018. 5. 24. [x64 Windows]프로세스 보호기능 구현 집에서 쉬면서 주말동안 했던 코딩했던 것들을 정리해봅니다.본 포스팅 은 프로세스 보호기능 구현에 관련해 작성되었으며 드라이버 테스트환경은 Windows 7 x64에서 이루어졌음을 알립니다. 최근에 알게 된 프로세스 보호기능에 대해 간단히 알아보고자 한다. 소개할 방법은 통해 프로세스뿐만아니라 파일보호 레지스터보호 또한 가능하다. 이번에 소개할 프로세스 보호 방법은 ObRegisterCallbacks를 통한 방법이다. ObRegisterCallbacks는 Thread나 Process에 대한 핸들 작업이 이루어질 때 호출되는 콜백루틴를 등록하는 함수이다. 해당 방법은 x86에서 x64로 넘어오면서 Patch Guard의 존재로 SSDT나 KiSystemCall등의 후킹이 어려워졌는데 해당 방법은 MS에서 허.. 2018. 4. 30. 이전 1 2 3 4 5 6 다음 반응형