Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void mapfile2memory(int fd,Elf32_Phdr *PHT_INTERNALS[],Elf32_Ehdr *EHT,int size,char *eps){
- int i=0;
- Elf32_Addr EP;
- void *addr;
- while(i<EHT->e_phnum){
- if(PHT_INTERNALS[i]->p_type==PT_LOAD){
- addr=mmap(0,PHT_INTERNALS[i]->p_memsz,PROT_WRITE|PROT_READ|PROT_EXEC,MAP_SHARED,fd,size-FILESIZE+PHT_INTERNALS[i]->p_offset);
- if(addr==-1){
- perror("mmap");
- }
- if(PHT_INTERNALS[i]->p_vaddr < EHT->e_entry && PHT_INTERNALS[i]->p_vaddr + PHT_INTERNALS[i]->p_vaddr+ PHT_INTERNALS[i]->p_memsz > EHT->e_entry)
- {
- EP=addr+(EHT->e_entry - PHT_INTERNALS[i]->p_vaddr);
- }
- }
- i++;
- }
- eps=EP;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement