본문 바로가기

전체보기

동기화 Event, WaitForSingleObject 맞추기 프로그램을 만들다보면 비동기, 동기 이런 말들이 나온다. 동기를 맞춘다는건 난 어떠한 일들에 대해서 순차적으로 할거야 ex) 1개의 프로그램에서 할 수 있는 일들 비동기라는건 난 어떠한 일들에 대해서 들어오는 순서대로 할거야 정도로 표현해도 될거 같다. ex)1개의 프로그램에서 다른 하나의 루프를 만들어 다른일을 처리 할 수 있게 만드는 일 #include #include using namespace std; HANDLE hEvent = NULL; HANDLE hThread_1 = NULL; HANDLE hThread_2 = NULL; DWORD WINAPI ThreadFunc1(LPVOID arg); DWORD WINAPI ThreadFunc2(LPVOID arg); void main() { DWORD.. 더보기
커널메모리 누수 확인 툴 - Poolmon.exe 커널 메모리를 할당 하고서 해제를 안하면 언제 어디서 블루스크린이 뜰지 모른다. 블루스크린이라도 뜨면 감사. 이런 문제를 해결하는 방법은 일일이 할당된 메모리를 해제 했는지 확인해야 하는데 이를 쉽게 할 Poolmon.exe이라는 툴을 소개하고자 한다. 일단 DDK나 WDK를 설치하면 알아서 따라온다. 해당 응용프로그램은 ExAllocatePoolWithTag( .........., 'WSS' )ExFreePoolWithTag( .......... , 'WSS' )이런식으로 메모리 할당하고 해제 하였다면 SSW 이라고 해서첫번째 할당한 메모리두번째 헤제한 메모리세번째 사용한 메모리 확인할 수 있다 더보기
2013 02 07 컴퓨터 기본 정보 스킨 입히기 너무 칙칙해 보이길래 스킨구해다 입히다...이런거 가져다 쓰지 말고 만들어야 할텐데 ....어렵다 ㅡ,.ㅡ 스킨은 데브피아의 정철원님이 만드신걸 가져다 사용했어요.스킨폴더와 .exe파일 같이 있어야 합니다..안그러면... 이렇게 나옴.... 그러하다!!! 운영체제 : Vista, 7 / 32bit 더보기
2013 02 07 컴퓨터 기본 정보 구해오기 시간날 때마다 심심풀이 땅콩으로 만들어보기...MFC로 컴퓨터 기본정보 구해오는 프로그램..램 정보가 안나오는데....이건.. 어떻게 표현해야 될까..??? 고민 중이다.시작은 미약하나....끝은...? 운영체제 : Vista, 7 / 32bit 더보기
프로세스 리스트 가져오기 - Process32First 중요한건 PROCESSENTRY32 구조체이며 MSDN에는 typedef struct tagPROCESSENTRY32 { DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; ULONG_PTR th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; TCHAR szExeFile[MAX_PATH]; } PROCESSENTRY32, *PPROCESSENTRY32; Members dwSize The size of the structure, in bytes. Before calling the Process32First .. 더보기
Thread 정보 얻어오기 CreateToolhelp32Snapshot( ); Thread32First( ); Thread32Next( ); Thread 목록을 가져오려면 위의 3개의 함수를 이용하여 가져올 수 있다. 더보기
Detour 를 이용한 사용자 레벨에서의 후킹 DetourCreateProcessWithDllA("C:\\Windows\\notepad.exe", NULL, NULL, NULL, TRUE, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &_StartupInfo, &_Information, "C:\\notepad_dll.dll", NULL) 해당 API는 첫번째 인자 "C:\\Windows\\notepad.exe" 를 실행 할 때11번쨰 인자 "C:\\notepad_dll.dll" 의 Dll을 인젝션 할 것이다.인젝션 된 DLL의 내용은::DetourAttach((PVOID*)&pfTrueCreateFile, HookingCreateFile)를 이용하여 등록하면 될 것이고HookingCreateFile 함수를 어떠한 방식으로 후.. 더보기