0Pricing
Reverse Engineering & Binary Analysis Basics · 강의

x86/x64 어셈블리 기초

x86 및 x64 어셈블리 언어의 기본 명령어와 문법을 익힙니다.

x86/x64 어셈블리 기초은(는) CoddyKit의 무료 Reverse Engineering & Binary Analysis Basics 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Reverse Engineering & Binary Analysis Basics 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Reverse Engineering & Binary Analysis Basics 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

What is Assembly Language?

Welcome to the world of assembly language! This is the lowest-level programming language that humans typically read and write.

It's a symbolic representation of machine code, which are the raw binary instructions that a computer's processor (CPU) understands and executes directly. Think of it as the CPU's native tongue.

RE's Low-Level View

For reverse engineers, understanding assembly language is crucial. When you analyze a compiled program, you rarely have the original source code.

Instead, you'll be looking at its assembly representation. Learning assembly helps you:

  • Understand exactly how a program executes.
  • Identify functions, data, and control flow.
  • Uncover hidden behaviors or vulnerabilities.

x86 vs x64: The Difference

When we talk about x86/x64 assembly, we're referring to instruction sets for Intel and AMD processors. The main difference is the architecture's 'width':

  • x86: Refers to 32-bit architecture.
  • x64: Refers to 64-bit architecture, also known as AMD64 or Intel 64.

While x64 introduces more registers and wider data paths, many fundamental instructions remain similar, often with extended versions.

Basic Instruction Format

Assembly instructions generally follow a simple format: INSTRUCTION destination, source.

  • INSTRUCTION: This is the operation to perform (e.g., move, add, subtract).
  • destination: Where the result of the operation will be stored.
  • source: The data or location to operate on.

Some instructions might have one operand, or none at all. The order (destination, source) is common in Intel syntax, which we'll use.

The MOV Instruction

The MOV instruction is one of the most fundamental. It stands for 'move' and is used to copy data from a source to a destination.

It's important to note that MOV doesn't 'cut' or 'remove' the data from the source; it simply copies it, leaving the source unchanged.

Its general form is: MOV destination, source

MOV Examples (Conceptual)

Let's look at some conceptual examples of MOV. We'll use common x86/x64 register names like EAX, EBX, RCX, etc., which are tiny storage locations inside the CPU. Don't worry about their exact function yet!

  • MOV EAX, EBX: Copy the value from register EBX into register EAX.
  • MOV RCX, RDX: Copy the value from RDX into RCX (64-bit version).
  • MOV EAX, 123: Copy the constant value 123 into register EAX.

Arithmetic: ADD and SUB

Beyond just moving data, assembly allows basic arithmetic operations. Two common ones are ADD and SUB.

  • ADD destination, source: Adds the source value to the destination value, storing the result in destination.
  • SUB destination, source: Subtracts the source value from the destination value, storing the result in destination.

These operations modify the destination operand directly.

ADD/SUB Examples (Conceptual)

Here are some conceptual examples for ADD and SUB:

  • ADD EAX, EBX: EAX = EAX + EBX
  • SUB RCX, 10: RCX = RCX - 10
  • ADD RDX, R8: RDX = RDX + R8 (using a 64-bit general-purpose register R8)

Notice how the destination operand is updated with the result of the operation.

Immediate Values & Operands

In assembly, the terms 'operand' and 'immediate value' are important:

  • Operand: A value or location that an instruction operates on. This can be a register, a memory address, or an immediate value.
  • Immediate Value: A constant value that is encoded directly within the instruction itself. For example, in MOV EAX, 123, 123 is an immediate value.

Understanding these terms helps you interpret what kind of data an instruction is handling.

Assembly Basics Check

Which of the following best describes the function of the MOV instruction in x86/x64 assembly?

Recap: Assembly Fundamentals

Great job! You've just taken your first steps into the world of assembly language for x86/x64 processors.

We covered:

  • What assembly language is and why it's vital for reverse engineering.
  • The basic instruction format: INSTRUCTION destination, source.
  • Fundamental instructions like MOV (copy), ADD (add), and SUB (subtract).
  • The concept of immediate values and operands.

Next, we'll dive deeper into registers and how they interact with memory!

자주 묻는 질문

“x86/x64 어셈블리 기초” 강의는 무료인가요?

네 — “x86/x64 어셈블리 기초” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Reverse Engineering & Binary Analysis Basics 강의 전체를 잠금 해제할 수 있습니다. Reverse Engineering & Binary Analysis Basics 강의에는 총 4개의 강의가 포함되어 있습니다.

“x86/x64 어셈블리 기초”에서 뭘 배우나요?

x86 및 x64 어셈블리 언어의 기본 명령어와 문법을 익힙니다. 브라우저에서 직접 실행하는 실습 코드로 Reverse Engineering & Binary Analysis Basics을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Reverse Engineering & Binary Analysis Basics을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Reverse Engineering & Binary Analysis Basics은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“x86/x64 어셈블리 기초” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Reverse Engineering & Binary Analysis Basics 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Reverse Engineering & Binary Analysis Basics 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. x86/x64 어셈블리 기초
  2. 레지스터 및 메모리 연산
  3. 제어 흐름 및 함수 호출
  4. 스택과 호출 규약
← Reverse Engineering & Binary Analysis Basics(으)로 돌아가기