PLT와 GOT의 구조를 알아보기 위해 간단한 덧셈 소스코드를 만들어보자.만든 다음, Section header만 띄우기 위해 readelf -S을 쳐보면 다음과 같다.여기서 .plt와 .got.plt section을 볼 수 있다..plt 섹션은 Procedure Linkage Table의 약자로써 함수를 링크가능한 테이블로 프로그램이 호출하는 모든 함수가 나열되어 있다..got.plt 섹션은 Global Offset Table의 약자로 전역 offset을 가지는 테이블이다.이제 gdb로 파일을 둘러보자.main을 disassem 했을 경우 다음과 같다.main을 보았을 때 첫 부분에서 printf가 호출되는 것을 볼 수 있다. 한 번 내용을 들여다보자.어딘가로 점프를 하는 것을 볼 수 있다. 계속 따라..
동적, 정적 라이브러리 차이점에 대해서 알아보기로 하자. 정적 라이브러리는 프로그램과 같이 컴파일 & 링크 되어 실제 오브젝트 파일 내에 포함 되어서 실행 되는 라이브러리이다. 라이브러리와 프로그램이 합체되기 때문에 정적 라이브러리와 링크 하면 프로그램 용량이 늘어나는 현상을 볼 수 있다. 프로그램과 합체가 되면 속도는 빨라지지만 단점도 생기는데 라이브러리가 업데이트 되었을 때 그 라이브러리를 사용한 프로그램의 업데이트가 쉽지 않다. 이래서 DLL이라고 불리우는 동적 라이브러리가 탄생하게 되었는데 프로그램에 합체 된 정적 라이브러리를 밖으로 꺼내 놓기 시작했다. 이게 바로 동적 라이브러리이다. 이러면 아주 편하게 수정 & 배포를 할 수 있으리라 생각 했겠지만 속도가 느려지는 단점이 있다. 아래 프로그램으..
- Total
- Today
- Yesterday
- #WireShark
- #FTK
- #010 Editor
- #DEFT
- #메모리
- ethereumj
- #Chrome
- blockchain
- #WinHex
- #디지털 포렌식
- #GRR
- #WinPmem
- #Security
- #Pmem
- 4차 산업혁명
- #tcpdump
- #tool
- #Volatility
- 이더리움
- #Forensic
- #수정
- #포렌식
- #이미지 수정
- #캐시
- Fin Tech
- ethereum
- #Forensic Tools
- #크롬
- #ReKall
- #EnCase
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |