1 |
/* |
/* |
2 |
* Cisco 7200 (Predator) simulation platform. |
* Cisco router simulation platform. |
3 |
* Copyright (c) 2006 Christophe Fillot (cf@utc.fr) |
* Copyright (c) 2006 Christophe Fillot (cf@utc.fr) |
4 |
*/ |
*/ |
5 |
|
|
21 |
int main(int argc,char *argv[]) |
int main(int argc,char *argv[]) |
22 |
{ |
{ |
23 |
unsigned char buffer[8]; |
unsigned char buffer[8]; |
24 |
m_uint32_t vaddr; |
m_uint32_t vaddr,start; |
25 |
Elf32_Ehdr *ehdr; |
Elf32_Ehdr *ehdr; |
26 |
Elf32_Phdr *phdr; |
Elf32_Phdr *phdr; |
27 |
Elf *img_elf; |
Elf *img_elf; |
29 |
int i,j,fd; |
int i,j,fd; |
30 |
FILE *bfd,*fd_out; |
FILE *bfd,*fd_out; |
31 |
|
|
32 |
if (argc != 3) { |
if (argc != 4) { |
33 |
fprintf(stderr,"Usage: %s <input_file> <output_file>\n",argv[0]); |
fprintf(stderr,"Usage: %s <input_file> <output_file> <addr>\n",argv[0]); |
34 |
exit(EXIT_FAILURE); |
exit(EXIT_FAILURE); |
35 |
} |
} |
36 |
|
|
37 |
|
start = strtoul(argv[3],NULL,0); |
38 |
|
|
39 |
if ((fd = open(argv[1],O_RDONLY)) == -1) |
if ((fd = open(argv[1],O_RDONLY)) == -1) |
40 |
return(-1); |
return(-1); |
41 |
|
|
79 |
vaddr = (m_uint64_t)phdr->p_vaddr; |
vaddr = (m_uint64_t)phdr->p_vaddr; |
80 |
len = phdr->p_filesz; |
len = phdr->p_filesz; |
81 |
|
|
82 |
if (vaddr != 0xbfc00000) |
if (vaddr != start) |
83 |
continue; |
continue; |
84 |
|
|
85 |
while(len > 0) |
while(len > 0) |