我需要找到在虚拟环境(debian x86)中运行的 elf 文件的入口点。在主机上,我可以确定当前指令指针和所有其他 cpu 寄存器。因此可以确定内核函数调用。
函数load_elf_binary使用以下参数调用函数start_thread :
start_thread(regs,elf_entry,bprm->p);
所以我应该能够从 cpu 寄存器接收 elf_entry ,但是当我转储寄存器时,我得到这个输出:
EAX=0xc61bffb4
EBX=0xc61bffb4
ECX=0xbff29430
EDX=0xb78ae850
ESI=0xc78f9500
EDI=0xbff29fec
EBP=0xbff29488
ESP=0xc61bfeb4
EIP=0xc1001f82
CR2=0xb78ca840
没有寄存器的值以 0x8xxxxxxx 开头,所以我不确定是我犯了错误还是 elf_entry 不是我要查找的入口点。
本质问题:内核函数load_elf_binary中的变量elf_entry是我用readelf -h得到的入口点吗?