lyinx

@lyinx

  • 我也遇到了,需要将写入位置计算中的 textAddr 改成 textOff

    随后,我们需要知道 RelocEntry 指示的需要修改的源代码的位置,这个值由 re.offset 指示。而由于当前 object 在链接成可执行文件时,还包含若干其它.o,所以需要加上 textAddr,才能得到真正需要修改的地址。

    就是这一句话中应该是加上 textOff 而不是 textAddr

    然而为什么 test0 中可以通过?通过 gdb 调试看到,test0 中 textOff 和 textAddr 是相等的,因此可以通过

    image|214x97

    而在 test1 中这两个值并不相等

    image|213x102

    后续 test2 和 test3 不会到写入内存这一步,test4 和 test5 中 textAddr 和 textOff 都相等,使用 textOff 也能通过

    不知道是实验指导中有误还是实验设计有误

    Post #3 ❤️ 3 likes