🤓 논문 읽고 생긴 질문들, 답변들
논문 : 단편화된 실행파일을 위한 데이터 구조 역공학 기법
: 실행파일의 정보가 한곳에 모아져있지 않고 여기저기 있다는 뜻 (Fragmentation)
내부 단편화
메모리 블록 내 사용되지 않는 공간이 있을 때 (고정 크기 블록 할당 방식을 사용하는 경우에 발생)
외부 단편화
하드 디스크 같은 저장 매체가 여러 작은 자유 공간 블록을 산재 시킬 때 발생, 시스템이 충분히 큰 연속 자유공간 블록을 찾지 못하고 대신 여러 작은 블록에 파일을 저장해야할 경우!
=> 소스코드가 없으니까
...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아 CTF 풀다가 보니까 엥? 소스코드가 있는데 왜 실행파일을 분석할까 생각하고 있었음... 민망
Alias analysis is a technique in compiler theory, used to determine if a storage location may be accessed in more than one way. Two pointers are said to be aliased if they point to the same location.
두 포인트가 같은 곳을 가리키고 있으면 aliased하다고 한다
p.foo = 1; q.foo = 2; i = p.foo + 3;
- q와 p가 alias 한 경우 (=둘이 항상 같은 메모리 공간을 가리킴)
=> i=5 (p.foo + 3 = q.foo + 3)- q와 p가 alias 하지 못한 경우 (= 둘이 절대 같은 공간을 가리키지 않음)
=> i=4- 컴파일할때 단정지을 수 없음
만약 단정지을 수없다면 모든 코드를 다 실행해야함
저장공간이 한 번이상 지정 당했는지 알아내는 분석인듯하다
SI는 변수 값의 범위과 전 변수와의 간격으로 이루어진 array 형식으로 변수를 표현하는 기법, VSA는 이를 활용한 정적분석법