본문 바로가기
반응형

전체 글140

[DreamHack] Blue-Whale 문제 (dive 오류 해결) [CTF] Dreamhack: Blue-Whale 문제 풀이 및 Docker 레이어 분석기#Docker #CTF #Dreamhack #Forensics #LayerAnalysis📌 문제 상황드림핵의 blue-whale 문제를 해결하기 위해 Docker 이미지 분석 도구인 dive를 사용하려 했으나, 최신 Docker 엔진과의 호환성 문제로 인해 "could not find blobs/sha256/..." 에러가 발생하며 분석이 불가능한 상황에 직면했습니다.❌ Problem 1: Dive 도구 실행 실패dive dreamhackofficial/blue-whale:1 명령어를 실행했으나, 로컬에 이미지가 있음에도 불구하고 레이어 파일을 찾지 못하는 버그가 발생했습니다.cannot fetch imagecou.. 2026. 4. 1.
8. 가상함수와 추상클래스 C++에서 가상 함수(Virtual Function)와 추상 클래스(Abstract Class)는 객체지향 프로그래밍에서 다형성(Polymorphism)을 구현하기 위한 핵심 개념이다. 특히 상속 관계에서 기본 클래스와 파생 클래스가 동일한 인터페이스를 사용하면서도 각각 다른 동작을 수행하도록 만드는 데 중요한 역할을 한다.1. 가상 함수 (Virtual Function)가상 함수는 virtual 키워드로 선언된 멤버 함수이다. 기본 클래스에서 virtual로 선언된 함수는 파생 클래스에서 재정의될 수 있으며, 실제 호출되는 함수는 객체의 실제 타입에 따라 결정된다.기본 클래스에서 가상 함수를 선언하는 예시는 다음과 같다.class Base{public: virtual void f();};파생 클래.. 2026. 3. 13.
7. 상속 C++에서 상속(Inheritance)은 객체지향 프로그래밍의 핵심 개념 중 하나로, 기존 클래스의 기능을 새로운 클래스가 물려받아 확장할 수 있도록 하는 기능이다. 상속을 사용하면 이미 구현된 코드를 재사용할 수 있고, 프로그램 구조를 보다 체계적으로 설계할 수 있다. 또한 상속 관계를 통해 클래스 간 계층 구조를 만들 수 있으며, 코드의 재사용성과 유지보수성을 크게 향상시킬 수 있다.1. 상속의 기본 개념상속은 기존 클래스의 속성과 기능을 새로운 클래스가 물려받는 것을 의미한다.기본 클래스(Base Class) : 부모 클래스파생 클래스(Derived Class) : 자식 클래스파생 클래스는 기본 클래스의 멤버 변수와 멤버 함수를 상속받아 사용할 수 있으며, 필요한 기능을 추가하거나 기존 기능을 확장.. 2026. 3. 13.
6. 프렌드와 연산자 중복 C++에서는 클래스의 캡슐화를 유지하면서도 특정 외부 함수나 다른 클래스가 내부 데이터에 접근할 수 있도록 하는 프렌드(friend) 기능을 제공한다. 또한 사용자 정의 자료형에 대해 기존 연산자를 재정의할 수 있는 연산자 중복(Operator Overloading) 기능도 제공한다. 이 두 개념은 C++ 객체지향 프로그래밍에서 클래스 간 협력과 직관적인 연산 표현을 가능하게 하는 중요한 기능이다.1. 프렌드(friend)의 개념프렌드는 특정 외부 함수나 클래스가 다른 클래스의 private 또는 protected 멤버에 접근할 수 있도록 허용하는 기능이다. 일반적으로 클래스 외부 함수는 private 멤버에 접근할 수 없지만, friend로 선언되면 예외적으로 접근이 가능해진다.프렌드 함수는 클래스의 .. 2026. 3. 13.
5. 함수 중복과 static 변수 C++에서는 함수 중복(Function Overloading)과 static 멤버 개념이 객체지향 프로그래밍에서 중요한 역할을 한다. 함수 중복은 동일한 이름의 함수를 여러 개 정의할 수 있도록 해주지만, 잘못 설계하면 컴파일러가 어떤 함수를 호출해야 할지 판단하지 못하는 모호성(Ambiguity) 문제가 발생할 수 있다. 또한 static 멤버는 객체와 독립적으로 존재하는 클래스 수준의 멤버로서 여러 객체가 데이터를 공유하거나 공통 기능을 수행할 때 사용된다.1. 함수 중복(Function Overloading)함수 중복은 같은 이름의 함수를 매개변수의 개수나 타입을 다르게 하여 여러 개 정의하는 기능이다. 이를 통해 동일한 기능을 수행하는 함수들을 하나의 이름으로 관리할 수 있다.int add(int.. 2026. 3. 13.
4. 함수와 참조, 복사 생성자 C++에서 함수 호출 방식과 참조(reference), 그리고 복사 생성자(copy constructor)는 객체를 전달하고 복사하는 과정에서 매우 중요한 개념이다. 특히 객체를 함수의 매개변수로 전달할 때 어떤 방식으로 전달되는지에 따라 객체의 값이 변경되는 방식이나 메모리 사용 방식이 달라진다.1. Call by Value (값에 의한 호출)Call by Value는 함수 호출 시 전달되는 값이 복사되어 매개변수로 전달되는 방식이다. 즉, 함수 내부에서 사용하는 변수는 원본 변수와 별개의 복사본이다.함수 호출 과정은 다음과 같다.함수 호출 시 전달된 값이 매개변수로 복사된다매개변수는 스택 메모리에 저장된다함수 내부에서 변경된 값은 원본 변수에 영향을 주지 않는다예시void increase(Circle.. 2026. 3. 13.
반응형