표제지
국문요약
목차
제1장 서론 8
1절 연구의 필요성 8
2절 연구의 목표 및 방향 10
제2장 윈도우 메모리 해킹 관련 연구 11
1절 윈도우 시스템 구조 및 특징 11
2절 PE 파일의 형태 16
1. PE 파일의 헤더 영역 18
2. DOS헤더 19
3. NT 헤더 20
4. Section 헤더 23
5. IAT 테이블 24
6. Export Addres 테이블 25
3절 메모리 해킹 방법들 28
1. 내그 스크린 무력화 29
2. 패킹 상태의 해킹 29
3. IAE / EAT 후킹 31
4절 해킹 도구 33
1. 리버싱 툴 33
2. 디스 어셈블러 34
3. 디버거 35
4. 시스템 모니터링 도구 36
5. 기타 도구 36
6. 해킹의 과정 37
5절 윈도우 메모리 해킹 탐지 및 방지 방법들 38
1. 해시셋을 이용한 무결성 검증 38
2. 무결성 검사를 위한 프로그램 39
3. PE 파일 분석 방법들 39
4. 코드 체크섬 39
제3장 실험 및 검증 40
1절 실험 개요 40
2절 실험 내용 및 결과 43
1. 소프트웨어 실시간 무결성 인증 방법 실험 43
2. 파일 크기에 따른 해시 시간 비교 56
제4장 결론 및 향후 연구 57
참고문헌 58
ABSTRACT 59
표 1. 메시지 종류 16
표 2. PE File Format의 종류 16
표 3. PE 파일의 용어 및 정의 17
표 4. typedef struct _IMAGE_DOS_HEADER 소스 19
표 5. Section Characteristics 속성 값 20
표 6. typedef struct _IMAGE_NT_HEADERS 소스 21
표 7. typedef struct _IMAGE_FILE_HEADER 소스 21
표 8. typedef struct _IMAGE_FILE_HEADER 소스 22
표 9. typedef struct _IMAGE_SECTION_HEADER 소스 23
표 10. typedef struct _IMAGE_IMPORT_DESCRIPTOR 소스 24
표 11. typedef struct _IMAGE_EXPORT_DIRECTORY 소스 26
표 12. Win32 API 함수 및 기능 32
표 13. 디버거의 특징 35
표 14. 해시셋 사용의 경우 38
표 15. WINAPI TestFunc 함수 소스 48
표 16. TestFunc_different 함수 소스 48
표 17. ChangeTestFunc 함수 소스 51
표 18. 기존 해시셋 방법과 비교표 55
표 19. 파일 크기에 따른 해시 시간표 56
그림 1. 소프트웨어 실시간 무결성 인증 방법 실험 및 구현 방법 10
그림 2. 윈도우 시스템 구조 12
그림 3. Memory Management Unit 13
그림 4. 윈도우의 메모리 관리 프로세스 15
그림 5. 응용 프로그램의 함수 메모리 적재 형태 15
그림 6. PE 형태 및 메모리 로딩 상태 18
그림 7. Import Address Table 25
그림 8. Export Address Table 26
그림 9. 파일의 패킹 방법 30
그림 10. IAT/EAT 해킹 방법 31
그림 11. 해킹의 과정 37
그림 12. 소프트웨어 전체의 메모리 40
그림 13. 연구 구성도 42
그림 14. 미리 제작된 DLL파일의 NT헤더 43
그림 15. Import address Table 43
그림 16. Export Address Table 44
그림 17. TestDLL.dll파일을 로딩하여 함수의 주소의 형태 45
그림 18. PE Viewer를 이용한 함수 주소 확인 45
그림 19. PE Viewer와 실제 함수의 주소 비교 46
그림 20. TestFunc의 메모리 주소 및 내용 47
그림 21. TestFunc의 메모리 내용 47
그림 22. TestFunc_different 함수 메모리 내용 48
그림 23. 혼합 해시 데이터 제작 49
그림 24. 해시 함수 : MD5 해시 결과 50
그림 25. 해시 함수 : SHA-512 해시 결과 50
그림 26. Export Address Table 변경 51
그림 27. 변경할 대상의 메모리 내용 52
그림 28. 변경된 TestFunc의 메모리 내용 52
그림 29. 변경되지 않은 TestFuncCopy의 메모리 내용 53
그림 30. 변경된 메모리로 인한 해시 데이터의 변화 54