Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. void mapfile2memory(int fd,Elf32_Phdr *PHT_INTERNALS[],Elf32_Ehdr *EHT,int size,char *eps){
  2.  
  3. int i=0;
  4. Elf32_Addr EP;
  5. void *addr;
  6.  
  7. while(i<EHT->e_phnum){
  8.  
  9. if(PHT_INTERNALS[i]->p_type==PT_LOAD){
  10. addr=mmap(0,PHT_INTERNALS[i]->p_memsz,PROT_WRITE|PROT_READ|PROT_EXEC,MAP_SHARED,fd,size-FILESIZE+PHT_INTERNALS[i]->p_offset);
  11. if(addr==-1){
  12. perror("mmap");
  13. }
  14. 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)
  15. {
  16. EP=addr+(EHT->e_entry - PHT_INTERNALS[i]->p_vaddr);
  17. }
  18. }
  19. i++;
  20. }
  21.  
  22. eps=EP;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement