此标题范围广,内容多,不易梳理清楚。本人也因为能力有限,不可能面面俱到,只能讲讲在ctf中可能会遇到的一些命令。
1. checksec
它是用来检查可执行文件属性,例如PIE, RELRO, PaX, Canaries, ASLR, Fortify Source等等属性。
|
|
2. ldd
用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。
|
|
3. export
设置全局变量
|
|
export是设置的临时全局变量,在关闭shell之后就自动清除了;
而如果修改文件/etc/bashrc和/etc/profile,那这个改变就会是永久的。
4. ldconfig
ldconfig是一个动态链接库管理命令。
|
|
最后没有正确链接上,可能的原因是因为本机与那个动态链接库不兼容导致!
5. strace
strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
|
|
strace -if elfname 一般而言会返回 execve(elf绝对路径, elf绝对路径,其他)
但是,如果elf所在目录被加入PATH全局变量,返回的就是 execve(elf绝对路径, elfname,其他)
也就是说,后一种直接用文件名就可执行!