올리디버거는 리버스 엔지니어링을 할 때 도움을 주는 툴, 프로그램 입니다.
여기서 리버스 엔지니어링은 한국어로 역공학이며, 프로그램을 역으로 다시 돌아가 분석하는 것을 말합니다.
주로 보안을 공부하는 분들에게 필수적인 과목이며, 현재 나와있는 툴 중 대부분이 어셈블리어로 프로그램을 나타내고 있기 때문에 리버스 엔지니어링을 공부하려면 어셈블리어를 공부하는 것이 좋다고 합니다.
어셈블리어는
프로그래밍 언어의 하나. 기계어에서 한 단계 위의 언어이며 기계어와 함께 단 둘뿐인 로우레벨(Low Level) 언어에 속한다.[1]
기계어라는 게 컴퓨터 관점에서 바로 읽을 수 있다는 것 빼고는 인간의 관점에서는 사용이 불편한 언어이기 때문에 이를 보완하기 위해 나온 것이 어셈블리어다. 따라서 어셈블리어의 특징은 기계어 1라인당 어셈블리 명령어가 대부분 1라인씩 대응되어 있고 이를 비교적 간단하게 짤 수 있는 어셈블러를 통해 기계어로 변환되도록 한 것이다. 이 때문에 어셈블리어는 고급 언어와 기계어 사이에 있다 하여 '중간 언어'라고도 불린다. 그리고 기계어는 CPU가 채택한 ISA에 따라 다 다르기 때문에 어셈블리어의 명령어 역시 통일된 규격이 없다. 또한 문법 아키텍처에 따라서도 다르고 어셈블러의 종류에 따라서도 문법/매크로 등이 제각각이다.
위에서 말했듯이 어셈블리어는 통일된 규격이 없으므로, 모든 플랫폼에서 공통된 사항은 아니나 특별히 우리는 대부분 현재 x86 을 많이 사용하고 있으므로 부연 설명하자면 x86 CPU 에서는, 문법이 크게 인텔 방식과 AT&T 방식으로 나눠진다. 인텔 방식은 가독성이 뛰어나고, AT&T 방식은 가독성은 떨어지나, 인텔 방식보다 좀더 많은 정보를 포함하고 있다고 선호하는 사람들도 있다.[2] 사실 간단한 수준이라면 뭘 쓰건 큰 차이는 없다.
Windows 플랫폼 위에서 코딩을 하게 될 경우, 보통 사용하는 IDE들이 인텔 문법을 기본으로 하는 경우가 많으므로 이를 그대로 사용하지만, 오픈소스 진영에서는 스탠다드 컴파일러셋에 포함된 GNU 어셈블러(GAS)가 기본 옵션은 AT&T 방식을 사용하고 인텔 방식은 언제까지나 별도 옵션으로 지원하는 정도이기 때문에 GNU 컴파일러 툴과의 연동성을 위해서라면 부득이하게 AT&T 방식을 사용해야 한다.[3]
출처 : 나무위키
다음은 올리디버거 2.0 다운 링크입니다.
http://www.ollydbg.de/odbg200.zip
'IT' 카테고리의 다른 글
치트엔진 6.8.2 최신버젼 다운! (Cheat Engine 6.8.2) (0) | 2019.01.27 |
---|---|
맥북도 utorrent가 있다! (맥북 유토렌트(utorrent) 설치) (0) | 2018.08.18 |
맥, 윈도우 Cheat Engine 6.8.1 다운로드 하기(리버싱 도구, 치트엔진 6.8.1) (0) | 2018.07.24 |
FREE-DOS(프리도스) 과연 무엇일까?(free-dos란?) (1) | 2018.07.16 |
[IT] 윈도우10 부팅디스크 만들기 (0) | 2018.07.11 |
댓글