Reference
아스키 코드 표
자주 쓰이지만 외우기에는 귀찮고 없으면 불편한 아스키 코드표매번 구글 검색해 보기편한 아스키 코드표를 찾는게 번거로워개인용으로 코드표를 올려 놓습니다.
[C++] 6. C++ STL(Standard Template Library)
본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루어진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. STL(Standard Template Library) C++ 언어는 일반화 프로그래밍이라는 특징을 가지고 있습니다. 이러한 특징은 Java처럼 데이터를 중시하는 객체 지향 프로그래밍 언어와 달리 프로그램의 알고리즘에 중점을 둡니다. STL은 이러한 C++의 일반화 프로그래밍의 한 축으로 자료 구조, 함수, 알고리즘등을 쓰기 쉽..
[C++] 5. C++ 프렌드(friend), 스마트 포인터(smart pointer)
본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. 프렌드(friend) 객체의 private 멤버는 해당 객체의 public 멤버 함수로만 접근이 가능합니다. 하지만 경우에 따라서는 해당 객체의 멤버 함수가 아닌 함수도 private멤버에 접근해야만 할 경우가 발생합니다. 이런 경우 private 멤버에 접근하기 위해 public 멤버를 새롭게 추가하는 것으로 해결할 수 있는데..
[C++] 4. C++ 참조자(reference), 소멸자(destructor)
본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. 참조자(Reference) C++에서는 특정 변수의 실제 이름 대신 사용할 수 있는 참조자라는 기능이 있습니다. 참조자는 크기가 같은 큰 구조체와 같은 데이터를 함수의 인수로 전달하거나 클래스 설계할때 자주 사용됩니다. 문법은 아래와 같습니다. int 변수이름; // 변수의 선언 int& 참조자이름 = 변수이름; // 참조자 선..
[C++] 3. C++ new()와 delete()
본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro 1. C++ 메모리 동적 할당 C에서 메모리 동적할당에 사용되는 라이브러리 함수 malloc()등이 있다. C++에서도 마찬가지로 라이브러리 함수를 사용하기 때문에 malloc()으로 할당하거나 free()로 할당된 메모리의 해제하는 것이 가능하다. 그러나, C++은 라이브러리 함수 보다 효과적인 동적 할당 및 해제를 위해 new 연..
[C++] 2. C++ typeid, endl 과 \n 차이
본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 틀린부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro C++ type 확인 C++ 에서도 Java나 Python 처럼 객체의 타입에 관한 정보를 확인 해야 할 때가 있다. 이때 C++에서 사용되는 문법이 typeid 이다. typeid(표현식) 이 typeid는 다른 문법에서 처럼 타입을 확인할 수 있게 해주는 기능만 있는 것이 아닌 name 이라는 멤버 함수를 추가로 확인이 가능한데 이는..
[C++] 1. C++ nullptr, namespace
본글은 최근에 Pwnable 문제중 C언어, Python뿐만 아니라 C++로 이루이진 문제를 접하는 경우가 많아져서 Python, Java와 다른 C++만의 문법이나 차이점등을 정리하기 위해 작성한 글입니다. 틀린부분이 있다면 댓글로 알려주시기 바랍니다. (예시 코드등은 TCP 스쿨의 자료를 참고했습니다.) https://www.tcpschool.com/cpp/intro C++ 11/14 추가 내용 기존 C++ 98/03과는 다르게 11/14에 변경된 사항이 많은데 다음과 같다. 1. 초기화 리스트 및 초기화 방법의 통합 2. 새로운 타입의 추가 : long long형 정수 3. 새로운 스마트 포인터 추가 : 4. 널 포인터 상수 추가 : nullptr 5. 열거체의 범위 지정 6. 자동 타입 변환 : ..
[Pwn] Docker파일 주어진 경우 Heap 분석 환경셋팅
최근 Pwnable 문제를 풀면서 부딪힌 Error에 관해 해결방법을 찾아 정리한 글로 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. Heap 분석을 위한 플러그인 포너블 문제를 하다보면 stack과 heap을 분석해야 할 경우가 많다. 작성자가 사용하는 pwndbg나 pwn-peda의 경우 아래의 Github및 명령어를 이용해 빌드하는 편이다. # pwndbg install git clone https://github.com/pwndbg/pwndbg cd pwndbg ./setup.sh # gdb-peda install git clone https://github.com/longld/peda.git ~/peda echo "source ~/peda/peda.py" >> ~/.gdbinit #heapi..