목록Information security/System security (34)
nemo의 이야기
목적) 어셈블리 언어를 배우는 목적은 CPU에서 명령을 내리기 위해 고유의 명령어 세트가 마련되어 있는데 이 명령어 세트를 기계어라고 한다. 이 기계어는 숫자들의 규칙조합으로 프로그래밍하기 어렵다. 그래서 이 기계어를 좀더 이해하기 쉬운 기호 코드로 나태낸것이 어셈빌리어이다. 취약점 분석하기 위해 꼭 필요하다. 구성) 세그먼트(segment)는 프로그램에 정의된 특정 영역으로, 코드, 데이터, 그리고 스택(stack)으로 알려져있는 것을 포함한다. .data(.bss, heep, ...) - 전역변수(초기화, 비초기화) - 힙 메모리(동적 메모리/malloc, ...) label 크기 상수 아스키코드 NULL msg db 'test', 10, 01 - label - 크기 db => d : prefix b..
프로그램 : 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 : 실행중인 파일, 메..