본문 바로가기

#dokydoky

검색하기
#dokydoky
프로필사진 dokydoky

  • 분류 전체보기 (40)
    • System Hacking (12)
    • Windows Exploit (4)
    • Network & Encryption (8)
    • Secure Coding (3)
    • Programming (10)
    • Malware (2)
    • ETC.. (1)
Guestbook
Notice
  • Profile
Recent Posts
Recent Comments
Tags
more
Archives
Today
Total
관리 메뉴
  • 글쓰기
  • 방명록
  • RSS
  • 관리

목록2017/04 (1)

#dokydoky

[C++] Double free example

Double free 취약코드 struct P {}; class C { P *p; public: C(P *p) : p(p) {} ~C() { delete p; } void f() {} }; void g(C c) { c.f(); } void main() { P *p = new P; C c(p); g(c); } g()의 매개변수 타입을 reference로 변경해주면 되지만, 근본적으로 이런 실수가 발생하지 않게 복사 생성자와 대입 연산자를 삭제한다. 이 경우 g()함수의 매개변수가 reference 타입이 아니면 컴파일 에러가 발생하여 컴파일 타임에 오류를 확인할 수 있다. struct P {}; class C { P *p; public: C(P *p) : p(p) {} C(const C&) = delete..

Secure Coding 2017. 4. 7. 12:38
Prev 1 Next

Blog is powered by kakao / Designed by Tistory

티스토리툴바