우리가 프로그래밍 을하게되면서 쉽게 구할수도있고 많이 접하는
어느한 디버거에 대해서 간략히 설명을해볼까합니다.
오늘은 OllyDBG 란 리버싱 역공학(등등)을하면서 많이 
접하게되는 디버거중 많은사랑을 받는 프로그램중하나라고 해도 과언이아닐것입니다.
본필자는 올리디버거 에대하여 어느정도 아는지식으로 간략히 
쓰는것이므로 올리디버거 에대해서 정확히 안다고말씀드리기가 
애매하다고밝힙니다.

올리디버거? 하면 무엇부터떠로르십니까?
Patch(핵,패치)? 대부분 어느정도 아시는분들은
아실것입니다.하지만 올리디버거가 
무엇인지 잘모르시는분들은 패치/핵 프로그램을 만들떄 쓰는것이구나
하고 생각하시는 분들도 계실테지요^^
그럼 지금부터 간략히 설명드러가겠습니다.
올리디버거 에서 의 장점 이무엇일까요?
저는 이렇게생각합니다. 
1.브레이크포인트
2.실행중인프로세스(예:k4.exe)가 실행중일떄 어태치 를통하여 실행중인 파일을 
   올리디버거로 불러와 분석을하며 원하는값을찾아서 어셈분기문 이나 핵스로 수정할수
   있는기능.
이렇게 2가지로 나누어봤습니다.
우리가 리버싱역공학 을접하게되면서 많이쓰이는게 올리디버거이기떄문입니다.
그러므로 우리는 올리디버거를 사용하기위해서 기초적인
설정과 플러그인 설정  한글 설정  그다음으로 각창의 설명과이해 
이렇게 나누어질것입니다.
물론 올리디버거에서 해당 타겟파일을 불러와서 분석을하면서 
눈여겨봐야할곳은 각 창에 보이는 것들을 유심히봐야할것이며 
어셈블리언어와 함수의역할등등 을 기본적으로 알고이해해야할것입니다
하지만 이것들만안다고해서 무작정 분석하고 어셈분기문을수정 한다해서
되는것이아닙니다.
바로 브레이크포인트 란것도알어야합니다
브레이크포인트란?무엇일까요^^
간략히정리해보면 이렇습니다.
올디로 해당타겟파일을 불러와서 
프로그램 연산이 나왔을떄 내자신이 지금 어느곳을작업하는지
확인할떄 쓰는것이 바로 브레이크포인트라 말할수있겠습니다.
그럼 브레이크포인트는 어떻게쓰냐?
바로이렇게 쓰면됩니다.
브레이크포인트(단축키:F2)를눌러서 브포를걸어준후 실행(단축키:F9)을눌러주게되면
프로그램연산은 자기자신이 작업한곳까지 실행하다가 브레이크포인트가걸린곳부터는
실행이되지않습니다.
더쉽게말해서 집을걸어가야하는대 바로앞에 장애물이 있습니다 그럼 잠시멈추었다가 
피해가겠죠? 
그리고 자기자신이 원하는곳에 브포를걸고싶으면 그곳에다가브포를걸수가있습니다.
그렇다고 아무곳에다가 브포를걸면 안됩니다.
또다른예를들어보죠
프로그램 연산이 1~9 까지 된다고가정해봅시다
그리고 1 2 3 4 5 6 7 8 9 <:~이런식으로요 
그런대 프로그래밍 4~5 과정이필요없다고해서 3~6으로 JMP 를시켯습니다.
그런 상황에 4~5 에다가 브포를걸면 어떨까요?
답변은 아무변화가없습니다.
그러므로 브레이크포인트거는것도 신중히생각하셔서 거셔야합니다
Ps:자신이 프로그램 연산을하던중 어떤부분이 실행될떄 어떤역학을하는지
       알고싶을떄 사용하시면 편리합니다.