CRT 뽀개기 신영진.

Slides:



Advertisements
Similar presentations
폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
Advertisements

1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
다이어그램 그래픽 2003 년도 1 학기말 과제 ( 담당교수 : 최병수 교수님 ) 제출자 : 조한진 이영수 이호진 동아일보에 사용된 그래프의 오남용 사례 분석.
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
변비 재활전문센터 재활 간호사 김은화.
예외 상황 예제 개발 1실 서버팀 우상욱 소스 첨가(…).
Basic of Buffer Over Flow
Shellcode 작성 김영성.
기숙사 이전 총 무 팀.
제5장 산업재해 보상보험 ☞ 목적 : 근로자의 업무와 관련하여 발생한 재해근로자의 재활 및 사회복귀를 촉진시키기 위하여 이에 필요한 보험시설을 설치 운영하며, 피해를 예방하고 근로자의 복지증진을 위한 사업을 행함으로써 근로자의 보호에 이바지함을 목적으로 함. 산재보험은.
2장 닷넷 프레임워크.
4장 어셈블리 프로그램 작성의 기본 어셈블러 어셈블리 언어 요소 예제 프로그램 데이터 정의
Q & A (사실상 혼인·이혼) Q. 사실상 혼인·이혼 관계를 어떻게 처리해야 하나요?   사실 혼인·이혼은 부부 모두 동의 여부를 확인하고, 자녀, 이·통·반장으로부터 「사실(이)혼 확인서」를 징구해야 합니다. 만약 어느 한쪽이 동의하지 않는 경우는.
메탄 하이드레이트 활용 방법과 기술 환경공학과 천대길.
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
제4장 어셈블리어.
실습 7-3 gdb 분석을 통해 취약 프로그램의 힙 버퍼 오버플로우 개념 이해하기
Lecture #12 인터럽트 Interrupt.
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
제 7 장 링커와 로더 설계.
3장 MPU 내부구조 Slide 1 (of 28).
Software Exploit and Kernel Protection
OpenGL Project (3D 움직이는 자동차)
Program Memorandum - MODEL HOUSE
제 18 강 데이터 타입 타입, 변환, 캐스팅 shcho.pe.kr.
7장 오버플로우 학습목표 내용 스택과 힙 버퍼 오버플로우 취약점을 이해한다.
+ 가상 메모리 -> 물리 메모리 Selector Offset DIR Page Segmetatation
Lecture #8 어셈블리어 (5) 매크로 어셈블리어 시스템프로그래밍.
비주얼 베이직 프로그래밍 개요 비주얼 베이직 6.0 살펴보기 비주얼 베이직 6.0 설치 비주얼 베이직 6.0의 개발 환경
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
2012 한양사이버대학교 체육대회 1) 블루라이온스컵 4강전 4팀 팀 구성
리버스 엔지니어링 안녕하십니까? 리버스 엔지니어링 발표를 맡은 정창하입니다. 지금부터 리버스 엔지니어링 발표를
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
Chapter 06 명령어와 번지지정 방식.
BOF of 2.6 Kernel ! 박수완 / Su-Wan, PARK [ L1nkC] 숭실대학교 정보보호동아리 ACK
프로그래밍2 및 실습 C언어 기반의 C++ 2.
명품 C++ 프로그래밍 1장. C++ 시작.
Buffer Overflow
2.1 재배정 재배정요구등록 재배정승인취소 재배정부서연결 재배정단위업무연결
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
주의(主意) 본 자료는 고사성어100선의 교육자료 데모용입니다. 제품구입시 모든 교육용 자료는 별도로 무상 공급됩니다.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
뉴로 컴퓨터 개론 제 6 장.
CH2. ASP.NET 페이지 분석 HTML ASP ASP.NET 의 차이점.
Copyrightⓒ ohta. All Rights Reserved.
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
Ⅳ. 생식과 발생 4. 자손에게 줄 세포 만들기.
“병원 폐기물 소각장” 및 “가축 폐수 처리장” 건축 허가 반대 (2011년 “음식물처리장” 미해결 민원 연관)
마음의 성전이 더 아름다운 조촌교회.
1.비 사업용(자가용 및 관용) 차 종 적 용 상 의 구 분 승합 자동차 (버스) 1 종
OpenGL project – Easy Flight Simulator
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
성립전예산 요구등록 (사업담당자) 사업관리카드 1 2
1. 기술 및 제품 설명 > 제품 개요 발표자료 작성 방법 <발표자료 작성 방법>
2014-교육미디어-1099 현장작업자를 위한 가이드 선반조작자의 안전대책.
OPENGL project 구성원 : 김수민,남현우 OPENGL을 이용한 당구(3구) 구현하기.
대한민국-스웨덴 수교 60주년 기념 행사 주 스웨덴 대한민국 대사관 (토)
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
성전기공식(안) 식 순 1. 기공미사 2. 기 공 식 3. 축 하 연 천주교 수원교구 퇴촌성당.
청소년 댄스 경연대회 제35회 문화체육관광부장관大賞 전국레크리에이션대회
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
소방전기설비기초 목원대학교 소방안전관리과 신 종 환.
1. 칭찬 및 고발제도 운영(안) 1. 목적 : 칭찬문화의 전사적 확산,전파를 통한 칭찬문화 조성 및 건전한 회사문화 형성
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 02. C언어 기반의 C++ 2.
Assembly 05 방호남 07 반지훈 09 박상욱.
OpenGL Project 과 목 명 : 컴퓨터 그래픽스 E14반 담당교수님 : 이병국교수님 팀 원 : 신호환
제 1 강 컴퓨터의 구조.
Presentation transcript:

