1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#include <stdio.h>
#include <sys/file.h>
#include <filehdr.h>
#include <aouthdr.h>
#include <scnhdr.h>
#define MAXSCNS 16
struct filehdr hdr;
AOUTHDR shdr;
struct scnhdr scns[MAXSCNS];
int nscns;
main(argc,argv)
int argc;
char *argv[];
{
int fd,i;
if (argc < 2) {
printf("give me a break, and a file...\n");
exit(0);
}
fd = open(argv[1],O_RDONLY);
read(fd,&hdr,sizeof(struct filehdr));
nscns = hdr.f_nscns;
printf("magic: %o\n",hdr.f_magic);
printf("sections: %o\n",hdr.f_nscns);
printf("timestamp: %lo\n",hdr.f_timdat);
printf("sym ptr: %lo\n",hdr.f_symptr);
printf("num sym ents: %lo\n",hdr.f_nsyms);
printf("size of syshdr: %o\n",hdr.f_opthdr);
printf("flags: %o\n",hdr.f_flags);
printf("\n");
if (hdr.f_opthdr != 0) {
read(fd,&shdr,sizeof(AOUTHDR));
printf("magic: %o\n",shdr.magic);
printf("vstamp: %o\n",shdr.vstamp);
printf("tsize: %lo\n",shdr.tsize);
printf("dsize: %lo\n",shdr.dsize);
printf("bsize: %lo\n",shdr.bsize);
printf("msize: %lo\n",shdr.msize);
printf("mod_start: %lo\n",shdr.mod_start);
printf("entry: %lo\n",shdr.entry);
printf("text_start: %lo\n",shdr.text_start);
printf("data_start: %lo\n",shdr.data_start);
printf("entry_mod: %lo\n",shdr.entry_mod);
printf("flags: %o\n",shdr.flags);
printf("\n");
}
for(i=0;(i != nscns);i++) {
read(fd,&scns[i],sizeof(struct scnhdr));
}
for(i=0;(i != nscns);i++) {
printf("name: %s\n",scns[i].s_name);
printf("paddr: %lo\n",scns[i].s_paddr);
printf("vaddr: %lo\n",scns[i].s_vaddr);
printf("size: %lo\n",scns[i].s_size);
printf("scnptr: %lo\n",scns[i].s_scnptr);
printf("relptr: %lo\n",scns[i].s_relptr);
printf("lnnoptr: %lo\n",scns[i].s_lnnoptr);
printf("nreloc: %o\n",scns[i].s_nreloc);
printf("nlnno: %o\n",scns[i].s_nlnno);
printf("flags: %lo\n",scns[i].s_flags);
printf("symptr: %lo\n",scns[i].s_symptr);
printf("modno: %o\n",scns[i].s_modno);
printf("\n");
}
close(fd);
}
|