보호된 글: [pwnable with C++] 객체에 대해서 알아낸 점
보호 글이라서 요약이 없습니다.
ipwn's blog
보호 글이라서 요약이 없습니다.
string 메모리 구조 /*nothing*/ #include <string> #include <iostream> using namespace std; int main() { string* test = new string(); getline(cin, *test); return 0; } 코드는 이렇게 짜놓고 대충 메모리 구조만 봤다. 이 상태에서 처음엔 값을 0x10이하의 길이로 주고 힙을 한 번 봤음. (input : ipwnipwn\n) pwndbg> x/24gx 0x613c10 0x613c10: 0x0000000000000000 0x0000000000000031 0x613c20: 0x0000000000613c30 0x0000000000000008 0x613c30:…
namespace는 클래스의 느낌이랑 비슷한 것 같다. 다만 오버라이딩 오버로딩 안되고 접근자 설정 못 해주고 뭐.. 그런 거? 그냥 딱 소속만 정해준다. 기본적으로 namespace는 외부를 끌어다 쓰거나 내부에서 새로 만들어서 쓴다. using namespace std; using namespace blahblah; 위와 같은 형식처럼 namespace를 사용할 수 있다 (충돌 위험으로 권하지는 않음). 소속을 지정해주지 않으면 대충 std랑 blahblah로 간주하겠다는 의민데,…