SlideShare a Scribd company logo
김성훈
   Memtracer 기능
    ◦ Malloc, free, new, delete, new[], delete[] 재작성
    ◦ 동적 메모리 할당 해제에 대한 tracing
    ◦ 결과에대한 로그출력.




   개선이 필요한 기능
    ◦ 메모리 침범 오류를 확인할수 있는 기능
    ◦ 메모리 할당 루틴의 안정화
    ◦ 동적 메모리 할당정보 유지를 위한 구조체 관리 기능
◦ 동적 메모리 할당시 반드시 할당에 성공한다는 보장이 없음.
◦ MS에서 제공하는 new의 경우 new 핸들러 설치후 실패시 계속적인 메모리 할당
  요청 수행
   할당 받은 메모리가 쓰고 읽기 유용한 상태라는 보장이 없음
   유저모드의 윈도 API 존재.
    ◦   IsBadReadPtr : 읽을수 없는 메모리에 대한 검사.
    ◦   IsBadWritePtr : 사용할수 없는 메모리에 대한 검사.
   리눅스
    ◦   MmlsAddressValid
   할당된 메모리정보를 갖는 구조체연결 관리
    ◦ 메모리 할당정보 구조체는 사용자에게 메모리 누수에 대한 정보를 일러주므로 리스트의 정보
      를 유지하도록 관리

    ◦ 연결리스트 구조관리
        이전 노드와 이후 노드의 비교를 통해 연결리스트의 적합성 유무 판단
        연결리스트의 구조가 의도없이 변경되었을때 연결리스트를 재 구성(구현중)
   메모리 할당시 corruption 발생을 알수 있게 하는 방법이 필요하다.
    ◦   메모리 corruption 문제는 빈번하게 발생하며 이를 사용자에게 알리는 방법




           8byte             8byte




                         8byte
    ◦   메모리 할당시 추가적인 사이즈를 투입하여 기록을 남긴다.
    ◦   기록된 문자와 비교연산을 통하여 overflow, underflow에 대한 정보를 얻는다.


   관련 논문 : c언어 프로그램의 동적메모리 접근오류 테스트도구설계
   메모리 침범 관리자 완성
   리눅스 버전 구현.

More Related Content

PDF
[C언어]함수오버로딩과오버라이딩
PDF
[C언어] 반복문 (While)
PDF
[C++ ]연산자오버로딩
PDF
[if&switch] 분기문
PDF
[C언어] 반복문_for문
PDF
[C++]함수템플릿(Function template)
PPTX
C언어 종결 세미나 2
PDF
[C++] 상속과 캐스팅(Inheritance & casting)
[C언어]함수오버로딩과오버라이딩
[C언어] 반복문 (While)
[C++ ]연산자오버로딩
[if&switch] 분기문
[C언어] 반복문_for문
[C++]함수템플릿(Function template)
C언어 종결 세미나 2
[C++] 상속과 캐스팅(Inheritance & casting)

Viewers also liked (15)

PDF
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(1)
PDF
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
PPTX
C언어 종결 세미나 1
PPTX
포인터의 기초(1)
PDF
Design patterns 스터디 - Singleton 패턴
PDF
Hello, C# : OOP
PDF
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
PPTX
Oop (객체지향이란)?
PPTX
Gpg study3.7
PDF
브릿지 Unity3D 기초 스터디 3회
PPTX
Effective c++ 1,2
PDF
디자인패턴
PDF
고대특강 게임 프로그래머의 소양
PDF
절차지향 vs 객체지향
PPT
게임 프레임워크의 아키텍쳐와 디자인 패턴
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(1)
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
C언어 종결 세미나 1
포인터의 기초(1)
Design patterns 스터디 - Singleton 패턴
Hello, C# : OOP
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
Oop (객체지향이란)?
Gpg study3.7
브릿지 Unity3D 기초 스터디 3회
Effective c++ 1,2
디자인패턴
고대특강 게임 프로그래머의 소양
절차지향 vs 객체지향
게임 프레임워크의 아키텍쳐와 디자인 패턴
Ad

