小编New*_*ser的帖子

阅读Elf Binary中的GOT条目

我想写一个小函数的跟踪器.我用ptrace.我在ubuntu x86_64上.我想找到共享库函数的地址(比如printf).

但我有一些问题和一些关于全球抵消表的问题.我有以下代码:

size_t baseAddress = this->getBaseAddress();
Elf_Ehdr const * headerElf = static_cast<Elf_Ehdr const *> (this->_manager.readMemory((void*) baseAddress, sizeof (Elf_Ehdr)));
Elf_Phdr const * headerProgram = static_cast<Elf_Phdr const *> (this->_manager.readMemory((void*) (baseAddress + headerElf->e_phoff), headerElf->e_phentsize * headerElf->e_phnum));
unsigned int i = 0;
while (headerProgram[i].p_type != PT_DYNAMIC)
{
    ++i;
}
size_t addrToRead = headerProgram[i].p_vaddr;
Elf_Dyn const * dynSection = static_cast<Elf_Dyn const *> (this->_manager.readMemory((void*) addrToRead, sizeof (Elf_Dyn)));
while (dynSection->d_tag != DT_PLTGOT)
{
    addrToRead += sizeof (Elf_Dyn);
    dynSection = static_cast<Elf_Dyn const *> (this->_manager.readMemory((void*) addrToRead, …
Run Code Online (Sandbox Code Playgroud)

c++ linux elf

13
推荐指数
1
解决办法
2167
查看次数

标签 统计

c++ ×1

elf ×1

linux ×1