본문 바로가기
반응형

IT창고308

IPC(Inter Process Communication)프로세스간 통신 1. 사용자 정의 메시지->64비트로 한정된다. 2. WM_COPYDATA 3. MMF 4. Pipe 5. 공유메모리 6. 클립보드 7. Socket 8. DDE(COM을 배워야 한다.) 9. mailslot 2007. 1. 22.
Dllinyection() #include #include //Kernel32의 핸들을 구하는것..GetModuleHandle void DllInject(DWORD pid, char * path) { //process ID를 가지고 Process핸들을 얻는다. HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid); //---------------------------------------------------------- //Kernel32.dll의 주소를 구한다. HMODULE hDll = GetModuleHandle("Kernel32.dll"); PTHREAD_START_ROUTINEf=(PTHREAD_START_ROUTINE) GetProcAddress(hDll, "LoadL.. 2007. 1. 22.
DLL사용하는 방법 2가지 1. 암시적 연결 (implicit Linking) 실팽파일에 DLL을 올려놓는것...-스태틱? 2. 명시적 연결 (Explicit Linking) 실팽파일안에 DLL을 올려놓지 않는것... LoadLibrary() FreeLibrary() 위의 두 함수 많이 사용 2007. 1. 22.
다른 프로세스에 접근한여 메모리 값 가져오는 소스 #include #include #include void main() { DWORD pid = 4632;//목적 프로세스의 ID void * pAddr=(void *)0x0012FE80;//목적 주소. HANDLEhProcess=OpenProcess(PROCESS_ALL_ACCESS, 0 , pid); while(1) { getch(); printf("읽어온 주소 : %p\n",pAddr); //다른 프로세스(hProcess)의 메모리(pAddr)을 읽어 온다. char buf[256]={0}; DWORD len; ReadProcessMemory(hProcess, pAddr, buf, 256, &len); printf("읽어온 data : %s\n",buf); } } 2007. 1. 22.