Reversing (8) 썸네일형 리스트형 IDA Pro 보호되어 있는 글입니다. UDP flooding 실습 보호되어 있는 글입니다. VMware Pro / Windows XP 설치 보호되어 있는 글입니다. crackme #1 / 리틀 엔디안 / PEview 보호되어 있는 글입니다. Visual Studio 2019 / Immunity Debugger / 문자열 패치 보호되어 있는 글입니다. [Dreamhack] x86 Assembly 기계어를 어셈블리 언어로 번역하는 역어셈블러. 어셈블리어만 이해할 수 있다면 역어셈블러를 사용하여 소프트웨어를 분석할 수 있다. 어셈블리 언어는 기계어와 치환되는 언어. 🤖 CPU에 사용되는 명령어 집합구조(ISA)는 x86-64 등 종류가 다양하기 때문에 이에 따른 어셈블리어의 종류도 다양하다. ex) x64 → x64 어셈블리어 x64 어셈블리어 [ 문법 구조 ] 명령어 (Operation Code, Opcode) & 피연산자 (Operand) mov eax, 3 -> 대입해라 eax에, 3을 opcode operand1, operand2 피연산자 1. 상수 2. 레지스터 3. 메모리 ex) QWORD PTR [0x8048000] : 0x8048000의 데이터를 8바이트만큼 참조 [ OPCODE(명령.. [Dreamhack] Computer Science 컴퓨터 구조 💻 : 컴퓨터가 효율적으로 작동할 수 있도록 HW 및 SW 기능을 고안하고, 이들을 구성하는 방법 1) 기능 구조에 대한 설계 : 컴퓨터가 연산을 효율적으로 하기 위해 어떤 기능들이 필요한지 고민하고 설계하는 분야 ex) 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조 등 2) 명령어 집합구조 (Instruction Set Architecture, ISA) : CPU가 사용하는 명령어와 관련된 설계 ex) ARM, MIPS, AVR, 인텔의 x86-64 아키텍처 3) 마이크로 아키텍처 : 정의된 명령어 집합을 효율적으로 처리할 수 있도록 CPU의 회로를 설계하는 분야 중앙처리장치 (Central Processing Unit, CPU) - 연산과 제어 : 프로그램의 연산을 처리하고 시스템을.. [Dreamhack] Binary & Analysis 리버스 엔지니어링 (Reverse Engineering) = 역공학 = 리버싱 🔍 프로그래밍 언어에는 고급 언어들과 어셈블리어, 기계어 등의 저급 언어들이 있다. 어셈블리어 → 기계어 (0, 1) by 어셈블러 컴파일) 고급 언어 (C, C++ ...) → 어셈블리어, 기계어by 컴파일러 * 인터프리팅 by 인터프린터 : 통역하듯이 그때 그때 작동함. - 모든 언어가 컴파일을 필요로 하는 건 아니다! ex) Python, Javascript 컴파일 과정 C로 작성된 코드 → 전처리 → 컴파일 → 어셈블 → 링크 → 바이너리로 번역됨 1. 전처리 (Preprocessing) : 컴파일러가 소스 코드를 어셈블리어로 컴파일하기 전에, 필요한 형식으로 가공하는 과정 ex) 주석 제거, 매크로 치환 (#defin.. 이전 1 다음