思路:
通过泄露gots表中的数据去判断动态库的基地址
libase = lib_func_addr - obj.dump(func)
注:不能直接用elf 去查看函数位置,因为查询的是plt处的func地址
LibcSearcher('__libc_start_main', libc_start_main_addr)
关于为什么第一次使用sendlineafter
由于直接发送会导致,接下来接收的字符串并不是我们所需要的字符串。可能接收到printf函数输出的字符串。
使用gdb.debug查看第二次调用main函数的地址:
为104:
关于为什么会使用sendline而不是send 由于gets 函数遇到\n停止读取。