- Security Insight
- NUlleX
- ☆ Memory ☆
- Comments on: Home
- Comments for FORENSIC-PROOF
- illusionary origami
- InfoSec Institute Resources
- inREVERSE
- Comments for Network Forensics…
- Comments for SecurityLearn
- セキュリティ、個人情報の最新ニュース:Security NE…
- ITmedia
- BIGLOBEセキュリティニュース
- ITpro セキュリティ
- セキュリティ - ZDNet Japan
- ZLeBj[XFZLeB@nifty
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 윈도우용 Snort 설치
- 우분투 설치
- 나고야대학 기숙사
- 윈도우에 우분투 설치
- 카톡 친구 목록
- pythonrequests
- 일본어 신문 읽기
- 手作りパイ
- 카카오톡 삭제
- 이서규
- 가상머신에 우분투 설치
- 오메이칸
- 아이폰 업데이트 친구 목록
- 나고야대학
- 나고야대학 히가시야마
- 우분투
- 정보보호
- 나고야대학 연구생
- 우분투 설치 중 오류 64
- 함안산인우체국
- 한국에서 일본으로 해외배송 서비스
- 일본대학원 연구생
- 함안우체국
- 인터네셔날 레지던스 히가시야마
- 일본어학원 추천
- NHK로 일본어 공부하기
- IEEE Security & Privacy
- 히가시야마 기숙사
- 보안
- 이서규선생님
- Today
- Total
소나기
x86 프로세서와 어셈블리 코드에 대한 이해 본문
프로그래밍 언어는 중요하다. 하지만 해킹을 배우는 데에 있어서 프로그래밍 언어는 단순히 언어, 즉 수단일 뿐이다. 우리는 여기서 프로그래밍 언어, 그중에서도 C언어가 CPU가 인식할 수 있는 기계어로 컴파일된다는 사실에 주목해야 한다.
코드는 컴파일 되어 실행 가능한 바이너리 파일이 될 때 까지는 아무것도 할 수 없다.
c코드 자체는 프로그램이 아니다.
그렇다면 x86 아키텍처에서 실행가능한 이 바이너리 파일은 어떻게 생긴놈일까?
필요한 개념부터 하나씩 알아가자.
우선 16진법이란?
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
2진법이란?
0 |
1 |
0 |
1 |
10을 각각 2진법과 16진법으로 표현해보자
10진법 |
2진법 |
16진법 |
10 |
1010 |
A |
간단하다. 아주
다음은?
오래된 인텔 프로세서는 32비트 주소체계를 사용하고 새로운 것은 64비트를 사용한다. 64비트는 32비트 호환모드로 동작해 32비트 코드를 빠르게 실행 할 수 있다.
하지만 16진수의 바이트 코드도 사용하기에 그리 편하지 않다
그래서 나온것이 어셈블리 언어이다.
어셈블리 언어는 기계어 명령에 대응하는 연상기호(Mnemonic)이다.
C언어나 기타언어와 달리 어셈블리 언어는 기계어와 1:1 대응관계에 있다.
사용하는 프로세서에 따라 각기 다른 어셈블리 언어가 존재한다.
x86 어셈블리 코드를 작성할 때, 사람들은 AT&T 문법과 인텔문법중 하나를 사용한다.
프로세서는 레지스터 라는 자신만의 특별한 변수셋을 갖고 있다.
대부분의 명령은 데이터를 읽거나 쓰기 위해 레지스터를 사용한다.
그래서 프로세서의 레지스터를 이해하는 것은 명령을 이해하는데 중요하다.
하나씩 읽고 이해하면서, 모르는 것은 다시 그 정의를 찾고 비교하고 이해해 나가는 것
공부란 바로 이런것이겠지
'연구 > Hardware' 카테고리의 다른 글
Ubuntu 버전 확인 명령어 (0) | 2013.08.30 |
---|---|
[目次] コンピュータの構成と設計(上) (0) | 2012.10.17 |