글로브가 제공한 상용 코드에는 말로크라는 동적 메모리 할당기가 포함돼 있습니다
동적 메모리 할당기 동적 메모리 할당기는 런타임 전에 필요한 개체의 크기나 수를 프로그램이 모를 때 사용됩니다
말록은 이 동적 메모리의 '덩어리'를 런타임에 나눠주는 일을 합니다
이 덩어리들은 기억의 연속적인 영역에서 옵니다
네 흡입기 기억은 특별할
게 없어요 말똥가리가 알에서 요청하는 연속적인 기억 블록일 뿐이죠
C의 현을 다뤄봤다면 말록을 썼을 거예요 네 C++에서는 좀 더 추상적이군요
오퍼레이터는
말록의 얇은 포장지다 그리고 추가로 특별하게 만든다 기타 등등
네 코드가 말로크를 명시적으로 호출하지 않아도 여러분이 사용하는 라이브러리
기능 중 do가 호출될 가능성이 큽니다 새 스레드를 시작하거나 파일을 열거나 I/O를 처리하는 등의 기본
작업은 모두 맬록을 사용합니다
맞습니다 맬록이 널리 사용된다는 사실과 메모리 부패가 여전히 문제인 c#,
c++ 같은 언어에 사용된다는 사실이 결합되어 개발의
좋은 표적이 됩니다 이 코스에서 다루고
있는 게 그겁니다
네 힙 취득이 공개된 건 1998년이었습니다 힙에서
사용자 데이터를 덮어쓴 게 다였죠 그리고 덮어쓰기는 예를 들어 오버플로를 통해
힙의 함수 포인터는 스택이나 다른 곳에서 같은 걸 하는 것과 다르지 않습니다
우리가 집중할 건 소위 '포괄적인' 고리타분한 착취 기술이에요 최대한 활용해서 멀록의 내부
작전을 자신에게 불리하게 적용할 거예요
그렇습니다 핵심은 이겁니다 기술을 익혔을 때 해당 기술에 맞는 프로그램에서
고성능 버그를 발견하면 정보 유출이나 서비스 거부 임의 코드 실행에 사용할 수 있습니다
요약하자면 프로그램은 런타임에 맬록 메모리 할당기를 사용해 힙 메모리를 요청할 수 있습니다
다른 메모리와 다르지 않죠
말록은 거의 모든 곳에서 쓰이고 우리는 그걸 이용할 방법을 배울 겁니다
다음 영상에서는 환경을 설정해 보겠습니다