https://m.blog.naver.com/PostView.nhn?blogId=aaasssddd25&logNo=220901909436&proxyReferer=https:%2F%2Fintellegibilisverum.tistory.com%2Fm%2Fentry%2F%25EC%2596%25B4%25EC%2585%2588%25EB%25B8%2594%25EB%25A6%25AC%25EC%2596%25B4-%25EA%25B0%2584%25EB%258B%25A8-%25EC%25A0%2595%25EB%25A6%25AC%3Fcategory%3D667978

안녕하세요.

칸입니다.

개인 사정으로 인하여 글을 너무 늦게 올리게 되었습니다.

시험 마치고 바로 올리려고 했는데 알바에 여행을 다녀왔더니 다소 소홀했던 것 같습니다...

자주 글을 쓰도록 노력하겠습니다

0. 들어가기에 앞서...

저 또한 배우는 입장이라 제가 작성한 글이 100% 맞는 것은 아닙니다. [정리]가 붙어있는 글들은 제가 공부한 내용을 정리할 겸 올리는 글입니다. 참고해주세요

1. 어셈블리어란?

어셈블리어는 리버스 엔지니어링을 하기 위한 가장 기초적인 도구입니다. 예컨대 영어공부를 시작하면 알파벳을 배우고 일본어 공부를 시작하면 히라가나를 배우는 거라고 생각하면 됩니다.

하지만 저는 이 어셈블리어를 어떻게 공부해야 할지 막막했습니다. 또한 책을 찾아 공부를 해도 계속 까먹기 때문에 잊어 버릴때마다 참고하기위해 이렇게 글로서 정리하게 되었습니다.

※ 참고

※ 용어 정리

기계어 : 컴퓨터가 읽을 수 있는 2진 숫자로 이루어진 언어

어셈블리어 : 기계어를 사람이 보기 쉽게 문자를 기호화 하여 나타낸 것

디스 어셈블리어 : 기계어를 어셈블리어로 변환하는 것

흔히 어셈블리어는 매우 쉽고 간결하다고 합니다. 그럼에도 어려운 이유는 단순함에 있습니다.

어셈블리어는 C/C++ 코드보다 얼마나 단순한 것일까? 우리가 냉장고에서 물을 꺼내 마시는 것을 생각해봅시다.