본문 바로가기
Study/Reversing

[리버싱] 어셈블리어에 대해 알아보자

by graygreat 2017. 8. 21.
728x90
반응형


어셈블리어(Assembly language)란?


- 기계어와 1대1 대응되는 컴퓨터 프로그램의 저급 언어.



어셈블러(Assember)란?


- 어셈블리어로 작성된 소스 코드를 기계어로 변환하는 프로그램.



어셈블리어 구조

CPU는 2진수로 모든 것을 처리하는데 어셈블리 명령어들도 2진수로 되어 있다.


하지만 2진수로 된 것은 알아보기가 힘들어 mov, add와 같은 형태로 변환하여 보여진다.


mov %eax %ebx는 C언어로 보면 ebx = eax의 경우와 같다.


eax에 저장된 값을 ebx에 할당한다.



어셈블리어 문법 (Intel vs AT&T)


Intel 방식


- 가독성이 뛰어남.


- 윈도우 환경에서 구동.


- 오퍼랜드 위치 : mov dest, source


- 메모리 오퍼랜드 : mov [eax], [ebx]



AT&T 방식


- 가독성은 떨어짐.


- 리눅스 환경에서 구동


- 인텔 방식보다 좀 더 많은 정보를 포함하고 있음.


- '%', '$'가 붙음.


- 오퍼랜드 위치 : mov source, dest


- 메모리 오퍼랜드 : mov (%ebx), (%eax)






반응형

댓글