测试环境: Kali Linux x64
首先生成一个小的elf文件样例:
// demo.c
#include <stdio.h>
int main(int argc, char **argv)
// 读取demo.txt文件的内容
{
FILE *fp;
char buff[256];
fp = fopen("demo.txt", "r");
// demo.txt可自行创建,并打入一些字符
fgets(buff, 256, fp);
printf("\n%s\n", buff);
fclose(fp);
return 0;
}
然后运行命令:
gcc -o demo demo.c
之后会得到一个名为demo的可执行文件,elf类型的。
接下来可以尝试读取elf文件中LOAD Segments的数据:
// 此测试中忽略ELF文件类型的判断和错误处理等操作
// ELF文件类型的判断可在elf_head中进行,即确保elf_head.e_ident的前四个字符即可;
// 错误处理包括fread和fseek函数的成功与否。
#include <stdio.h>
#include <stdlib.h>