디지털공학실험 11장 가산기 및 크기비교기(결과)
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

디지털공학실험 11장 가산기 및 크기비교기(결과)에 대한 보고서 자료입니다.

본문내용

버퍼에서 다른 버퍼로 복사할 때 발생한다.
▶ 기본 예제
아래의 예제에서, 프로그램은 메모리에서 인접해있는 두 아이템을 정의하였다: 8 바이트 길이 스트링 버퍼, A. 그리고 2 바이트 정수형, B. 우선, A 는 zero 바이트만 포함하고 B는 숫자 3을 포함한다. 문자들은 1바이트 크기이다.
A
A
A
A
A
A
A
A
B
B
0
0
0
0
0
0
0
0
0
3
이제, 프로그램은 문자열 "excessive"를 A 버퍼에 저장한다. zero 바이트가 스트링의 끝임을 알리기 위해 따라온다. 스트링의 길이를 확인하지 않음으로 B의 값을 덮어쓴다.
A
A
A
A
A
A
A
A
B
B
'e'
'x'
'c'
'e'
's'
's'
'i'
'v'
'e'
0
비록 프로그래머가 B가 바뀌는 것을 전혀 의도하지 않았다 하더라도, B의 값은 문자열의 한 부분은 구성하는 숫자로 바뀌었다. 이 예제에서 ASCII를 사용하는 빅 엔디언 시스템에서 zero byte가 따라붙는 "e"가 숫자 25836가 될 수 있다. 만약 B가 프로그램에 의해 정의된 다른 변수 아이템이었다면, B의 끝을 지나가는 긴 스트링을 쓰는 것은 세그먼트 오류, 프로세스 종료와 같은 오류를 발생시켰을 것이다.
▶ 스택에서 버퍼 오버플로
상관없는 변수의 값을 바꾸는데다가, 버퍼 오버플로는 종종 실행하는 프로그램이 임의의 제공된 코드를 실행시키게 하는 공격자에 의해 쓰인다(착취당한다). 그 기술은 공격자가 버퍼가 적재되어있는 메모리 지역에 의존하는 프로세스의 제어를 찾는데 사용될 수도 있다, 예를 들어, 데어터가 임시로 "top"에 "pushed"되고 후에 변수의 값을 읽기위해 "popped"되는 스택 메모리 구역. 전형적으로 함수가 실행을 시작할 때, 오직 그 함수의 실행동안만 접근가능하도록 남아있는 임시 데이터 아이템(지역 변수)이 푸쉬된다.
아래의 예에서, "X"는 프로그램이 실행될 때 스택에 있게 되는 데이터이다; 프로그램은 그 다음 작은 양의 저장공간만 필요한 함수 "Y"를 호출한다. 그리고 "Y"는 그 다음 많은 버퍼를 필요로 하는 "Z"를 호출한다.
Z
Z
Z
Z
Z
Z
Y
X
X
X






:
/
/
/
만약 함수 Z가 오버플로를 발생시키면, 그것은 함수 Y나 주 프로그램에 포함된 데이터를 덮어 쓸 수도 있다:
Z
Z
Z
Z
Z
Z
Y
X
X
X
.
.
.
.
.
.
.
.
/
/
이것은 대부분의 시스템에서 현재의 프로세스가 호출되기 전 실행되고 있던 프로그램 부분의 위치인 반환값을 스택이 갖고 있기 때문에 특히나 심각하다. 함수가 끝날 때, 임시 저장소는 스택에서 제거되고 실행은 반환 주소로 되돌아 간다. 그런데 만약, 반환 주소가 버퍼 오버플로에 의해서 덮혀 쓰여지면, 어떤 다른 위치를 가리킬 것이다. 처음 예제에서와 같은 버퍼 오퍼플로가 우연히 발생하는 경우, 거의 틀림없이 쓸모없는 위치일 것이다. 어떠한 프로그램 인스트럭션 위치가 아니고, 프로세스는 망가질 것이다. 하지만, 악의적인 공격자가 시스템 보안과 충돌할 수 있는 임의 위치로 반환 주소를 바꿀 수 있다.
  • 가격2,000
  • 페이지수7페이지
  • 등록일2010.04.07
  • 저작시기2007.9
  • 파일형식한글(hwp)
  • 자료번호#597077
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니