当前位置: 首页 > article >正文

B站pwn教程笔记-1

因为没有垃圾处理机制,适合做编译,不会有堵塞 c语言市场占有率还是比较高的。

Windows根据后缀识别文件,linux根据文件头识别

55:16 编译过程

一步:直接gcc编译.c文件

这只是其中的一些步骤

gcc -S 转变为汇编。但其实这时候还是文本文件

注意链接(就像有的函数需要链接)这一步,有静态连接和动态连接。攻击这两个方式的程序使用的方法也不一样。静态链接代码就在文件中,动态则比如dll。

注意编译和汇编区别。汇编其实是双向映射相当于。

可执行文件也有广义狭义,顾名思义,狭义就是只有机器码的。

有时候要chmod改文件权限 不然bin/python3还无法用。。

linux 后缀只是辅助记忆 并不是说它就是按照这个后缀来识别的。

1:27:16 了解ELF文件

节头和段头位置不一定就按图片所示。

重定位文件就是链接库文件

节给ELF,段给进程映像用。

(cpu还有个cache存储器,快滴很 只是了解)

可以用图示俩命令按相关区域查看(第二个可以用gdb--断点--输入vmmap代替)

由于数据是从低地址向高地址写的,所以GDB把高地址在下面显示

左磁盘 节 右内存 段(节根据权限等会合并为段)

由此可见,内存中也要申请其他的磁盘中没有的部分 来保持程序的运行



01:52:44虚拟地址



32位cpu只支持4G内存条,因为寻址能力有限

就算只有4G内存,可能进程的虚拟内存都有三四G,这为了方便开发,真实物理地址寻址都交给操作系统来完成,不需要程序员考虑。 而且实际上虚拟内存不会被用完,所以分配4G其实可以带得动。

在linux 给程序分配了3G虚拟内存,有1G是系统进程占用,大家共享。

UTF8其实向下可以兼容ascii码

4个二进制表示1个16进制

32位系统和用户虚拟空间:LINUX1:3 windows2:2

想象cpu和内存之间有一马路,宽度32就是32位,64位同理

plt节与动态链接库有关,解析出来的在.got.plt节。bss只在内存中占用空间,ELF里面只是有一个符号,说明那里有一个bss

一些只读数据也在text段

局部变量在栈中

32位:形参在栈 64位:放在寄存器

2:41:50

大端序和小端序

小端序比大端序更容易利用。比如小端序的0x0233,在栈溢出里面,低地址存的是233,很容易覆盖了。然而大端序是0x3320,低地址来了覆盖的是0.



02:47:20程序的装载和执行



RA\B\CX是通用寄存器,但是一般编译器有约定俗成的规则规定他们干什么事情。RAX一般存放返回值。

静态链接可以独立运行,动态不可以。动态在刚开始会标识说哪个函数找谁要。

fork()父进程拷贝分配给自己的虚拟内存,后期进行重写操作成子进程elf里面的。execve会调用一些系统函数来处理硬件方面操作。start是入口,主要作用是准备程序执行时的环境

ld.so就是管理第三方代码的中介,start之后也会多几个函数,主要和动态连接之类有关

一些汇编语言

栈帧和压入数据不是一个概念。栈帧就是某个函数调用开辟的,里面有许多数据。、

区别就是英特尔操作数在后,ATT相反。取值符也不一样,英特尔是]。ATT是() 


http://www.kler.cn/a/517296.html

相关文章:

  • 【机器学习】自定义数据集使用框架的线性回归方法对其进行拟合
  • 逐笔成交逐笔委托Level2高频数据下载和分析:20250124
  • vim如何设置显示空白符
  • Java数据库操作指南:快速上手JDBC【学术会议-2025年数字化教育与信息技术(DEIT 2025】
  • Baklib助力企业如何搭建内容中台的全新策略解析
  • 【问题】Chrome安装不受支持的扩展 解决方案
  • 全连接神经网络(前馈神经网络)
  • 二叉树的存储(下)c++
  • Jmeter使用Request URL请求接口
  • docker 安装 redis 详解
  • Jetson Orin Nano Super之pytorch + torchvision安装
  • 在 Windows 11 中设置 WSL2 Ubuntu 的 `networkingMode=mirrored` 详细教程
  • 【C语言】在Windows上为可执行文件.exe添加自定义图标
  • vite端口项目打包后的端口转发问题
  • 基于微信小程序的个人健康管理系统
  • Solon Cloud Gateway 开发:熟悉 Cloud Gateway
  • 渐变颜色怎么调?
  • 【优选算法】9----长度最小的子数组
  • 寒武纪使用cnnl库函数实现卷积算子
  • 路由器旁挂三层网络实现SDWAN互联(爱快SD-WAN)
  • 浅析Dubbo 原理:架构、通信与调用流程
  • chrome小插件:长图片等分切割
  • MySQL(表空间)
  • Spring Boot(6)解决ruoyi框架连续快速发送post请求时,弹出“数据正在处理,请勿重复提交”提醒的问题
  • Yii框架中的路由配置:如何实现URL美化
  • web前端1--基础