Pwn基础知识

c语言为编译性语言可以直接运行,而python是解释性语言需要解释器转换后才可以运行

可执行文件需要用户的权限以及文件本身的权限。

exploit :用于攻击的脚本与方案

payload :攻击载荷,是的目标进程被劫持控制流的数据(恶意数据)

shellcode :调用攻击目标的shell的代码,shell是一个提供用户与操作系统交互的命令行接口,有zsh,sh,bash

虚拟机简单操作 :

  1. cd : 进入此目录

  2. ls : 打开此目录,展示目录里的内容

  3. file : 显示文件的属性

  4. ctrl+alt+t :自动启动一个terminal 并打开一个shell

  5. vim : 一个功能强大的文本编辑器。终端中输入 Vim 文件名 会打开文件并进入Vim编辑器,若文件不存在,vim会创建一个新的文件。

  6. rm :用于删除文件和目录的命令。 rm 文件名 删除指定文件,删除前会进行确认;rm -f 文件名 强制删除,没有提示;

  7. deepin-editor 文件名: 编辑器,输入一部分按Tab 即可自动补全

  8. mv :用于移动文件或目录,也可以用来重命名文件或目录。mv 源文件(源目录) 目标目录/,将指定文件移动到目标目录中;mv 原文件名 新文件名 在同一目录里重命名文件

  9. gcc 文件名:将此文件变为可执行文件

  10. gcc -S 文件名: 将该文件变为汇编语言文件

  11. ./可执行文件:执行当前目录的可执行文件

  12. ~/ :家目录

  13. chmod +x 文件名:给此文件添加可执行权限

  14. objdump -s 文件名 :查看程序在磁盘中的结构(可执行文件)

  15. cat /proc/pid/maps:查看程序在内存中的结构 (进程内存映像)

  16. gdb 文件名:查看进程的内存空间信息

  17. pwndbg下进行b main命令即在main函数出断点

  18. pwndbg下进行vmmap命令可以查看进程的内存空间的分布

Linux 下的可执行文件为 ELF ,相当于Windows下的EXE文件。

Linux是按程序头来分别文件,而Windows是按后缀名来分别文件。

可执行ELF文件在磁盘中是以节(section)的形式存储,在内存中是以段(segment)的形式存储

在磁盘中(可执行ELF文件)多个具有相同作用的节转化为内存中(进程ELF影像)的一个段

Code/text段 :具有相同作用的只读不可写的节运行后转换而来。

Data 段 :存在一些可读可写的、可执行的数据。

Stack : 动态存储区,程序栈,用来管理函数调用的状态。控制函数调用控制流。

Heap : 动态存储区,给用户提供动态内存申请的调用,给用户提供动态内存分配。

32位架构中有4GB的物理内存,当执行文件时,会出现一个或多个4GB的虚拟内存,但是实际上程序所占有的空间通常很小,所以执行的程序的总空间不超过4GB的时候可以出现多个虚拟内存。而虚拟内存中3GB是用户空间,用来存放数据代码,控制用户执行的相关控制结构(例如栈);是自己的(不同的)剩余的1GB是内核空间,是共享的。Windows下是2GB给内核空间,2GB给用户空间。

64位架构中128TB是内核空间,128TB是用户空间,剩下的是未被定义的空间。

虚拟内存用户空间每个进程一份,虚拟内存内核空间所有进程共享一份。

虚拟内存mmap段中的动态链接库仅在物理内存中装在一份。

text节:实行用户所执行的功能。

plt节:解析动态链接函数的实际地址。

got.plt节:保存plt节解析出的动态链接函数的实际地址。

静态存储区:text,data,bss。存放一些在未被执行时就已经知道程序大小的数据。

Text段 存放代码,函数实现所需的机器码,一些只读数据

bss段只在内存中占用空间,不在磁盘中占用空间。存放未初始化的全局变量。

Data段存放已初始化的全局变量。

动态存储区:存放一些不知道程序大小的数据。

heap存放用户申请的内存空间

Stack:存放函数的局部变量。

32位架构:形参会存放到进程中,而所对应的实参会压栈。

64位架构:形参会传递到寄存器中。

小端序是重点

计算机最核心的本体就是cpu和内存

静态链接的程序的执行过程

fork() :复制虚拟内存的3GB,将ELF文件的3GB复制到所增添出来的3GB

execve、sys_execve :用户向操作系统申请使用硬件,可以完成fork()内容。

动态链接的程序的执行过程

id.so:管理第三方库代码的借还。

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值