Security/Reversing
![[Reversing] 03. 리틀 엔디언 표기법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJU29Z%2FbtrmRjQPaGj%2F3rQMR9rJRlCztIkYDhkgPk%2Fimg.jpg)
[Reversing] 03. 리틀 엔디언 표기법
1. 바이트 오더링 바이트 오더링이란 컴퓨터에서 메모리에 데이터를 저장하는 방식을 의미 바이트 오더링 방식에는 크게 빅 엔디언(Big Endian)과 리틀 엔디언(Litle Endian) 방식이 있다. 총 4개의 (크기가 다른) 자료형은 각 엔디언 방식에 따라서 저장하는 방식이 다르다. Type Name Size 빅 엔디언 리틀 엔디언 BYTE b 1 [12] [12] WORD w 2 [12][34] [34][12] DWORD dw 4 [12][34][56][78] [78][56][34][12] char [] str 6 [61][62][63][64][65][00] [61][62][63][64][65][00] 📌 ASCII 문자 'a'는 0x61과 같고, 'e'는 0x65와 같다. 그리고 문자열 마지막은 ..
![[Reversing] OllyDbg 기초 사용법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0Z0ZR%2FbtrmKiM918D%2FTKGiJynJKtNV9SUKzHGBZ0%2Fimg.jpg)
[Reversing] OllyDbg 기초 사용법
디버거 동작 명령(Code Window에서 동작함) 명령어 단축키 설명 Go to Ctrl+G 원하는 주소로 이동(코드/메모리를 확인할 때 사용, 실행되는 것은 아님) Execute till Cursor F4 커서 위치까지 실행(디버깅하고 싶은 주소까지 바로 갈 수 있음) Comment ; comment 추가 User-defined commnet 마우스 우측 메뉴 Label : 라벨 추가 User-defined label 마우스 우측 메뉴 Set/Reset Breakpoint F2 BP 설정/해제 Run F9 실행(BP가 걸려있으면 그곳에서 정지됨) Show the currnet EIP * 현재 EIP 위치를 보여줌 Show the previous Cursor - 직전 커서 위치를 다시 보여줌 Previ..
![[Reversing] 02장. Hello World! 리버싱](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFto4k%2FbtrmNpxu1rR%2F9U1XnirkQ5l6HKeTj9iGxK%2Fimg.jpg)
[Reversing] 02장. Hello World! 리버싱
1. Hello World 프로그램 1.1 디버거와 어셈블리 언어 소스코드(.cpp) ➜ 빌드 ➜ 실행 파일(.exe) 생성 사람이 이해하기 쉬운 소스코드를 기계가 이해하기 쉬운 기계어로 변환하는 것 기계어는 사람이 알아보기 어렵기 때문에 좀 더 편하게 보기 위해 디버거 유틸리티를 사용한다. 📌 실행 파일을 생성하는 어떠한 프로그래밍 언어라도 빌드 과정을 거치면 모두 기계어로 변환된다. 디버거를 통해 어떤 실행 파일이라도 어셈블리 언어로 번역해서 볼 수 있기 때문에 리버서는 기본적으로 어셈블리 언어를 잘 알아야 한다. 어셈블리 언어는 CPU에 종속됨 - 일반 PC 多 사용 : Intel x86 계열 - 모바일 제품 多 사용 : ARM 계열 ➜ 서로 어셈블리 명령어의 형태가 다름 2. HelloWorld...
![[Reversing] 01장. 리버싱 스토리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMXZOe%2FbtrmLz8oO8i%2FUbcGcF22ybd6RPVi7HsdAK%2Fimg.jpg)
[Reversing] 01장. 리버싱 스토리
👆 위 책을 읽고 정리한 내용입니다. 1. 리버스 엔지니어링 리버스 엔지니어링(Reverse Engineering, Re: 역공학) : 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업 2. 리버스 코드 엔지니어링 리버스 코드 엔지니어링(Reverse Code Engineering, RCE) : 소프트웨어 분야의 리버스 엔지니어링 2.1 리버싱(분석) 방법 1) 정적 분석 파일의 겉모습을 관찰하여 분석하는 방법 정적 분석 단계에서는 파일을 실행하지 않음 파일의 종류, 크기, 헤더(PE) 정보, Import/Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디버깅 정보, 디지털 인증서 등의 다양한..