CRT 뽀개기 신영진

누규? 신영진 codewiz, codewiz@gmail.com @codemaru http://www.jiniya.net Microsoft Visual C++ MVP 월간 마이크로소프트웨어 필자 ㈜웰비아닷컴 게임보안 제품 개발

핵심 주제 멀티스레드 CRT 버퍼 보안 검사 전역 변수 초기화

CRT 일반론

CRT가 먼가요? C/C++ Runtime Library C/C++ 표준 함수들을 포함하고 있는 라이브러리

CRT도 종류가 있다? 디버그와 릴리즈 멀티스레드와 싱글스레드(2005부터 삭제됨) 정적 라이브러리와 동적 라이브러리

디버그 vs 릴리즈 DllMain(instance, reason, lpReserved) Release 모드에서 lpReserved를 건드리면 쪼다 된다는거

멀티스레드 vs 싱글스레드

멀티스레드 버전은?

_getptd

__flsindex는 어디서 왔는가? _mainCRTStartup => mtinit

tiddata

그래서 결론은?

ptd 1번 스레드 2번 스레드 ptd 3번 스레드 ptd

정적 vs 동적 라이브러리 EXE EXE CRT DLL DLL CRT DLL CRT

CRT 종류 이름 설명 Libc.lib 정적, 싱글스레드, 릴리즈 Libcd.lib 정적, 싱글스레드, 디버그 Libcmt.lib 정적, 멀티스레드, 릴리즈 Libcmtd.lib 정적, 멀티스레드, 디버그 Msvcrt.lib 동적, 멀티스레드, 릴리즈 Msvcrtd.lib 동적, 멀티스레드, 디버그

CRT 설정하기

라이브러리 충돌 EXE CRT a.lib CRT DLL

해결방법

CRT가 하는 일? C/C++ 표준 함수 제공 프로그램 초기화/클린업 예외 처리 지원 안전한 예외 처리기(Safe SEH) 버퍼 보안 검사 64비트 정수 연산 지원 스택 관리 자체 힙 관리 전역 변수 초기화 우리가 모르는 온갖 잡다한 일들,…

버퍼 보안 검사

버퍼 보안 검사

Size Input RET ADDR EBP Buffer Buffer

RET ADDR EBP Security Cookie Buffer Buffer

push ebp mov ebp, esp sub esp, 0Ch mov eax, dword ptr [__security_cookie] xor eax, ebp mov dword ptr [ebp – 4], eax

mov ecx, dword ptr [ebp – 4] xor ecx, ebp call _security_check_cookie mov esp, ebp pop ebp ret

__security_check_cookie

전역 변수 초기화

전역 변수 초기화

dumpbin

cinit

_initterm

.CRT$X…

스택 관리 기법

스택 할당

윈도우 스택 관리 메커니즘 Commit Commit Commit Commit EXCEPTION GUARD PAGE Reserved Guard Page Reserved Reserved

_chkstk

예외 처리

C++ Exception, SEH

C++ Exception

CRT 전용 힙

malloc

malloc_base

heap_alloc

heap_init

new/delete 문제

new/delete 문제 EXE CRT DLL CRT

감사합니다. 끝~