初学pwn的课程第一课
pwn的攻击基础原理

我的理解是主要通过分析主文件,然后获得有用信息,通过exploit对服务器输入指定的payload数据,获取服务器的shell,就是进入服务器的终端,获取服务器的控制权,对服务器进行操作,从而获取flag。
二进制基础
程序的编译和链接:以c语言为例,主要是我只会c语言,编译主要是通过将c语言代码生成汇编代码,但是计算机并不会处理这些代码,因为电脑并不认识这些代码,这时候我们就需要再将汇编代码链接生成计算机看得懂的代码,就是机器码(反正就是写乱码看得难受),这个机器码人是很难看懂的,但是机器能处理。
可执行文件
可执行文件就是在电脑上可以运行的文件,但在广义和狭义上又有一点不同。
广义上来说只要能在电脑上运行的就叫可执行文件,细点说就是可执行代码的文件。
狭义上说就是文件中的数据是机器码的文件。
这个需要区分开。
栈
栈(stack) 存放 参数,局部变量 等等
栈的使用:在调用函数的时候使用
我的理解是浅意上来看一个数组
深点看其实是一个存放指令的空间。

IP 地址:存放数据的地方(粉笔和粉笔盒)
寄存器 EAX,EBX:通用寄存器 ESP:栈指针寄存器(extended stack pointer),其内存放着一个指针,该指针永远指向系统栈最上面一 个栈帧的栈顶。
EBP:基址指针寄存器(extended base pointer),其内存放着一个指针,该指针永远指向系统栈最上面 一个栈帧的底部。
EIP:指令寄存器,存放的是本条执行指令的地址 指令 push:把数据压入栈中 pop:把数据弹出栈 jmp:无条件跳转 call:实际上是push 下一条执行指令的地址和jmp call后面的参数的合体 ret:和call连体,ret是pop 下一条执行指令的地址
原理:函数被调用后会产生一个栈来保存参数,局部变量和返回地址(EIP+4) 保存步骤为:参数-->返回地址-->局部变量
初学pwn的课程第一课的更多相关文章
- C语言基础课程 第一课 Linux环境配置小实战httpserver
网段我需要改成如下 10.重启网络服务 并且查看ip 11. 打开windows的浏览器数人Linux的IP地址出现REDHAT的欢迎界面 11.进入目录 12.编写一个简单的html脚本 13 ...
- Android课程---第一课
Android是一种基于Linux的开源的操作系统 主要使用于智能设备,如智能手机.平板电脑和智能电视等 由Google公司领头开发并推广,2008年推出第一个版本. 此系统最初由”安卓之父" ...
- 【SEO 决胜网络索引】 课程大纲及第一部分第一课:网络营销战略中的索引
内容简介 1.课程大纲 2.第一部分第一课: 网络营销战略中的索引 3.第一部分第二课预告: 索引是什么 课程大纲 现在是网络为王的时代,人们越来越离不开互联网: SEO(Search Engine ...
- Linux系统初学-第一课 虚拟机安装CentOS6.5以及Root密码找回
Linux系统初学第一课 虚拟机安装CentOS6.5以及Root密码找回 虚拟机安装CentOS6.5 一.安装虚拟机 1-1.安装虚拟机VMware Station,新建虚拟机,选择典型配置. 1 ...
- 初学Python(第一课)
今天整理一下关于Python初学者的基础知识部分的第一课,因为之前学习过C,所以过于基础的知识就不详细记录了. Python相对于C\C++来说,在语法方面已经很简单了:甚至对于JavaScript也 ...
- 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?
内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的, ...
- 【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?
内容简介 1.课程大纲 2.第一部分第一课:什么是Linux? 3.第一部分第二课预告:下载Linux,免费的噢! 开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求逼格的程序员用的.咱 ...
- 【C语言探索之旅】 第三部分第一课:SDL开发游戏之安装SDL
内容简介 1.课程大纲 2.第三部分第一课: SDL开发游戏之安装SDL 3.第三部分第二课预告: SDL开发游戏之创建窗口和画布 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会 ...
- 【第一课】神奇的Context
初学Android的困惑 初学Android跳转页面的时候,往往教程里是这么写的: Intent intent = new Intent(); //MyActivity就是当前的Activity,It ...
- CodeIgniter框架入门教程——第一课 Hello World!
本文转载自:http://www.softeng.cn/?p=45 今天开始,我将在这里连载由我自己编写的<CodeIgniter框架入门教程>,首先,这篇教程的读着应该是有PHP基础的编 ...
随机推荐
- 【一句话】CAP原则
首先一句话: 如果出现网络分区(P),持有旧数据的节点是否要继续提供服务,提供就保证了可用(A),但数据不一定新,放弃了C:如果不提供服务,则意味着放弃了可用性A,但是保证数据一致(C). 我的理解: ...
- Java期末测试
会议预约管理信息系统(50分) 1.项目背景: 会议是企业进行决策.协商的重要组织形式,是企业日常办公处理事务的重要手段,是办公流程中不可缺少的重要环节,作为企业,如何有效的进行会议组织,管理 ...
- sqllabs:less18-22
在利用抓包工具进行抓包的时候,我们能看到很多的项,下面详细讲解每一项. HTTP 头部详解 1. Accept:告诉 WEB 服务器自己接受什么介质类型,/ 表示任何类型,type/* 表示该类型下的 ...
- 【雅礼联考DAY01】逃跑
#pragma GCC optimize(2) #pragma GCC optimize(3) #include<cstdio> using namespace std; const in ...
- 在wifi的5G频率下无法加载图片解决方法
开始是这样的:因为我家wifi支持300兆的网速,所以换了一个荣耀的路由器,换了一根网线,但是发现5G频率有的应用加载不了图片,所以查了很多资料想了很多办法,终于解决了, 解决方法如下: 1.这是DH ...
- 3D场景建模零代码平台
3D场景建模软件(零基础.零代码.**),是指用来制作场景的软件,分为2D建模和3D建模,二者使用的技术及原理不同. 2D软件:它是用3维几何图形绘制出三维图形的软件,其主要功能是利用软件中已经画好的 ...
- Vite 项目添加 Sass/Scss 并配置全局样式
(1)在 Vite 项目里,只需要安装 sass: npm i -D sass (2)Sass 的全局变量,需要在vite.config.ts配置一项: css: { preprocessorOpti ...
- ABP微服务系列学习-搭建自己的微服务结构(三)
上一篇我们基础服务初步搭建完毕,接下来我们整一下认证和网关. 搭建认证服务 认证服务的话,ABP CLI生成的所有模板都包括了一个AuthServer.我们直接生成模板然后微调一下就可以直接用了. a ...
- 如何设置VBA代码的密码?如何取消VBA代码的密码?
经常有网友问,用Access把软件开发好了,怎么样设置VBA代码的密码?以保护自己的代码不被同事修改.这里简单整理了一下.设置VBA代码的密码及取消VBA代码的密码步骤如下:1.打开任意一个窗体,进入 ...
- 修复gitlab权限(docker方式搭建)
docker exec -it gitlab update-permissions docker restart gitlab