0%

关于libc的两种调用方式

First

1
2
3
4
libc=ELF('./libc-2.27.so')
libcbase=puts_addr-libc.sym['puts']
system_addr=libcbase+ libc.sym['system']
shell_addr=libcbase+next(libc.search(b'bin/sh'))

Second

1
2
3
4
libc=LibcSearcher("puts",puts_addr)
libcbase=puts_addr-libc.dump("puts")
system_addr=libc_base+libc.dump('system')
bin_addr=libc_base+libc.dump('str_bin_sh')

在ida中不用这些看地址。

首先是read_got。可以在IDA中通过按ctrl+s跳转到不同的段。先看got表,也就是对应的.got.plt(而非.got)