정보보안기사

[정보기 23회 실기 복기] 지연 바인딩

멋쟁이천재사자 2023. 8. 3. 15:29

문제

 

다음은 리눅스 지연바인딩에 관한 설명이다. 

리눅스 환경에서 (1)방식으로 컴파일하면 라이브러리가 외부에 위치하여 주소를 가져오기 위해서 테이블인 (2)와 프로시저의 실제주소를 가지고 있는 (3)을 참조하여 함수 주소를 얻어온다.

 

제출 답안


Dynamic Linking, Lookup table, 공백

 

후기

 

찍음.

dynamic vs static, binding or linking. 이런 용어들로 어떻게 잘 찍어볼까 연구를 좀 해봄.

오래전 프로그래밍 공부할 때 내부에 라이브러리를 포함하도록 할지 아니면 런타임에 참조하는 방식으로 할지 선택힐 수 있었던 것 같다. 그것이 C 였는지 Java 였는지 아니면 다른 언어였는지는 기억에 없다. 그런 코딩 방식과 관련된 개념일수도 있겠다는 생각을 해보았으나 더 이상 생각나는 내용은 없었다. 그래서 찍었다.

 

 

개선 답안(정답 또는 모범 답안 아님 주의)

 

(1) : Dynamic Link (2) : GOT (3) : PLT

 

 

 

Study 이력 [2023-08-07]

PLT 와 GOT 와 관련 유튜브 영상을 보고 따라하기 실습을 해봄

https://it-freelancer.tistory.com/1416

유튜브 영상에서는 hopper disassembler 를 사용하여 plt 와 got 관련 내용을 보여주고 설명을 해주고 있다. 그런데 해당 툴은 맥용이라고 한다. 기드라(Ghidra), IDA, Olly Debugger 이런 종류 중에서 가능한 툴을 설치해서 분석해보아야겠다. 필기시험에서 들어본 툴들이 등장한다!

 

 

Study 이력 [2023-08-05]

 

알기사 카페에서 자료다. 2와 3이 바뀌어야 정답 아닐까?

 

다음은 리눅스 지연바인딩에 관한 설명이다. 리눅스 환경에서 (1)방식으로 컴파일하면 라이브러리가 외부에 위치하여 주소를 가져오기 위해서 테이블인 (2)와 프로시저의 실제주소를 가지고 있는 (3)을 참조하여 함수 주소를 얻어온다.

[예상 정답]
(1) : Dynamic Link
(2) : PLT
(3) : GOT

 

출처 : https://cafe.naver.com/algisa/56155

 

2023년 2회(2023.07.29시행) 정보보안기사 실기 문제 복원 이벤트(1번~18번)

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

 

Study 이력 [2023-08-04]

출퇴근하면서 Lazy binding, GOT 등을 키워드로 유튜브 검색을 해봄. buffer overflow 와 lazy binding, got, plt 이런 용어들이 관련이 있어 보이는데 아직 잘 모르겠음.

 

https://youtu.be/Ss2e6JauS0Y

 

https://youtu.be/ZRHncXwedZ8

 

https://youtu.be/kUk5pw4w0h4

 

 

Study 이력 [2023-08-03]

문제 : 리눅스에서 지연 바인딩을 하는데 이 개념과, 동적으로 참조할 때 사용하는 테이블 명,... 을 작성하라. (너무 모른 내용이라 기억이 부족함)

 

Lazy binding, GOT 등을 키워드로 구글링 해봄

https://en.wikipedia.org/wiki/Global_Offset_Table

 

Global Offset Table - Wikipedia

From Wikipedia, the free encyclopedia -->

en.wikipedia.org


버퍼 오버플로우 공부하다가 보았던 내용이다. GOT PLT. 문제에서 함수 목록이 있는 테이블을 묻는 문제가 있었다. 둘 중 하나가 답일 수도 있겠다는 생각이 든다.

ELF got plt 지연 바인딩과 다들 관련된 개념인가보다.
https://movefast.tistory.com/200

 

[Linux] Lazy Binding

Lazy Binding 리눅스 ELF 바이너리에서 라이브러리 함수의 시작주소를 구하지 않다가, 함수를 처음 호출할 때 해당 주소를 구하는 것 이후 호출에는 함수의 실제 주소를 구하지 않고 바로바로 이동

movefast.tistory.com