nemo의 이야기

실행 환경 구축 및 어셈블리 본문

Information security/System security

실행 환경 구축 및 어셈블리

nemojjong 2017. 8. 9. 13:12

프로그램 : VMware Workstation

운영체제 : Red Hat Linux 6.2

 

실행 환경을 구축하기 위해 Assembler를 설치해야되는데 GAS, NASM, MASM 등.. 이 있는데 이 중에서 NASM을 사용한다.

 

NASM( Netwire Assembler ) 설치 과정

 

#> wget http://www.nasm.us/pub/nasm/releasebuilds/0.99.05/nasm-0.99.05-xdoc.tar.gz

 

#> tar xvfz nasm-0.99.05-xdoc.tar.gz

 

#> ./configure && make install

 

#> cd nasm-0.99.05

 

 

#> cp nasm /usr/bin/

 

program : 실행 가능한 파일, 저장장치

process : 실행중인 파일, 메모리(RAM, 주기억장치)

 

프로그램 컴파일 과정

전처리 -> 컴파일 -> 어셈블 -> 링커

 

전처리 과정에서는 C언어로 고급언어로 프로그래머가 작성

 

컴파일 과정에서는 전처리에서 만든 .i을 어셈블리 파일 .s를 만들어 어셈블 형태로 변환

 

어셈블 과정에서는 .s 어셈블 파일을 입력받아 .o 오브젝트 파일을 만들어 실행 가능한 파일 형태로 변환

 

링커 과정에서는 목적 파일과 실행에 필요한 라이브러리들을 하나로 묶어준다

 

여기서 프로그램 취약점을 분석하기 위해서 어심블 형태로 변환된 파일을 읽는 것이 중요하다.

 

리눅스에서 실행 가능한 모든 파일은 ELF 실행 파일 구조를 갖는다. ELF 실행파일 안에는 실행에 필요한 실행코드, 변수 ...가 들어있다.

 

#> xxd test.o

 

 

 

ELF 정보가 들어 있다.

 

어셈블어와 기계어를 확인하고 싶으면

 

#> objdump -d test.o

 

 

 

 

 

 

'Information security > System security' 카테고리의 다른 글

시스템 콜(System call)  (0) 2017.08.16
argc, argv에 이해  (0) 2017.08.14
어셈블리 함수  (0) 2017.08.12
메모리 구조  (0) 2017.08.11
어셈블리어 기초  (0) 2017.08.10
Comments