Similar to Memtracer (20)

PPTX
Ch9 프로세스의 메모리 구조
PDF
Trace memory leak with gdb (GDB로 메모리 누수 찾기)
PPTX
System+os study 5
 
PDF
프로그래머가 알아야 하는 메모리 관리 기법
PPT
Memory corruption stack
PPTX
면접 대비 벡터, CS 개념과 사례
PDF
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
PPTX
운영체제 Chapter 8
PDF
메모리 할당에 관한 기초
PPTX
Windows system - memory개념잡기
PDF
12 2. dynamic allocation
PDF
04_메모리 에러 타입
PPTX
How2heap
PPTX
Chapter 17
PPTX
Windows viac cpp_15장_16장
PDF
[2008 CodeEngn Conference 02] 송민호 - 임베디드 시스템에서의 펌웨어 보호
PPTX
컴퓨터개론07
PPTX
16 스레드 스택
PDF
(111217) #fitalk windows system structure
PDF
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
Ch9 프로세스의 메모리 구조
Trace memory leak with gdb (GDB로 메모리 누수 찾기)
System+os study 5
 
프로그래머가 알아야 하는 메모리 관리 기법
Memory corruption stack
면접 대비 벡터, CS 개념과 사례
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
운영체제 Chapter 8
메모리 할당에 관한 기초
Windows system - memory개념잡기
12 2. dynamic allocation
04_메모리 에러 타입
How2heap
Chapter 17
Windows viac cpp_15장_16장
[2008 CodeEngn Conference 02] 송민호 - 임베디드 시스템에서의 펌웨어 보호
컴퓨터개론07
16 스레드 스택
(111217) #fitalk windows system structure
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
Ad

Memtracer

  • 2. Memtracer 기능 ◦ Malloc, free, new, delete, new[], delete[] 재작성 ◦ 동적 메모리 할당 해제에 대한 tracing ◦ 결과에대한 로그출력.  개선이 필요한 기능 ◦ 메모리 침범 오류를 확인할수 있는 기능 ◦ 메모리 할당 루틴의 안정화 ◦ 동적 메모리 할당정보 유지를 위한 구조체 관리 기능
  • 3. ◦ 동적 메모리 할당시 반드시 할당에 성공한다는 보장이 없음. ◦ MS에서 제공하는 new의 경우 new 핸들러 설치후 실패시 계속적인 메모리 할당 요청 수행
  • 4. 할당 받은 메모리가 쓰고 읽기 유용한 상태라는 보장이 없음  유저모드의 윈도 API 존재. ◦ IsBadReadPtr : 읽을수 없는 메모리에 대한 검사. ◦ IsBadWritePtr : 사용할수 없는 메모리에 대한 검사.  리눅스 ◦ MmlsAddressValid
  • 5. 할당된 메모리정보를 갖는 구조체연결 관리 ◦ 메모리 할당정보 구조체는 사용자에게 메모리 누수에 대한 정보를 일러주므로 리스트의 정보 를 유지하도록 관리 ◦ 연결리스트 구조관리  이전 노드와 이후 노드의 비교를 통해 연결리스트의 적합성 유무 판단  연결리스트의 구조가 의도없이 변경되었을때 연결리스트를 재 구성(구현중)
  • 6. 메모리 할당시 corruption 발생을 알수 있게 하는 방법이 필요하다. ◦ 메모리 corruption 문제는 빈번하게 발생하며 이를 사용자에게 알리는 방법 8byte 8byte 8byte ◦ 메모리 할당시 추가적인 사이즈를 투입하여 기록을 남긴다. ◦ 기록된 문자와 비교연산을 통하여 overflow, underflow에 대한 정보를 얻는다.  관련 논문 : c언어 프로그램의 동적메모리 접근오류 테스트도구설계
  • 7. 메모리 침범 관리자 완성  리눅스 버전 구현.