Programming/Tips(C++,C#)143 0129 - Process실행, 부팅의 개념 *OpenProcess에서 실제 프로세스를 실행한다.. 이걸보면... 어떻게짰는지 방법이 다나온다.. *다른방법 ==> IAT를 조작하지않고.. 직접 어셈블리 자체를 건드려버린다. Kernel32.DLL을 후킹한다. 그리고 주소를 얻어와서 Write권한얻고... 기존의 내용을 백업한다. 그리고나서 그공간에 내가 실행하려는것과 주소 차이값을 가지고있다가... 0xE9(어셈블리로 jmp)를 넣는다(물론 타겟주소는 내가 작성한것이다.)... memcpy면 가능하지? ㅡㅡㅋ 이건 unhook시에는 0xE9로 대체한곳을 변경한다. 단... 이러한경우 작업중인프로세스들에서 죽을수도있다 후킹한 함수에서는 실제 후킹하기전에 unhook을 하고 OpenProcess를 한다. (OpenProcess를 후킹해야한다) 그리고.. 2009. 1. 29. 0129 - Message Hook *함수를 Hook한다. = 주소를 바꾸어버린다~. 보안이냐 바이러스냐. 어차피 둘다 써먹는일이다. *MFC에서 메시지 훅을 아주 대놓고 지원해준다. 바로.. 1)SetWindowHookEx 2)APIHook - IATHook - Hook(주소변경) 1)은 MS에서 지원하는 채널을 통한 훅이있다. 그러나 2)로가면 리눅스/윈도우 상관없이 다먹힌다.. -0-;; 지존은 PIC를 건드리는것을 후킹하는것. 방법이 아예없다. 즉, 로우레벨로 내려가버리면... ㅋ;;; 1) SetWindowHookEx의 치명적 보안결함은 무엇이든 다 후킹할 수 있다. 만약 내가 dll을 로드해놓았다. 현재 실행중인 어떠한 프로세스로 포커스를 옮겨서 후킹할 준비를 시켜버리면... 그 실행프로세스의 가상메모리공간에 MsgHook.dl.. 2009. 1. 29. 0129 - File I/O *WriteFile 2009. 1. 29. 0128- I/O (3) - Asynchronous(비동기), Overlapped *비동기 I/O : I/O자체를 O/S에게 일임해버림. Read후 Write요청을 함-> O/S가 Write마침 -> Callback함수 호출. 어찌할까? 비동기를 효율적으로 하려면 -> 동적으로 버퍼 할당후 O/S에 넘긴다. 그리고 return. Callback이 오면 다시 할당하고 넘김. 실제 Write는 커널이 알아서 해주니까. 더 빠르고 편하다. 구조 -> I/O를 걸고 callback이 올때까지 wait를 걸어준다. ->이거하지말고 그냥 리턴~~. 대신 callback에서 다음것을 읽으라고 호출해주면 좋다. Overlapped I/O가 지원되야만 File I/O를 비동기로 할 수 있다. 그리고 비동기에서 모든것을 다 O/S에 맡겨버리면 이것이 IOCP이다. *Overlapped I/O사용을 위해.. 2009. 1. 28. 0128 - File I/O (2) - Thread Ver. *스레드 기반으로 파일 I/O하기. Thread에서 사용할 파일 I/O에 관한 정보구조체 typedef struct _COPY_FILE{ TCHAR szSrcFile[MAX_PATH+_MAX_FNAME]; TCHAR szDestFile[MAX_PATH+_MAX_FNAME]; LPVOID pDlg; } -pDlg를 넣는 이유는? WorkerThread가 실행되기 전에 Dialog를 만들어두고 그 대화상자의 주소를 넘겨주기 위해서. (ProgressBar Dialog는 Main Dialog에 속해있어야한다. Thread한테 속해있는것이 아니라.) *Thread에서 사용할 함수 DWORD WINAPI ThreadCopyFile(LPVOID pParam){ COPY_FILE File; memcpy(&File, .. 2009. 1. 28. 0123 - 파일 I/O *파일객체로 생성해서 그곳에 메모리 write하면 파일에 write한거임. *이 파일 I/O를 잘하면 좋다.. device도 파일이라는 사실을 잊지말자... *CreateFile을 잘 건드릴줄 안다면... 대략 좋다. *File I/O의 가장큰 장점은 추상화 이다. 2009. 1. 23. 이전 1 ··· 16 17 18 19 20 21 22 ··· 24 다음 728x90