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이부분은 기계어코드인가요? 쉘코드도 보면 이런식으로 되어있던데..
      부탁드려요. 답변내용이 방대하다면 추천해주실만한 문서라도 알려주셔요.ㅎ
이 게시물을..