본문 바로가기

about Security/시스템 해킹3

[드림핵] x86 Assembly 어셈블러(Assembler) : 0과 1로 이루어진 기계어를 사람이 좀 더 쉽게 이해할 수 있도록 통역해주는, 일종의 번역기 역어셈블러(Disassembler) : 기계어로 구성된 소프트웨어를 넣으면 어셈블리 코드로 변역해준다. # 어셈블리 언어 (Assembly Language) 기계어와 치환되는 언어 - 기계어의 종류에 따라 어셈블리 언어도 다르다. 다양한 ISA가 존재하므로 그만큼의 어셈블리 언어 종류가 있다. > x64 어셈블리 언어 - 명령어(Opcode, Operation Code)와 피연산자(Operand)으로 구성된다. ex) mov eax, 3 >> mov:대입 / eax에 3을 - 명령어 Opcode 데이터 이동, Data Transfer mov, lea 산술 연산 , Arithmeti.. 2022. 3. 26.
[드림핵] Linux Memory Layout 프로세스 가상메모리의 각 구영이 어떤 정보를 담고 있는지 이해함으로써 프로세스 메모리의 전체 구조에 대해 큰 그림을 그려보자..! CPU는 실행할 명령어와 데이터를 메모리에서 읽고 ISA에 따라 처리하고 처리한 결과를 다시 메모리에 적재한다. 즉, CPU의 동작과 메모리는 서로 영향을 많이 주고 받는다. 만약 공격자가 메모리를 악의적으로 조작한다면 CPU는 공격자의 의도대로 동작할 수 있으며 이를 메모리가 오염됐다고 표현한다. >> 메모리 오염 (memory Corruption) 취약점 * 시스템 해킹의 많은 공격기법들이 메모리 오염을 기반으로 한다. # 리눅스 프로세스의 메모리 구조 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트로 구분한다. + 세그먼트 (segment) : 적재되는 데이터의 .. 2022. 3. 26.
[드림핵] Computer Architecture # SYSTEM HACKING * 가상 머신 : 컴퓨터를 에뮬레이팅 한 것 가상 머신을 작동 시키는 컴퓨터를 호스트(Host)라고 부르며, 가상 머신 안에서 작동하는 컴퓨터를 게스트(Guest)라고 부릅니다. 가상 머신을 이용하면 호스트는 게스트에게 독립된 실행환경을 제공할 수 있습니다. 그 위에서 게스트는 윈도우, 리눅스, 맥 등의 운영체제를 구동할 수도 있고, 원하는 특정 프로그램만 실행할 수도 있습니다. 대표적인 가상화 소프트웨어로는 VMware, VirtualBox, Parallels, QEMU 등이 있습니다. # COMPUTER ARCHITECTURE, 컴퓨터 구조 컴퓨터로서 작동할 수 있도록 하는 여러가지 부품에 대한 기본 설계 컴퓨터 구조 : 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및.. 2022. 3. 26.