1. 변수 할당 및 출력 - name = "John" - age = 30 - 다음과 같이 변수 name과 age를 할당하고, - 이를 이용하여 "제 이름은 [name]이고, 나이는 [age]살 입니다." - 라는 문자열을 출력하는 코드를 작성. # 출력 방법 print() 함수 사용 # 예1) print("이름",name) => "이름 John" # 예2) print(f"이름 {name}") => 위와 동일 # 1주차 (1회) 1번> 변수 할당 및 출력 name = "John" age = 30 print("제 이름은", name, f"이고, 나이는 {age}살 입니다.") 제 이름은 John 이고, 나이는 30살 입니다. 2. 데이터 타입 변환 - age_str = "25" - 다음과 같은 문자열이 주어..
출처 https://dreamhack.io/lecture/courses/63 x86 Assembly🤖: Essential Part(2) 스택과 프로시저에 대한 어셈블리 명령어를 살펴봅니다. dreamhack.io System Hacking STAGE 2 - Background: Computer Science (3/3) x86 Assembly (2) 공부 겸 메모 ✍️ 개요 - 스택 - 스택 프레임 - 시스템 콜 - 스택 연산: push, pop - 함수 호출: call, leave, ret - 시스템 콜: syscall 1. 서론 이전 포스팅 x86 어셈블리 (1)에서는 산술연산, 논리연산, 비교, 분기의 어셈블리 명령어를 배웠다. 1. 산술 연산: add, sub, inc, dec 2. 논리 연산: a..
출처 https://dreamhack.io/lecture/courses/37 x86 Assembly🤖: Essential Part(1) 시스템 해킹을 배우기 위해 필요한 기초적인 어셈블리 언어를 배웁니다. dreamhack.io System Hacking STAGE 2 - Background: Computer Science (3/3) x86 Assembly (1) 공부 겸 메모 ✍️ 개요 - 어셈블리어란? - x86-64 어셈블리어 - 데이터 이동: mov, lea - 산술 연산: add, sub, inc, dec - 논리 연산: and, or, xor, not - 비교: cmp, test - 분기: jmp, je, jg 1. 서론 해커의 언어: 어셈블리 💬 컴퓨터 속에는 하나의 거대한 세계가 있다. 복..
출처 https://dreamhack.io/lecture/courses/43 Background: Computer Architecture 컴퓨터 구조 및 명령어 집합 구조에 대해 간단히 설명하고, 커리큘럼이 대상으로 하는 인텔 x86-64 아키텍처에 대해 살펴봅니다. dreamhack.io System Hacking STAGE 2 - Background: Computer Science (2/3) Computer Architecture 공부 겸 메모 ✍️ 개요 - 컴퓨터 구조(Computer Architecture) - 명령어 집합 구조(Instruction Set Architecture, ISA) - 범용 레지스터(General Register) - 세그먼트 레지스터(Segment Register) - ..
System Hacking STAGE 2 : Background - Computer Science (1/3) Linuux Memory Layout 퀴즈 풀이 Quiz 1. e는 어느 세그먼트의 데이터를 가리키는가? #include int a = 0xa; const char b[] = "d_str"; int c; int foo(int arg) { int d = 0xd; return 0; } int main() { int *e = malloc(sizeof(*e)); return 0; } A 데이터 B 힙 ✔️ C 스택 D 읽기 전용 데이터 (rodata) E 코드 F BSS 풀이: e는 malloc()을 호출하여 메모리를 동적 할당 받았으므로 힙 세그먼트에 위치한다. Quiz 2. a가 위치하는 세그먼트는 ..
출처 https://learn.dreamhack.io/52#1 로그인 | Dreamhack dreamhack.io System Hacking STAGE 2 - Background: Computer Science (1/3) Linuux Memory Layout 공부 겸 메모 ✍️ 개요 - 세그먼트란? - 코드 세그먼트 - 데이터 세그먼트 - BSS 세그먼트 - 스택 세그먼트 - 힙 세그먼트 1. 서론 컴퓨터는 크게 CPU와 메모리로 구성되어 있다. CPU는 실행할 명령어와 명령어 처리에 필요한 데이터를 메모리에서 읽고, Instrucction Set Architecture(ISA)에 따라 이를 처리한다. 그리고 연산의 결과를 다시 메모리에 적재한다. 이는 CPU의 동작과 메모리 사이에 밀접한 관련이 있음을..