# 모두를 위한 Reverse Engineering

> Clean Markdown view of GeekNews topic #16026. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16026](https://news.hada.io/topic?id=16026)
- GeekNews Markdown: [https://news.hada.io/topic/16026.md](https://news.hada.io/topic/16026.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-07-26T09:57:21+09:00
- Updated: 2024-07-26T09:57:21+09:00
- Original source: [0xinfection.github.io](https://0xinfection.github.io/reversing/)
- Points: 6
- Comments: 0

## Topic Body

### 소개

- **x86 강좌**
  - **Part 1: 목표**
  - **Part 2: 기술**
  - **Part 3: 악성코드의 종류**
  - **Part 4: x86 어셈블리 소개**
  - **Part 5: 이진수 시스템**
  - **Part 6: 16진수 시스템**
  - **Part 7: 트랜지스터와 메모리**
  - **Part 8: 바이트, 워드, 더블 워드 등**
  - **Part 9: x86 기본 아키텍처**
  - **Part 10: 범용 레지스터**
  - **Part 11: 세그먼트 레지스터**
  - **Part 12: 명령 포인터 레지스터**
  - **Part 13: 제어 레지스터**
  - **Part 14: 플래그**
  - **Part 15: 스택**
  - **Part 16: 힙**
  - **Part 17: 리눅스 설치 방법**
  - **Part 18: vim 텍스트 편집기**
  - **Part 19: 어셈블리 학습 이유**
  - **Part 20: 명령 코드 처리**
  - **Part 21: 프로그램 컴파일 방법**
  - **Part 22: ASM 프로그램 1 [즉시 데이터 이동]**
  - **Part 23: ASM 디버깅 1 [즉시 데이터 이동]**
  - **Part 24: ASM 해킹 1 [즉시 데이터 이동]**
  - **Part 25: ASM 프로그램 2 [레지스터 간 데이터 이동]**
  - **Part 26: ASM 디버깅 2 [레지스터 간 데이터 이동]**
  - **Part 27: ASM 해킹 2 [레지스터 간 데이터 이동]**
  - **Part 28: ASM 프로그램 3 [메모리와 레지스터 간 데이터 이동]**
  - **Part 29: ASM 디버깅 3 [메모리와 레지스터 간 데이터 이동]**
  - **Part 30: ASM 해킹 3 [메모리와 레지스터 간 데이터 이동]**
  - **Part 31: ASM 프로그램 4 [레지스터와 메모리 간 데이터 이동]**
  - **Part 32: ASM 디버깅 4 [레지스터와 메모리 간 데이터 이동]**
  - **Part 33: ASM 해킹 4 [레지스터와 메모리 간 데이터 이동]**
  - **Part 34: ASM 프로그램 5 [레지스터를 통한 간접 주소 지정]**
  - **Part 35: ASM 디버깅 5 [레지스터를 통한 간접 주소 지정]**
  - **Part 36: ASM 해킹 5 [레지스터를 통한 간접 주소 지정]**
  - **Part 37: ASM 프로그램 6 [CMOV 명령어]**
  - **Part 38: ASM 디버깅 6 [CMOV 명령어]**
  - **Part 39: ASM 해킹 6 [CMOV 명령어]**
  - **Part 40: 결론**

- **ARM-32 강좌 1**
  - **Part 1: 삶의 의미**
  - **Part 2: 숫자 시스템**
  - **Part 3: 이진수 덧셈**
  - **Part 4: 이진수 뺄셈**
  - **Part 5: 워드 길이**
  - **Part 6: 레지스터**
  - **Part 7: 프로그램 카운터**
  - **Part 8: CPSR**
  - **Part 9: 링크 레지스터**
  - **Part 10: 스택 포인터**
  - **Part 11: ARM 펌웨어 부팅 절차**
  - **Part 12: 폰 노이만 아키텍처**
  - **Part 13: 명령 파이프라인**
  - **Part 14: ADD**
  - **Part 15: ADD 디버깅**
  - **Part 16: ADD 해킹**
  - **Part 17: ADDS**
  - **Part 18: ADDS 디버깅**
  - **Part 19: ADDS 해킹**
  - **Part 20: ADC**
  - **Part 21: ADC 디버깅**
  - **Part 22: ADC 해킹**
  - **Part 23: SUB**
  - **Part 24: SUB 디버깅**
  - **Part 25: SUB 해킹**

- **ARM-32 강좌 2**
  - **Part 1: 삶의 의미 Part 2**
  - **Part 2: 숫자 시스템**
  - **Part 3: 이진수 덧셈**
  - **Part 4: 이진수 뺄셈**
  - **Part 5: 워드 길이**
  - **Part 6: 레지스터**
  - **Part 7: 프로그램 카운터**
  - **Part 8: CPSR**
  - **Part 9: 링크 레지스터**
  - **Part 10: 스택 포인터**
  - **Part 11: 펌웨어 부팅 절차**
  - **Part 12: 폰 노이만 아키텍처**
  - **Part 13: 명령 파이프라인**
  - **Part 14: 헬로 월드**
  - **Part 15: 헬로 월드 디버깅**
  - **Part 16: 헬로 월드 해킹**
  - **Part 17: 상수**
  - **Part 18: 상수 디버깅**
  - **Part 19: 상수 해킹**
  - **Part 20: 문자 변수**
  - **Part 21: 문자 변수 디버깅**
  - **Part 22: 문자 변수 해킹**
  - **Part 23: 불리언 변수**
  - **Part 24: 불리언 변수 디버깅**
  - **Part 25: 불리언 변수 해킹**
  - **Part 26: 정수 변수**
  - **Part 27: 정수 변수 디버깅**
  - **Part 28: 정수 변수 해킹**
  - **Part 29: 부동소수점 변수**
  - **Part 30: 부동소수점 변수 디버깅**
  - **Part 31: 부동소수점 변수 해킹**
  - **Part 32: 더블 변수**
  - **Part 33: 더블 변수 디버깅**
  - **Part 34: 더블 변수 해킹**
  - **Part 35: SizeOf 연산자**
  - **Part 36: SizeOf 연산자 디버깅**
  - **Part 37: SizeOf 연산자 해킹**
  - **Part 38: 전위 증가 연산자**
  - **Part 39: 전위 증가 연산자 디버깅**
  - **Part 40: 전위 증가 연산자 해킹**
  - **Part 41: 후위 증가 연산자**
  - **Part 42: 후위 증가 연산자 디버깅**
  - **Part 43: 후위 증가 연산자 해킹**
  - **Part 44: 전위 감소 연산자**
  - **Part 45: 전위 감소 연산자 디버깅**
  - **Part 46: 전위 감소 연산자 해킹**
  - **Part 47: 후위 감소 연산자**
  - **Part 48: 후위 감소 연산자 디버깅**
  - **Part 49: 후위 감소 연산자 해킹**

- **x64 강좌**
  - **Part 1: 사이버 혁명**
  - **Part 2: 트랜지스터**
  - **Part 3: 논리 게이트**
  - **Part 4: 숫자 시스템**
  - **Part 5: 이진수 덧셈**
  - **Part 6: 이진수 뺄셈**
  - **Part 7: 워드 길이**
  - **Part 8: 일반 아키텍처**
  - **Part 9: 호출 규약**
  - **Part 10: 불리언 명령어**
  - **Part 11: 포인터**
  - **Part 12: 유효 주소 로드**
  - **Part 13: 데이터 세그먼트**
  - **Part 14: SHL 명령어**
  - **Part 15: SHR 명령어**
  - **Part 16: ROL 명령어**
  - **Part 17: ROR 명령어**
  - **Part 18: 부트 섹터 기본 [Part 1]**
  - **Part 19: 부트 섹터 기본 [Part 2]**
  - **Part 20: 부트 섹터 기본 [Part 3]**
  - **Part 21: 부트 섹터 기본 [Part 4]**
  - **Part 22: 부트 섹터 기본 [Part 5]**
  - **Part 23: 부트 섹터 기본 [Part 6]**
  - **Part 24: 부트 섹터 기본 [Part 7]**
  - **Part 25: 부트 섹터 기본 [Part 8]**
  - **Part 26: 부트 섹터 기본 [Part 9]**
  - **Part 27: x64 어셈블리 [Part 1]**
  - **Part 28: x64 어셈블리 [Part 2]**
  - **Part 29: x64 어셈블리 [Part 3]**
  - **Part 30: x64 어셈블리 [Part 4]**
  - **Part 31: x64 어셈블리 [Part 5]**
  - **Part 32: x64 어셈블리 [Part 6]**
  - **Part 33: x64 어셈블리 [Part 7]**
  - **Part 34: x64 C++ 1 코드 [Part 1]**
  - **Part 35: x64 C++ 2 디버그 [Part 2]**
  - **Part 36: x64 C++ 3 해킹 [Part 3]**
  - **Part 37: x64 C & 생명의 기원**
  - **Part 38: x64 네트워킹 기본**
  - **Part 39: 왜 C인가?**
  - **Part 40: 헬로 월드 해킹!**
  - **Part 41: 변수 해킹!**
  - **Part 42: 분기 해킹!**
  - **Part 43: 포인터 해킹!**

- **ARM-64 강좌**
  - **Part 1: 삶의 의미**
  - **Part 2: 개발 환경 설정**
  - **Part 3: "헬로 월드"**
  - **Part 4: "헬로 월드" 디버깅**
  - **Part 5: "헬로 월드" 해킹**
  - **Part 6: 기본 I/O**
  - **Part 7: 기본 I/O 디버깅**
  - **Part 8: 기본 I/O 해킹**
  - **Part 9: 문자 원시 데이터 타입**
  - **Part 10: 문자 원시 데이터 타입 디버깅**
  - **Part 11: 문자 원시 데이터 타입 해킹**
  - **Part 12: 불리언 원시 데이터 타입**
  - **Part 13: 불리언 원시 데이터 타입 디버깅**
  - **Part 14: 불리언 원시 데이터 타입 해킹**
  - **Part 15: 부동소수점 원시 데이터 타입**
  - **Part 16: 부동소수점 원시 데이터 타입 디버깅**
  - **Part 17: 부동소수점 원시 데이터 타입 해킹**
  - **Part 18: 더블 원시 데이터 타입**
  - **Part 19: 더블 원시 데이터 타입 디버깅**
  - **Part 20: 더블 원시 데이터 타입 해킹**

- **Pico 해킹 강좌**
  - **Part 1: 이유와 방법**
  - **Part 2: 헬로 월드**
  - **Part 3: 헬로 월드 디버깅**
  - **Part 4: 헬로 월드 해킹**
  - **Part 5: char**
  - **Part 6: char 디버깅**
  - **Part 7: char 해킹**
  - **Part 8: int**
  - **Part 9: int 디버깅**
  - **Part 10: int 해킹**
  - **Part 11: float**
  - **Part 12: float 디버깅**
  - **Part 13: float 해킹**
  - **Part 14: double**
  - **Part 15: double 디버깅**
  - **Part 16: double 해킹**
  - **Part 17: "절대 권력은 절대적으로 부패한다!", 입력의 비극적 이야기**
  - **Part 18: "800년 동안 나는 제다이를 훈련했다!", 입력의 힘**
  - **Part 19: 입력**
  - **Part 20: 입력 디버깅**

- **Reverse Engineering For Everyone!**
  - **역공학이란 무엇인가?**
    - Wikipedia에 따르면, 역공학은 인공 객체를 분해하여 설계, 아키텍처, 코드 등을 밝히거나 객체에서 지식을 추출하는 과정임. 이는 자연 현상을 연구하는 과학적 연구와 유사함.
    - 이 튜토리얼 세트는 역공학을 가능한 한 쉽게 만들기 위해 존재함.
    - 이 포괄적인 역공학 튜토리얼 세트는 x86, x64, 32비트 ARM 및 64비트 아키텍처를 다룸.
    - 초보자에게는 역공학의 기본 개념을 익히는 데 도움이 되며, 개념을 복습하려는 사람들에게도 유용함.
    - PDF 또는 MOBI 형식으로 전체 튜토리얼 세트를 다운로드할 수 있음.

### GN⁺의 정리

- 이 기사에서는 x86, x64, ARM-32, ARM-64 및 Pico 해킹 강좌를 포함한 다양한 역공학 튜토리얼을 다룸.
- 초보자부터 중급 수준의 역공학 기술을 익히고자 하는 사람들에게 유용한 자료임.
- 사이버 보안 분야에서 역공학 기술은 매우 중요함.
- PDF 및 MOBI 형식으로 튜토리얼을 제공하여 접근성을 높임.
- 유사한 기능을 가진 프로젝트로는 "Practical Reverse Engineering"과 "Reversing: Secrets of Reverse Engineering"이 있음.

## Comments



_No public comments on this page._
