Study 52

URI,URL,URN 개념 차이

✅ 1️⃣ 왜 이름이 "URI" (Uniform Resource Identifier)일까?👉 "Uniform" (일관된)인터넷에서 모든 리소스를 "일관된 방식"으로 식별할 수 있도록 하기 위해 붙여진 이름."모든 리소스를 한 가지 방식으로 식별하자!" → 즉, **"통일된 리소스 식별자"**라는 의미.👉 "Resource" (리소스)웹에 존재하는 모든 것(웹페이지, 이미지, 비디오, 책 ISBN, 이메일 주소 등)을 포함하는 개념.인터넷에서 어떤 것이든 리소스로 본다. (웹사이트, 파일, API 등)👉 "Identifier" (식별자)"이게 무엇인지 식별하는 문자열"이라는 의미.URI는 단순히 "위치"를 가리키는 게 아니라, 리소스를 "식별"하는 것이 중요했음.💡 URI란?👉 **"인터넷에서 리..

Study/Web 2025.02.25

UTF-8 개념, 변환 과정, 설계 이유

🎯 UTF-8 변환 완벽 정리 (최종 버전)이제까지 공부한 내용을 정확하고 깔끔하게 정리해볼게! 🚀✅ 1️⃣ UTF-8 개념UTF-8은 유니코드 문자를 가변 길이(1~4바이트)로 인코딩하는 방식기존 ASCII(0~127)는 1바이트(7비트) 그대로 유지하여 호환성을 가짐ASCII보다 큰 문자(한글, 한자, 이모지 등)는 2~4바이트로 인코딩됨UTF-8에서 각 바이트는 특정 패턴을 가지며, 첫 바이트를 보면 바이트 수를 알 수 있음✅ 2️⃣ UTF-8 바이트 개수 결정 규칙코드 포인트 범위 필요 비트 수 UTF-8 변환 형식 사용 바이트U+0000 ~ U+007F7비트0xxxxxxx1바이트 (ASCII)U+0080 ~ U+07FF11비트110xxxxx 10xxxxxx2바이트U+0800 ~ U+FFFF1..

왜 BOF로 return address를 덮어 씌울까?

🔥 BOF로 리턴 주소를 덮어씌우는 이유 🔥💡 왜 굳이 BOF(버퍼 오버플로우)로 리턴 주소를 덮어야 할까?💡 그냥 rdi에 /bin/sh 주소만 넣으면 안 되는 걸까?✅ 정답: 프로그램의 흐름을 강제로 변경하려면 return address를 덮어야 하기 때문!✅ BOF 없이 그냥 주소를 찍으면, 프로그램이 원래 흐름대로 실행되면서 우리가 원하는 system("/bin/sh") 실행이 안 됨!🚖 1️⃣ 네비게이션 비유로 이해하기🚕 정상적인 프로그램 실행 흐름원래 프로그램은 함수 실행이 끝나면 **리턴 주소(return address)**로 복귀해야 함.ret 명령어가 실행되면, 스택에서 원래 리턴 주소를 꺼내서 이동함.🚕 BOF 없이 그냥 rdi에 값만 넣으면?rdi에 /bin/sh 주소를 ..

Study/System 2025.02.24

return address vs ret 가젯 차이점과 관계

🔍 return address vs ret 가젯 – 차이점과 관계💡 이 두 개념은 밀접하게 연관되어 있지만 다릅니다.✔ return address: 함수가 끝난 후 어디로 돌아갈지 저장된 주소✔ ret 가젯: 스택에서 return address를 꺼내 실행하는 명령어🚖 비유하자면?return address = 내비게이션 목적지 (택시가 가야 할 주소)ret 가젯 = 택시 기사가 목적지로 출발하는 행동🛣️ 1️⃣ return address란?📌 함수를 호출하면 CPU는 다음 명령을 어디서 실행해야 하는지 알아야 함.💡 그래서 함수가 실행되기 전에, 원래 실행하던 위치(RIP)를 스택에 저장함.✔ 예제: 함수 호출 후 return address 저장call some_functioncall 명령어가..

Study/System 2025.02.24

ROP(Return-Oriented Programming)

🧠 ROP(리턴 지향 프로그래밍) 쉽게 이해하기: 일상적인 예시 포함ROP(Return-Oriented Programming)를 이해하려면 메모리 구조와 함수 호출 방식을 알아야 합니다.이를 쉽게 설명하기 위해 택배 배달 시스템을 예로 들어보겠습니다. 🚚📦🔍 1️⃣ ROP란?✅ 기본 개념프로그램의 **리턴 주소(Return Address)**를 조작하여 원하는 함수를 실행하는 기법입니다.일반적인 BOF(버퍼 오버플로우) 공격과 달리, 쉘코드를 삽입하지 않고 바이너리에 존재하는 코드 조각(가젯, gadgets)을 조합하여 원하는 기능을 수행합니다.NX(Non-Executable) 보호 우회 가능 → system("/bin/sh") 실행 가능!🏠 2️⃣ ROP를 택배 배달 시스템으로 비유하기📌 메..

