링커 2

리버싱 6차시 과제

ELF ELF? ELF는 Executable and Linkable Format의 약자로 말 그대로 Linkable과 Executable의 포맷이다. 간단하게 말하면 Linux/UNIX 실행파일이다. Linking View, Execution View linking전에 object file들이 relocatable file일때가 linking view이다. linking 끝나고 executable이 되면 execution view다. 그냥 말그대로 executable(실행가능)이되서 executable file이라고 부른다. 둘 다 ELF다. Executable header, Program header, Section, Section header ELF Header(Executable Header) 이 ..

리버싱 2차시 과제

리버싱이란? 리버싱 : Reverse engineering의 약자로 역공학이라는 뜻이다. 바이너리의 구조, 기능, 동작을 분석한다. 크게 두 가지 방법이 존재한다. 정적 분석 : 파일을 실행하지 않고 파일 종류, 헤더, 디스어셈블러, 디컴파일러로 코드를 분석 동적 분석 : 파일을 실행하면서 코드 흐름과 메모리 상태 등을 보면서 분석 gcc 사용 코드를 작성하고 조금 옵션을 줘서 컴파일을 해보겠다. layer7.c는 원본 소스코드 파일이다. layer7.i는 전처리된 소스코드 파일이다. layer7.s는 어셈블리어 파일이다. layer7.o는 어셈블러에 의해 기계어로 변환된 파일이다. layer7은 layer7.o가 링커가 링킹을 하고나서 나온 최종적인 바이너리 파일이다. 빌드는 이 전처리기, 컴파일러, ..