목표
데이터가 존재하지 않는 elf 파일에 데이터를 심자!
입력파일
gPtr에 데이터가 존재하지 않음
1 |
|
확인
빌드는 간단하게!
1 |
|
gdb로 찍어보면 아래와 같음
1 |
|
LIEF로 elf에 section 추가하기
몇가지 포인트
- Section 추가는 기본적으로 Executable만 됨
- 가상주소를 명시해야함
- segments는 자동으로 생김
- flags를 할당하지 않으면 GDB가 로딩 안함, 데이터랑 똑같은 flags를 주면 될듯
1 |
|
결과 확인!
gPtr 변수가 gdb로 보인다.
1 |
|
추가로 겹쳐서 로딩해보기
.data section이 0x601020부터 시작하는데 0x601030에 애매하게 겹치기로 로딩해보자.
1 |
|
앞의 값들은 .data section 값을 하드코딩으로 가져옴
1 |
|
실행결과는.. 잘된다!
1 |
|