Study/System 2025.02.24

ret(return) 가젯

🛠️ ROP에서 ret 가젯이란? (일상 비유 포함)ROP 익스플로잇을 할 때 가장 자주 사용되는 가젯 중 하나가 ret(return) 가젯입니다.이 가젯이 왜 중요한지 쉽게 이해할 수 있도록 일상적인 비유와 함께 설명할게요! 😊🔍 1️⃣ ret 가젯이란?정의: ret 가젯은 현재 스택의 최상단(Top of Stack, TOS)에 있는 값을 RIP(Instruction Pointer)로 이동시키는 역할을 합니다.역할: 스택 정렬을 맞추고, 올바른 ROP 체인을 유지하기 위해 사용됩니다.🚖 2️⃣ 일상적인 비유: 택시기사와 내비게이션 🗺️📌 ret 가젯이 필요한 이유를 택시기사(Taxi) 비유로 설명🚕 Imagine:당신이 택시를 탔어요. 목적지(함수)가 여러 개 있고, 택시 기사(CPU)가 ..

Study/System 2025.02.24

가젯(Gadget)

🔍 가젯(Gadget)의 유래 & 어원"가젯(Gadget)"이라는 단어는 **기계 장치나 도구(tool)**를 의미하며,작고 유용한 도구라는 뜻에서 유래했습니다.💡 하지만, 보안(해킹)에서 "가젯(Gadget)"이란?Return-Oriented Programming(ROP) 기법에서기존 바이너리 안에 있는 **작은 코드 조각(Instructions)**을 의미함.해커들이 새로운 코드를 삽입하지 않고,이미 존재하는 코드 조각을 조립하여 원하는 기능을 수행하는 데 사용됨.📖 1️⃣ 가젯(Gadget)이라는 단어의 어원"Gadget"은 **19세기 말(1886년경)**부터 사용된 단어.어원은 확실하지 않지만, 몇 가지 설이 있음.💡 가젯(Gadget)의 어원 설어원 설명프랑스어 "gâchette"🔫 ..

Study/System 2025.02.24

WebKit 타임스탬프와 Unix 타임스탬프

1. WebKit 타임스탬프와 Unix 타임스탬프란?📌 WebKit TimestampWebKit(Chrome, Safari 등)에서 사용하는 타임스탬프 형식.기준 시간: 1601년 1월 1일 00:00:00 UTC단위: 마이크로초(1,000,000분의 1초, 10⁻⁶초)사용 예시:Chrome의 History DB (start_time, last_visit_time 등)WebKit 기반 브라우저의 쿠키, 캐시, 방문 기록 저장📌 Unix Timestamp (Epoch Time)Unix 시스템에서 널리 사용하는 시간 형식.기준 시간: 1970년 1월 1일 00:00:00 UTC단위: 초 (seconds)사용 예시:대부분의 운영체제 (Linux, MacOS, Windows 일부)프로그래밍 언어 (Pytho..

Study/Forensics 2025.02.23

XML(Extensible Markup Language)

🔍 XML이란?XML은 Extensible Markup Language의 약자로, 데이터를 저장하고 전달하는 데 사용되는 태그 기반 마크업 언어입니다.📌 XML 약어✔ XML = Extensible Markup LanguageExtensible → 확장 가능한Markup → 태그를 이용한 구조화된 데이터Language → 데이터 저장 및 전송 언어📁 XML의 특징✔ 구조화된 데이터 저장✔ 사람과 기계가 모두 읽을 수 있음✔ HTML과 비슷하지만 더 유연함 (사용자 정의 태그 가능)✔ JSON과 함께 API 데이터 교환에 자주 사용됨📊 XML 예제📌 기본 XML 구조 1 홍길동 hong@example.com 2 김..

Study/Forensics 2025.02.22

EVTX, XML, MSC, Snap-in의 관계 총정리

🎯 EVTX, XML, MSC, Snap-in의 관계 총정리Windows에서 이벤트 로그를 관리하는 구조를 쉽게 이해할 수 있도록 전체 관계를 정리해줄게! 🚀🏛️ 1. 전체 개념 구조📌 EVTX (이벤트 로그 파일)📌 XML (EVTX 내부 데이터 포맷)📌 MSC (Windows 관리 도구 실행 파일)📌 Snap-in (MMC에서 실행되는 모듈)📌 MMC (Windows 관리 도구의 컨트롤 패널)➡ EVTX → XML → MSC → Snap-in → MMC 순으로 개념이 연결됨!🔄 2. 개념 간 관계 정리개념 역할 관계EVTXWindows 이벤트 로그 파일 (Binary)내부 데이터를 XML 포맷으로 저장XMLEVTX 내부에서 이벤트 데이터를 기록하는 포맷EVTX 파일이 바이너리로 저장하..

Study/Forensics 2025.02.22