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

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

학습 목표

1. 역의 개념은 평가
2. X86 컴파일 마스터 기반을 읽을 수 있습니다 (트랜스) 어셈블리 코드
3. ISA는 (명령어 세트 아키텍처) 알아보기
4. 함수 호출 스택 프레임의 개념을 이해하고, GDB를 디버깅 할 수

실험실 건물의 학습 내용 요약

하이라이트 :

: 1.X86 세 세대 경험 주소 지정
플랫 패턴의 DOS 시대, 사용자 공간과 커널 공간, 매우 안전을 구분하지 않습니다.
세그먼트 모델 8060
평평한 보호 모드 IA32 모드
2..p114 : MOV C 언어 할당 "=", 방향 ATT 형식주의에 대응,주의, 직접 다른 메모리 주소로 메모리 주소에서 MOV를 촉진 할 수 교통이 그것을 사용 등록합니다. MOV를 구별 할 수있다, MOVS, MOVZ, 제어 푸시, 팝 :
이 명령 만 MOVSB, MOVSW, MOVSD 등, 문자열 작업이 명시 적 데이터 유형이 필요, B는 BYTE를 나타냅니다 더 MOVS은, W는 WORD를 나타냅니다 없다, D는 DWORD를 나타냅니다. MOVS 기호 확장, MOVZ (높은 0 패딩을) 제로 - 확장.
3.p150 / P151 : / RET 호출
명령 호출 :
타겟 명령 호출, 호출하는 절차의 개시 어드레스를 나타내는, 즉 명령.
호출 명령의 효과는 리턴 어드레스의 스택이다. 그리고 호출 된 프로 시저의 시작 부분으로 이동합니다.
RET 명령 :
RET이 위치하는 스택 주소 및 점프에서 나옵니다.
호출 명령 이후의 명령에서 RET 명령이 돌아갑니다.
4.p123 : C 언어 바인딩은 제어부의 제어가 점프 문장의 핵심이 얼마나 이해 : 조건부 점프 P128은 (에있는 동안, 경우 스위치를 달성) , 무조건 점프 JMP는 (GOTO을 달성)
루프 동안
문 동안 일반적인 형태 :
while (test-expr) body-statement
:: 원하는 경우에있어서 사용 GCC, 조건 분기를 사용하여, 루프의 첫 번째 실행은 생략한다

    goto done;
do
    body-statement
    while(test-expr);
done:```
for循环
for循环的通用形式:

(, 테스트 - EXPR 상기 INIT-EXPR 업데이트-EXPR)에 대한
신체 명세서
switch语句 根据一个整数索引值进行多重分支,执行switch语句的关键步骤是通过跳转表来访问代码位置,使结构变得更加高效。 5.p174: bt/frame/up/down :关于栈帧的gdb命令 关于栈帧的gdb命令:역 추적 / BT n 개의 打印当前的函数调用栈的所有信息。 n是一个正整数,表示只打印栈顶上n层的栈信息。 -n表一个负整数,表示只打印栈底下n层的栈信息。프레임 N n为栈中的层编号,是一个从0开始的整数 该指令是移动到n指定的栈帧中去,并打印选中的栈的信息。 如果没有n,则打印当前帧的信息。까지 N 表示向栈顶移动n层다운 n```
상기 n 층의 적층 아래쪽으로 이동을 나타낸다


실험실 건물 연습 :

1. gcc -s -o main.s main.c -m32어셈블리 코드로 컴파일


추천

출처www.cnblogs.com/zyzgl/p/11668982.html