저는 처음부터 방어쪽을 만들고 싶었기에 다른 팀원이 키로거를 제작하기를 기다렸습니다.
드디어 프로젝트 팀원 중 김성현군이 첫번째 키로거를 만들어서 업로드 했습니다.
분석 결과 SetWindowsHookEx 함수를 사용하여 전역 훅을 설치, 키로거를 제작 하였습니다.
소스는 방패쪽에서 분석과 방어 프로그램을 제작하면 업로드 하는 식으로 진행 됩니다.
단, 분석 및 연구 목적으로만 사용하시기 바랍니다. 이것을 불법으로 사용하여 일어나는 책임은 사용자에게 있습니다.
아래 소스코드와 초간단 키로거 실습 프로그램은 FLAG 동아리 김성현군이 제공해주었습니다.
원래는 방패프로그램 제작 이후에 소스 공개하는게 원칙이지만 이번만은 사정이 있어서
방패측에서 분석만 끝내고 창 프로그램의 소스를 공개했습니다.
성현이-초간단키로거.zip
드디어 프로젝트 팀원 중 김성현군이 첫번째 키로거를 만들어서 업로드 했습니다.
분석 결과 SetWindowsHookEx 함수를 사용하여 전역 훅을 설치, 키로거를 제작 하였습니다.
소스는 방패쪽에서 분석과 방어 프로그램을 제작하면 업로드 하는 식으로 진행 됩니다.
단, 분석 및 연구 목적으로만 사용하시기 바랍니다. 이것을 불법으로 사용하여 일어나는 책임은 사용자에게 있습니다.
아래 소스코드와 초간단 키로거 실습 프로그램은 FLAG 동아리 김성현군이 제공해주었습니다.
원래는 방패프로그램 제작 이후에 소스 공개하는게 원칙이지만 이번만은 사정이 있어서
방패측에서 분석만 끝내고 창 프로그램의 소스를 공개했습니다.
proja.exe 소스코드 #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //hInstance 프로그램의 인스턴스핸들 //아래의 Winmain 함수는 일반 C언어에서의 main과 같은 역할을 한다. 즉, 프로그램이 가장 //간단히 설명해서 hInstance는 프로그램 자체의 포인터이고, hPrevInstance는 해당 프로그램이 //lpszCmdParam은 argv와 같이 프로그램의 인자를 의미하고, 마지막으로 nCmdShow는 실행되는 //첫번째 인자는 윈도우를 생성할 때 사용할 클래스명, 두번째 인자는 창의 타이틀바에 들어갈 문자열, 세번째 인자는 //네,다섯번째는 윈도우를 출력할 X,Y 좌표, 그다음 2개는 창의 좌 우 길이, 나머지 4개는 아래와 같다
// 위 while문은 윈도우 메시지 큐에서 가장 상위에 있는 메시지를 하나 뽑아와서 message 변수에 저장한 후, // 과정을 담고 있다. 마지막 단계인 처리는 메시지를 메시지처리함수로 전달하는 역할을 한다. switch(iMessage){ //발생한 메시지가 WM_CREATE 일 경우, 즉 윈도우창이 생성되었을 경우 //LoadLibrary 함수는 인자로준 dll을 현재 프로세스의 주소공간으로 mapping 시켜서 사용할 수 있도록 해주는 API // GetProcAddress를 이용하여 DLL에서 export한 함수를 가져온다. 즉 hook.dll에서 GetMsgProc 함수를 호출 hGetMsgProc = (HOOKPROC)GetProcAddress(hinstDll, "GetMsgProc"); // SetWindowsHookEx 함수는 자신의 훅 프로시저를 타 어플리케이션으의 훅 체인에 설치한다. 쉽게 말하면 타겟 // 를 본인이 만든 윈도우 메시지 처리 프로시저로 변경 하는 것을 말한다. 메시지 프로시져 외에 여러가지 // http://ontow.blog.me/140131028775 에서 인자값 확인 case WM_DESTROY: //DefWindowProc 함수는 WndProc에서 처리하지 않은 나머지 메시지에 관한 처리 } // 위 메시지를 처리하는 함수는 CALLBACK 타입으로 지정된다. CALLBACK 이라는 것은 이 함수가 사용자에 |
성현이-초간단키로거.zip
'프로젝트 > 창과 방패' 카테고리의 다른 글
김성현군이 만든 초간단키로거 분석 (0) | 2012.01.22 |
---|---|
창과 방패 프로젝트란.. (0) | 2012.01.21 |