집에 갔다왔더니 피로가..;;
결과적으로 어제 오늘 학원 빠졌다 ㅋ
(오늘은 일찍 일어났지만 책이 회사에 있어서 걍 다시 잤다.)
즐거운 데이트 & 초록이 생일파티
생일 축하해요 ^-^
집에 갔다왔더니 피로가..;;
결과적으로 어제 오늘 학원 빠졌다 ㅋ
(오늘은 일찍 일어났지만 책이 회사에 있어서 걍 다시 잤다.)
즐거운 데이트 & 초록이 생일파티
생일 축하해요 ^-^
어제는 자유형과 평영-
여전히 수다쟁이 강사
게다가 말도 짜증나게 한다. 뭐 이런거도 못하냔 식의 약간 갈구는 말투.
그리고 왜 나한테는 말 놓는건데 안그래도 맘에 안드는데 -_-
수영도 잘 못하는거 같구만 말만 많아가지고
(장담하는데 자유형 시합하면 내가 이긴다-_- 내가 평영을 좀 못하기는 하지만 자유형은~)
어쨌거나 난 수영하러 간거니까 마인드 컨트롤
이제 자주 봐서 인사도 하고 하는 아저씨들이랑 놀고 있다.
난 이제 평영 클래스로 떨어져서- 나머지 사람들은 다들 접영으로 넘어갔다- 세명이서 열심히 평영 ㅋ
발차기는 아무리 해도 안된다. 자세가 잘 안나오는 이유가 뭘까
물에서 부력이 있으니까 아무래도 내 맘대로 안되긴 하는데 이건 너무한다.
이제 자유형 할 때는 어느정도 내가 원하는대로 몸이 움직이고 자연스러움이 스스로도 느껴지는데.
평영은 ;;;;;
무릎을 많이 벌어지지 않게 하고 뒤로 올린담에 밑으로 차주는게 관건인데.
발목이 잘 안꺾이는 것도 그렇고 일단 무릎이 옆으로 많이 벌어지니까 힘이 안실린다
연습해서 보란듯이 잘하고 말테다 -_-
어제는 완전 무릎 붙인채로 발목 꺾어서 뒤로 구부리는거만 연습했다.
요즘 자유형이 잘되서 기분이 좋다. 앞으로 쭉쭉 나가는 느낌이 ^^
주말에 덤벨 들고 근육운동 좀 했더니 효과가 있는건가 ㅋ
계속해서 버닝 ㅋㅋㅋ
같으 운동하는 아저씨가 나보고 자유형 팔돌리기가 많이 좋아졌단다.
근데 호흡을 너무 급하게 하는 것 같다고.
팔돌리는 거에 맞춰서 나와서 숨쉬고 들어가면 시간이 충분한데도 머리를 너무 급히 물속으로 넣어서
호흡도 힘들어지고 팔도 부자연스러워지는 것 같단다.
그래서 천천히 팔 돌리는 두박자에 맞춰서 여유롭게 해봤더니 충분히 된다! ^-^
항상 너무 급하게 하려는 마음을 버려야겠다.
충분히 시간이 있고 여유가 되는데도 너무 급하게만 하다보면 잘 안되는 거같다.
수영은 정말.. 물에 저항하지 말고 자연스럽게 하는게 최고인듯~
오늘 철희가 주문한 새 수영복도 왔다고 하니 받아서 열심히 해야겠군하 ㅋ
선수용 5부를 사고 싶었지만 그거 입고 어리버리대면 부끄러운 관계로 아직은 참는다.
어제 본 샘플-
난 실행압축을 끝까지 못풀고, 드랍하는 파일을 수집을 못해서 완전히 분석을 못했는데.
정진성 주임님이 달아주신 코멘트
2007-제7차 수상인명구조원 자격검정(7. 28)
합격자공고
필기 검정 합격(4명) |
실기 검정 합격(5명) |
최종 합격자(4명) |
심철희, 고영주, 신윤아 임정훈/ 이상 4명 |
심철희, 고영주, 박영일 신윤아, 임정훈/ 이상 5명 |
심철희, 고영주, 신윤아 임정훈/ 이상 4명명 |
합격을 축하드립니다^^
ㅋㅋ 멋진 내 동생 라이프 가드 합격
인제 철희만 믿고 놀러가면 되는건가 ㅋㅋㅋ
진짜 한참 열심히 하더니 땄네.
나도 열심히 수영해야겠군~
void DllInject(DWORD pid, char * path) // pid : 인젝션 하려는 Process id
// path : 인젝션 될 dll의 경로
{
HANDLE hProcess;
HMODULE hDll;
PTHREAD_START_ROUTINE pFunc;
DWORD nLen;
void * pMem;
HANDLE hThread;
// target process의 PID로 프로세스를 연다
hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
// 내 프로세스에 있는 KERNEL32.DLL의 주소와 LoadLibrary의 주소를 구한다.
// kernel32.dll 모듈의 핸들값을 GetModuleHandle로 구한다.
hDll = GetModuleHandle("kernel32.dll");
// PTHREAD_START_ROUTINE은 미리 정의되어 있는 스레드 함수 모양의 함수 포인터
// LoadLibray 함수의 주소를 얻어옴
pFunc = (PTHREAD_START_ROUTINE)GetProcAddress(hDll, "LoadLibraryA");
// 계산기의 주소공간에 메모리를 할당하고, DLL의 경로를 복사해준다.
// VirtualAlloc은 가상 메모리를 할당하는 API이지만,
// Ex가 붙으면 다른 프로세스의 주소공간을 할당할 수 있다.
pMem = VirtualAllocEx(hProcess, 0, // 원하는 주소(0은 알아서 해달라)
strlen(path) + 1, // 크기
MEM_RESERVE | MEM_COMMIT, // 예약과 동시 확정
PAGE_READWRITE
);
// 이제 DLL의 경로를 담을 문자열 복사
// WriteProcessMemory()는 다른 프로세스 주소 공간에 무언가를 쓸 수 있다.
WriteProcessMemory(hProcess, pMem, path, strlen(path)+1, &nLen);
// 계산기에 새로운 스레드를 만든다.
// CreateRemoteThread는 다른 프로세스에 스레드를 생성시킨다.
hThread = CreateRemoteThread(hProcess, 0, 0, pFunc, pMem, 0, 0);
CloseHandle(hThread);
CloseHandle(hProcess);
}
void main(){
HWND hwnd;
DWORD pid;
DWORD tid;
hwnd = FindWindow(0, "계산기");
if( hwnd == 0 )
{
printf("\"계산기\"를 먼저 실행하여야 정상 동작합니다.\n");
return;
}
tid = GetWindowThreadProcessId(hwnd, &pid);
DllInject(pid, "C:\\Inject.dll");
}
// 원래 계산기의 메세지 함수의 주소를 담을 변수
WNDPROC oldProc;
// 계산기의 메세지를 처리할 새로운 함수
LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
UINT cmdID;
switch( nMsg )
{
case WM_COMMAND:
cmdID = LOWORD(wParam);
if( cmdID >= 0x7C && cmdID <= 0x85 )
return CallWindowProc(oldProc, hWnd, nMsg, wParam + 1, lParam + 1);
break;
}
return CallWindowProc(oldProc, hWnd, nMsg, wParam, lParam);
}
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){
HWND hwnd;
switch( ul_reason_for_call )
{
case DLL_PROCESS_ATTACH:
hwnd = FindWindow(0, "계산기");
oldProc = (WNDPROC)SetWindowLong(hwnd, GWL_WNDPROC, (LONG)WndProc);
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}