0x0 Introduction
in th recent k3rn31ctf, there is a pwn question silent-ROP.
In this challenge, there is no output, neither put or printf is imported. So there is no way we can get the libc address/version. Therefore, normal way of ret2libc didn't work in this case, because we can't get the address of system function.
:> ii
[Imports]
nth vaddr bind type lib name
―――――――――――――――――――――――――――――――――――――
1 0x08049070 GLOBAL FUNC read
2 0x00000000 WEAK NOTYPE __gmon_start__
3 0x08049080 GLOBAL FUNC __libc_start_main
4 0x00000000 GLOBAL OBJ stdin
5 0x08049090 GLOBAL FUNC setvbuf
6 0x00000000 GLOBAL OBJ stdout
To solve this question, it required technique called ret2dlresolve, after serveral hour of reading article, i finally understand the process of return to dl resolve