프로그램상의 2번 malloc 실제로 allocated 된 3개의 chunck?
소스 코드 상에서는 2번의 malloc을 수행하는데
pwndbg의 heap 명령어를 통해 확인해보면 실제로 allocated 된 chunk는 3개인 것을 확인할 수 있습니다.
int main() {
char *ptr = malloc(0x20);
struct over *over = malloc(0x20);
initialize();
over->table = table_func;
scanf("%s", ptr);
if( !over->table ){
return 0;
}
over->table();
return 0;
}
Topchunk는 이해가 가는데,
이 191 바이트 크기의 heap영역+0x8부터 시작하는 chunk는 무엇인가요?
(glibc 소스코드 오디팅을 통해서 해답을 찾을 수 있을거라 생각하는데, 너무 방대하여 어디부터 살펴보면 좋을지 감이 잘 오지 않습니다. 이에 glibc 디버깅을 위한 팁을 주신다면 매우 감사할 것 같습니다.)
#pwnable
작성자 정보