모두를 위한 Reverse Engineering
(0xinfection.github.io)소개
- 
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"이 있음.