Penetration/etc
개인 공부 - 리버싱 분야(프로그램의 생성)
시건방진영수
2024. 4. 30. 10:58
컴퓨터에서 정수를 저장하는 방식 - 엔디언(Endian)
빅엔디언은 16진수 0x12345678을 저장할 때 [12 34 56 78] 순서대로 저장하는 방식이다.
리틀엔디언은 16진수 0x12345678을 저장할 때 [78 56 34 12] 순서대로 저장하는 방식이다.
그리고, 이 둘을 선택적으로 사용할 수 있는 바이엔디언 방식이 있다.
고급 언어로 작성된 원시 프로그램을 기계어로 번역하는 프로그램 - 컴파일러
고급 프로그래밍 언어로 작성된 프로그램 - 원시 프로그램
컴파일러에 의해서 생성되는 기계어 프로그램 - 목적 프로그램
원시 프로그램을 컴파일 과정 없이 직접 실행하는 방법 - 인터프리터
C프로그램의 컴파일 과정
전처리기(preprocessor), 컴파일러, 어셈블러(assembler), 링커(linker)과정을 거쳐서 목적프로그램을 생성함
생성된 목적 프로그램은 로더(loader)에 의해 메모리에 적재되고 프로그램 명령어를 실행할 수 있게 된다.
전처리기(preprocessor) - 데이터를 처리하기 전에 변경이 필요한 부분을 처리하는 과정
컴파일러(compiler) - 고급 언어로 작성된 원시 프로그램을 기계어로 번역하는 프로그램
어셈블러(assembler) - 어셈블리어 코드를 목적코드로 변환함
링커(linker) - 여러 목적 프로그램을 하나로 연결하는 역할 수행
컴파일러(compiler)는 어휘 분석, 구문 분석, 의미 분석, 코드 최적화 과정을 거친다.