二进制
叶叶扁舟
だいがくせい
展开
-
Linux段管理,BSS段,data段,.rodata段,text段
Linux段管理,BSS段,data段,.rodata段,text段原创 2020-09-07 20:09:44 · 178 阅读 · 0 评论 -
PIE保护机制(ASLR保护机制)
ASLR内存随机化保护机制原创 2020-09-07 19:41:23 · 1786 阅读 · 0 评论 -
NX保护机制开启与关闭
NX即No-eXecute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。工作原理如图: img gcc编译器默认开启了NX选项,如果需要关闭NX选项,可以给gcc编译器添加-z execstack参数。 例如:gcc -o test test.c // 默认情况下,开启NX保护gcc -z execstack -o test test.c // 禁用NX原创 2020-09-06 20:36:14 · 8220 阅读 · 2 评论 -
Canary保护机制(栈保护)的开启与关闭
这个选项表示栈保护功能有没有开启。栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败而阻止shellcode的执行。在Linux中我们将cookie信息称为canary。gcc在4.2版本中添加了-原创 2020-09-06 20:28:37 · 4166 阅读 · 0 评论 -
NX机制及绕过策略-ROP
NX机制及绕过策略-ROP原创 2020-09-03 10:06:42 · 398 阅读 · 0 评论 -
栈溢出原理
文章来自:栈溢出原理介绍栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。这种问题是一种特定的缓冲区溢出漏,类似的还有堆溢出,bss 段溢出等溢出方式。栈溢出漏洞轻则可以使程序崩溃,重则可以使攻击者控制程序执行流程。此外,我们也不难发现,发生栈溢出的基本前提是:①程序必须向栈上写入数据。②写入的数据大小没有被良好地控制。基本示例最典型的栈溢出利用是覆盖程序的返回地址为攻击者所控制的地址,当然需要确保这个地址所在的段具有可执行权限转载 2020-08-30 13:40:51 · 671 阅读 · 0 评论 -
gdb工具的使用
info registersinfo all-registers(下面这两个暂时不知道如何使用)info registers reggroup …info registers regname …four standard register name:pc sp fp psp/x $pcx/i $pcset $sp += 42、GDB调试基本命令(gdb) start : 运行程序(gdb) continue : 从断点位置继续运行(gdb) r(un) : 运行准备调试的程序,在它后原创 2020-08-29 23:09:41 · 199 阅读 · 0 评论 -
深入理解函数调用跳转地址
参考文章:深入理解函数调用跳转地址原创 2020-08-29 22:58:21 · 119 阅读 · 0 评论 -
大端序和小端序
大端字节序:高字节存于内存低地址,低字节存于内存高地址(高低,低高——反)小端字节序:高字节存于内存高地址,低字节存于内存低地址(高高,低低——同)大端序和小端序的详细描述链接...原创 2020-08-29 22:49:04 · 211 阅读 · 0 评论 -
Linux gdb调试器的使用
添加链接描述原创 2020-08-29 15:57:07 · 60 阅读 · 0 评论 -
gdb插件peda/gef/gdbinit的切换
使用 pedaecho “source ~/.GdbPlugins/peda/peda.py” > ~/.gdbinit使用 gefecho “source ~/.GdbPlugins/gef/gef.py” > ~/.gdbinit使用 gdbinitecho “source ~/.GdbPlugins/gdbinit/gdbinit” > ~/.gdbinit原创 2020-08-29 12:39:37 · 502 阅读 · 0 评论 -
linux程序的常用保护机制
链接:包含了linux程序保护机制的超详细原理,建议精读。Cannary栈保护机制栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败而阻止shellcode的执行。在Linux中我们将cookie原创 2020-08-28 23:13:46 · 224 阅读 · 0 评论