2019-2020-1 20175325 "정보 보안 시스템의 설계 기준"학습 요약 셋째 주

2019-2020-1 20175325 "정보 보안 시스템의 설계 기준"학습 요약 셋째 주

첫째, 목차 :

  • 학습 내용 : 프로그램의 시스템 수준 표현
  • 그 과정에서 해결 코드 디버깅 및 문제
  • 지난 주, 잘못된 질문
  • 코드 호스팅
  • PSP

둘째, 학습 내용 : 프로그램의 시스템 수준 표현

  • 어셈블리 언어는 언어 중심의 프로세서, 기계 명령은 상징이다.
  • 대한 어셈블러 코드를 생성 GCC 컴파일러를 사용합니다 :gcc -Og -s xxx.c
  • 이진 파일 디스 어셈블리 코드를보기 :objump -d xxx.c
  • 실행 GCC 컴파일러, 어셈블러 파일 code.s을 생성합니다 :gcc -Og -S code.c
  • code.o -c 명령 옵션, GCC 컴파일러를 사용하여 코드를 가져 컴파일 :gcc -c code.c
  • 어셈블리 파일을 생성합니다 :gcc -Og -S mstore.c
  • 분해되는 파일의 내용보기 :objdump -d mstore.o
  • 프로세서 유형 :
  • 프로그램 카운터 : (%rip)다음에 실행할 명령어가 메모리에 주소를 나타냅니다.
  • 정수 레지스터 : 16이라는 위치, 64 비트 값이 저장을 포함한다. 일부는 특정 문서의 상태를 기록하는 데 사용, 일부는 임시 데이터를 저장하는 데 사용.
  • 스트라이프 등록 : 최신 실행 상태 정보에 저장된 산술 또는 논리 지침을 제공합니다.
  • 소수점 레지스터 부동 : 하나 개 이상의 정수 또는 부동 소수점 숫자를 저장할 수 있습니다.
  • 유효 주소 계산 :Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s
  • 데이터 전송 지침 MOV:

  • 효과적인 주소로드 leaq명령을 : 실제로 movq명령 수정
  • 피연산자 표시 :

  • 직접 IMM (는) 상수 값 나타내는 $표준 방법 C로 표시되는 정수
  • 등록 레지스터의 내용을 나타내는 R[ra]
  • 메모리 인용구 : 메모리 위치에 대한 액세스 Mb[Addr]
  • 몇 가지 특별한 산술 연산 :

  • imulq 전체 곱셈을 체결
  • 전체 mulq 부호없는 곱셈
  • clto는 문자로 변환
  • 서명 분할 idivq
  • 부호 분할 divq
  • 버퍼 오버 플로우 : 버퍼 자체가 상기 버퍼 내의 데이터에 대한 데이터 유효 비트들은, 이상적인 상황은 허용 프로그램은 입력 문자의 데이터 길이는 버퍼의 길이를 초과하는 확인되지 않은 충전 컴퓨터 겹쳐 오버 플로우 데이터의 용량을 초과 그러나 대부분의 프로그램은 데이터 길이는 항상 할당 된 저장 공간과 일치한다고 가정합니다
  • 밀어 스택 데이터를 팝업 :

pushq S : 압력 도면
popq의 D : 팝핑

  • 제어 이동 - callret일반 양식을 명령 :

코드와 해상도를 디버깅 셋째, 문제

  • 문제 및 해결 방법 :

넷째, 잘못된 질문 지난 주 :

  • 잘못된 질문 :

  • 답 :
    P49는 숫자 및 부호에 맞춰 변환 한 다른 비트 패턴의 값에 대한 깊이 이해 변경 "= + 컨텍스트 정보 비트들."

  • 잘못된 질문이 :

  • 답변 :
    P39 구별 비트 연산과 논리 연산.

호스팅 V. 코드 :

여섯, PSP :

------ 코드 라인 수 블로그 수량
5000 (25) 400시간
셋째 주 228분의 198 2/3 12/20

추천

출처www.cnblogs.com/sgm5/p/11668650.html