Assembly Language
어셈블리 언어에 대해서 알고 계시나요? 어셈블리 언어는 리버스 엔지니어링이나 시스템 해킹을 하게 되면 자주 보는 언어입니다.
프로그래밍을 처음 접하게 되면 아마 대부분은 C언어를 처음으로 시작하게 됩니다. 물론 C언어가 아니라 다른 언어부터 시작하는 분도 계시죠.
C언어를 처음 공부하게 되면 '고급언어와 저급언어'에 대해서 공부하게 됩니다. C언어는 '고급언어'에 속하죠.
하지만 어셈블리어는 '저급언어'에 속합니다.
고급언어는 프로그래머의 입장에서 만들어진 언어이고, 저급언어는 컴퓨터의 입장에서 만들어진 언어라고 생각하면 쉽습니다.
어셈블리어 종류
어셈블리어에는 여러 종류가 있습니다.
IA-32, IA-64, ARM, MIPS가 존재하는데 intel cpu를 사용하기 때문에 IA-32, IA-64에 대해서 공부하도록 하겠습니다.
어셈블리어 컴파일
어셈블리어는 어셈블러와 링커를 통해서 기계어로 해석됩니다.
환경
앞으로 학습하기 위해서는 환경이 중요한데요. 32비트와 64비트 모두 공부하기 위해서 Ubuntu 14.04 LTS 32비트와 64비트를 모두 다운받아 가상머신에 설치해야 합니다.
'High Level Technique > Shellcoding' 카테고리의 다른 글
Section (0) | 2016.03.11 |
---|---|
출력과 입력 (0) | 2016.03.11 |
System Call (0) | 2016.03.11 |
Hello World (0) | 2016.03.11 |
IA-32, IA-64 Register (0) | 2016.03.11 |