摘要:
栈溢出基础 之前已经介绍了C语言函数调用栈,本文将正式介绍栈溢出攻击。 当函数调用结束时,将发生函数跳转,通过读取存放在栈上的信息(返回地址),跳转执行下一条指令。通过栈溢出的方式,可以将返回地址覆盖为攻击指令的地址,这样函数调用结束后,将跳转到攻击指令继续执行。 Stack Canary cana 阅读全文
摘要:
shellcode编写 shellcode是一段用于利用软件漏洞而执行的代码,通常使用机器语言编写,其目的往往是让攻击者获得目标机器的命令行shell而得名,其他有类似功能的代码也可以称为shellcode。 简单的shellcode 最简单的shellcode就是直接用C语言system函数来调用 阅读全文
摘要:
C语言函数调用栈 栈溢出(stack overflow)是最常见的二进制漏洞,在介绍栈溢出之前,我们首先需要了解函数调用栈。 函数调用栈是一块连续的用来保存函数运行状态的内存区域,调用函数(caller)和被调用函数(callee)根据调用关系堆叠起来。栈在内存区域中从高地址向低地址生长。 每个函数 阅读全文
摘要:
ELF文件结构 ELF文件的全称是Executable and Linkable Format,直译为“可执行可链接格式”,包括目标文件(.o)、可执行文件(可以直接运行)、静态链接库、动态链接库、核心转储文件(core dump)。ELF文件的定义可以在/usr/include/elf.h中找到, 阅读全文
摘要:
从源文件到可执行文件:源文件的预处理、编译、汇编、链接 当我们写完了C语言代码后,通过gcc将其编译成可执行文件运行,这中间具体经过的步骤包括预处理、编译、汇编、链接四个步骤。 最简单的hello.c源文件内容如下: # include <stdio.h> // 这是一行注释 int main(vo 阅读全文
摘要:
pwn工具准备 本文是pwn系列博客的开篇,面向的是pwn的初学者,我也是刚刚才开始学习pwn,边学边记录吧。 系统 VMWare虚拟机 镜像文件:ubuntu-20.04.4-desktop-amd64.iso 装好之后将源换成清华的镜像,具体操作请参考官方说明 python & git 系统自带 阅读全文
摘要:
##零知识证明简介 零知识证明(Zero-Knowledge Proof)是现代密码学核心之一,由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出,其中,S.Goldwasser和S.Micali在2012年荣获图灵奖。在零知识证明提出的初期,由于缺乏应用场景, 阅读全文
摘要:
书名: "数据挖掘导论(Introduction to Data Mining)" 作者: Pang Ning Tan / Michael Steinbach / Vipin Kumar 出版社: 人民邮电出版社 译者: 范明 / 范宏建 出版年: 2010 12 10 ISBN: 97871152 阅读全文
摘要:
书名: "数据挖掘导论(Introduction to Data Mining)" 作者: Pang Ning Tan / Michael Steinbach / Vipin Kumar 出版社: 人民邮电出版社 译者: 范明 / 范宏建 出版年: 2010 12 10 ISBN: 97871152 阅读全文
摘要:
书名: "数据挖掘导论(Introduction to Data Mining)" 作者: Pang Ning Tan / Michael Steinbach / Vipin Kumar 出版社: 人民邮电出版社 译者: 范明 / 范宏建 出版年: 2010 12 10 ISBN: 97871152 阅读全文