: RE, RCE(Reverse Code Engineering_소프트웨어 분야의 RE), Reversing, 역공학
: 물건이나 기계 장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업
→ 학습 및 연구, 악성 코드·불법 프로그램 분석
: 파일을 실행하지 않고 분석하는 방법
: 파일의 종류(EXE, DLL, DOC, ZIP 등), 크기, 헤더(PE) 정보, Import/Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디버깅 정보, 디지털 인증서, 내부 코드와 구조 등을 분석
! 동적으로 변하는 주소값이나 인자를 모두 알아내기 힘듦
# IDA(Hex-Rays)
: 파일을 실행하여 분석하는 방법
: 실행, 코드 흐름, 메모리 상태, 파일, 레지스트리, 네트워크, 프로그램 내부 구조와 동작 원리 등을 분석
# OllyDbg, x64dbg, WinDbg, gdb(Linux)
→ 두 분석 방법을 연계해서 사용
: 주석이나 참조할 헤더 파일 등을 미리 처리 → 분석 및 최적화 → assemble
# HxD
# disassembler
: 기계 코드를 사람이 알아보기 쉽게 Instruction(명령어) 단위로 표현한 것
: Operand(연산수), OP Code(연산 부호)로 구성
cf) 일반 PC에서 많이 사용되는 Intel x86 계열의 CPU와 모바일 제품에서 많이 사용되는 ARM 계열의 CPU는 서로 어셈블리 명령어의 태가 다름
: 프로그램의 파일이나 실행 중인 프로세스 메모리의 내용을 변경하는 작업
→ 프로그램의 취약점 수정과 기능 개선 등
ex) Microsoft의 Windows 업데이트
: 의도가 비합적적이고 비도덕적인 패치
→ 저작권을 침해하는 불법 복제 및 사용 등
005 Stack (0) | 2020.09.19 |
---|---|
004 Assembly (0) | 2020.09.19 |
003 Register (0) | 2020.09.19 |
002 Byte Ordering (0) | 2020.09.18 |
000 프로젝트 개요 및 기획서 (0) | 2020.09.18 |