|
|
|
|
|
|
DFB문서로 원재아빠님의 강좌를 보면서 공부를 하고있습니다.
그중에. fake chunk에 관한 설명중. 'free(mol1);이후 mol1의 크기를 음수로 정의 해준다면. 전체 chunk boundry 안에서 mol2의 병합이 이뤄지기 전에 mol2의 chunk가 앞선 mol1의 크기를 음수값으로 인식한다면 우리는 실제 mol1과 mol2의 chunk사이에 임의의 chunk를 만들어 낼 수 있을것이다.' 이렇게 나와있습니다.
음수일때 왜 임의의 chunk가 생성되는지에 대한 설명이 안나와 있내요. 검색을해도 어떤 키워드로 찾아야할지몰라서 이렇게 질문을 남겨요.ㅎㅎ
강좌에서.
fake chunk를 만드는 부분이 있습니다.거기서보면. 'free(mol1);이후 mol1의 크기를 음수로 정의 해준다면. 전체 chunk boundry 안에서 mol2의 병합이 이뤄지기 전에 mol2의 chunk가 앞선 mol1의 크기를 음수값으로 인식한다면 우리는 실제 mol1과 mol2의 chunk사이에 임의의 chunk를 만들어 낼 수 있을것이다.' 이렇게 나와있습니다. 음수일때 왜 임의의 chunk가 생성되는지에 대한 설명이 안나와 있내요. 검색을해도 어떻게 찾아야할지몰라서
왜??? 임의의 chunk가 생성되는지도 모르습니다.ㅎㅎ
============ 아 한가지더있는데요..
//test2.c #include <stdio.h> #include "dumpcode.h"
main(int argc, char *argv[]) { char *mol1; char *mol2;
mol1 = malloc(16); mol2 = malloc(32);
if ( argc< 2) { fprintf(stderr, "error argsn" ); exit(0); }
strcpy( mol1 , argv[1] );
dumpcode(mol2-28,64); free(mol1); dumpcode(mol2-28,64); free(mol2); } $ ./test2 `perl -e 'printf "A"x16 ; printf "xfcxffxffxffxffxffxffxffxa4x9ax04x08xa4x9ax04x08"'`
--->이런 소스가 있는데 말입니다. $ ./test2 `perl -e 'printf "A"x16 ; 이부분에서 리눅스책을 아무리뒤져도;; 이런명령어는 모르겠더군요;; ^^
-->그리구 xfcxffxffxffxffxffxffxffxa4x9ax04x08xa4x9ax04x08이부분은 기계어코드인가요? 쉘코드도 보면 이런식으로 되어있던데.. 부탁드려요. 답변내용이 방대하다면 추천해주실만한 문서라도 알려주셔요.ㅎ |
|
|
|