일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- docker
- c++
- Python.h: No such file or directory
- 개발
- wsl2 복구
- Windows 부팅 오류
- pip 에러 해결
- 리커버릿
- 실시간로깅
- python3.11 pip
- std::cerr
- 임베디드 시스템 해킹
- OpenAI 개발
- Seccomp bypass
- 공유 라이브러리는 왜 항상 같은 순서로 맵핑 될까?
- z3 signed 이슈
- Recoverit
- DYNAMIC Section
- GDB
- vmware 반응 속도
- tool
- pwntools
- GEF
- 지훈현서
- vhdx 파일 복구
- VSCode C++ 표준 버전 수정
- python3.11 설치
- Python3
- python
- pwn
- Today
- Total
목록c++ (3)
OZ1NG의 뽀나블(Pwnable)
[개요] C++에서는 출력 스트림으로 stdout에 대응하는 std::cout가 존재하듯, stderr에 대응하는 std::cerr가 존재한다. 하지만, std::cerr를 실시간 로깅에 사용하는 경우, 특히 멀티 프로세싱 또는 멀티 스레딩 프로그램 개발에서의 실시간 로깅에 사용하는 경우 다음과 같은 문제가 발생할 수 있다. [문제 코드] std::cerr
[*] 클래스 생성자의 첫 번째 인자에는 항상 해당 클래스를 저장할 공간의 주소가 들어간다. // cpp new test #include using namespace std; class PageHeap{ public: int a = 1; int b = 2; PageHeap(){ cout
[*] tcmalloc을 분석하다가 아래와 같은 코드를 봤는데 뭔지 잘모르겠어서 삽질해보게 되었다. new (&pageheap_.memory) PageHeap; 먼저 두괄식으로 결과부터 말하자면 보통 C++에서 동적 할당할 때 사용하는 new operator는 정적할당도 가능하다는 것이다. (정확히는 정적할당된 공간에 클래스를 저장한다) [*] 사용법 new (void * address) Class; 위와 같은 형태로 구성된다. 결과 : address에 Class가 할당된다. 정적 변수에 클래스를 할당 할 수 있다. [*] 테스트 코드 // cpp new test #include using namespace std; class PageHeap{ public: int a = 1; int b = 2; Pag..