검색어 입력폼
평가점수A

운영체제(os) Geek os project1

저작시기 2010.04 |등록일 2011.03.04 | 최종수정일 2014.08.08 파일확장자압축파일 (zip) | 11페이지 | 가격 2,500원

소개글

1. 목표
ELF 포맷의 실행 파일을 해석하고 이에 대한 파싱 기능(Parse_ELF_Executable())을 구현한다.

2. 구현 내용
Parse_ELF_Executable() 함수 구현

(과제1) 위의 "elf.c" 소스 코드는 Parse_ELF_Excutable();함수를 간략하게 구현한 것으로 이를 참고하여 "src/user/a.c"코드가 정상적으로 수행되도록 elf.c의 Parse_ELF_Excutable()함수 수정
 
(과제2) “a.c"와 유사한 응용 프로그램을 작성하고, objdump를 수행하여 덤프된 메모리 내용을 캡쳐하고 메모리 맵을 도시화한후 설명(elf 분석)

목차

- 문 제
- 소스코드
- 스크린샷

본문내용

. "src/geekos/elf.c" 소스 코드 일부
 
int Parse_ELF_Executable(char *exeFileData, ulong_t exeFileLength,
struct Exe_Format *exeFormat)
{
elfHeader *EH;
EH = (elfHeader *)exeFileData;
if(EH->version != 1)
{
return -1;
}
 
programHeader* PH;
PH = (programHeader *)(exeFileData + EH->phoff);
programHeader* PH2;
PH2 = (programHeader *)(exeFileData + EH->phoff + EH->phentsize);
 
exeFormat->numSegments = EXE_MAX_SEGMENTS;
exeFormat->entryAddr = EH->entry;
 
exeFormat->segmentList[0].offsetInFile = PH->offset;
exeFormat->segmentList[0].lengthInFile = PH->fileSize;
exeFormat->segmentList[0].startAddress = PH->vaddr;
exeFormat->segmentList[0].sizeInMemory = PH->memSize;
exeFormat->segmentList[0].protFlags = PH->flags;
 
다운로드 맨위로