标签:plt 函数 绑定 黑话 got Pwn 名词解释 动态 链接
Pwn知识性名词
Linux相关
延迟绑定技术
ELF采用了当函数第一次使用时,才进行绑定。
ELF实现延迟绑定是通过Plt,原先GOT中存放着全局变量和函数调用,现在把它拆分为各个部分。 .got 和.got.plt,用.got存放着全局变量的引用,用.got.plt存放函数的引用。
基本可以解释为,只有在某个函数得到运行时,对应的plt got数据才正确绑定。
动态链接
程序装载时通过 动态链接器 将所需的所有 动态链接库 装载入进程空间中(程序按模块拆分成功各个相对独立的部分),当程序运行时才将他们链接在一起形成一个完整的程序过程。
相对于静态链接,静态链接会浪费更多内存和磁盘的空间,。在不同模块的情况下,静态链接一旦某一模块发生改变就会导致整个软件需要重新编译。动态链接推迟了这个链接过程到了程序运行时才进行。
Linux系统中,ELF动态链接文件被称为动态共享对象,简称共享对象。一般是以“.so”为扩展名的文件;windows中.dll
Libc
Linux下的函数库
Plt表与GOT表
若可执行文件中调用多个动态库函数,那每个函数都需要这两样东西。这样每样东西就形成一个表,每个函数使用的一项。
PLT:内部函数表,程序链接表
GOT:全局偏移表,全局函数表
Got表避免了不能节省空间的情况。
Pwn/CTF黑话
exp
指漏洞利用的脚本,通常以python编写
shellcode
指能打开shell的一段代码,通常用汇编编写。
payload
有效载荷。漏洞利用过程中需要构造的攻击代码,shellcode属于payload的一种/一部分。
通用基本常识
标签:plt,函数,绑定,黑话,got,Pwn,名词解释,动态,链接 来源: https://www.cnblogs.com/Uninstalllingyi/p/16207573.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。