본문 바로가기

2018/103

[리버스 엔지니어링] 바이트 오더링 컴퓨터에서 메모리에 데이터를 저장하는 방식을 의미하는 바이트 오더링의 리틀 엔디언 표기법과 빅엔디언 표기법에 대해서 알아보겠습니다. 우선 바이트 오더링이란? 데이터가 바이트 단위로 메모리에 저장되는 순서를 의미하며 각 CPU 벤더 의존적인 특징을 가지고 있다. 바이트 오더링의 종류에는 크게 리틀 엔디엔 표기법과 빅 엔디언 표기법이 존재합니다. 위 그림를 보시면 쉽게 이해하실수 있으실겁니다. 바이트 타입의 변수에 저장할 경우 두 방식의 차이는 없습니다. 하지만 2바이트 이상의 크기를 가진 자료형을 저장할 때부터 차이가 나타납니다. 빅 엔디언 방식은 데이터를 저장할 때 사람이 보는 방식과 동일하게 앞에서부터 순차적으로 저장합니다. 그러나 리틀 엔디엔 방식은 데이터를 저장할 때 역순으로 저장하는 것입니다. 리.. 2018. 10. 31.
[리버스 엔지니어링] OllyDbg 간단한 사용법 디버깅 툴을 사용하기 전에 먼저 알아야 할 내용이 있습니다. 디버그를 통해 나오는 어셈블리 언어는 CPU에 종속되어 있습니다. 즉 일반 PC에서 많이 사용되는 intel x86 계열 CPU와 모바일 제품에서 많이 사용되는 ARM 계열의 CPU는 서로 어셈블리 명령어의 형태가 다릅니다. 위 사진은 OllyDBG의 기본 화면입니다. OllyDbg는 무료에, 직관적인 인터페이스와 확장 기능을 통해 많은 사랑을 받고 있는 디버거 입니다. 위 화면에서 나오는 Code Window/Register Window/Dump Window/Stack Window가 존재하는데 Code Window 기본적으로 디스어셈블리 코드를 표시하여 각종 커멘트나 라벨을 보여주며, 코드를 분석하여 Loop, Jump 위치 등의 정보를 표시.. 2018. 10. 30.
[리버스 엔지니어링] 리버스 엔지니어링이란? 지금까지 리버스 엔지니어링에 대해 수박 겉핡기씩으로 공부 해왔지만 이번 기회에 제대로 공부해보고자 하여 리버스 엔지니어링에 대해 공부한 내용을 공유하고자 합니다.제가 주로 공부하는데 참고하는 책은 "리버싱 핵심 원리"라는 서적이며 그 외에도 인터넷 서칭을 통해 더 많은 내용을 찾아 공부하려고 합니다. 게시글을 보시고 질문이나 지적할 내용이 있다면 댓글로 달아주시면 감사하겠습니다. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 제가 처음으로 리버스 엔지니어링에 대해 알게 된건 대학교 1학년 시절 어떠한 롤 전적 검색 사이트에 롤 전.. 2018. 10. 30.
반응형