从零开始入门pwn(一):pwn的介绍以及部分前置知识
目录
一.前言
二.pwn的介绍
pwn的定义
pwn的题目模式
前置知识
一.Linux
二.C语言
三.汇编语言
四.计算机组成原理
三.总结
一.前言
本人凭着一腔热血想要入门pwn,但却被pwn的高入门门槛泼了一次又一次冷水,趁着自己还记得,写一点心得为后来想入门的跟我一样的零基础新手提供一些帮助。
二.pwn的介绍
pwn的定义
想必很多想要入门的新手都已经通过各种各样的入门文章或视频了解了pwn的定义以及方向,但出于礼貌,我在这里还是再重复一下下。
”Pwn”是一个黑客语法的俚语词,是指攻破设备或者系统。发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵了。
咳咳,以上来自百度知道,博主也是作为一个刚刚入门的小白,写出来的东西能跟百度相比吗(就是因为自己不知道)。总之呢,pwn不管是入门门槛还是难度,相比其他ctf项目都要大,但是架不住pwn帅啊,谁想玩pwn不是因为它帅啊,成为一个能够黑掉别人电脑的黑客不帅吗?
所以啊,管他什么定义,帅就完事了,现在朝着天空大喊一声“pwn”,开始苦逼帅气的入门之旅。
pwn的题目模式
知己知彼方能百战百胜,赛方给出我们题目,而我们就要千方百计把赛方的服务器给pwn了。这里就把赛方叫做面壁者,答题人叫做破壁人吧(三体人狂喜)
一般pwn的题目都是由面壁者给出自己的服务器IP以及端口(一般是Linux系统),这个端口在运行着一个进程。同时面壁者再给出一个二进制文件,而这个文件正好就是那个进程正在运行的文件。
而破壁人要做的就是通过找出面壁者提供的这个二进制文件漏洞,并且利用这个漏洞获取面壁者服务器的最高权限。
所以破壁人如何找出二进制漏洞就成为了pwn的重中之重。但这个漏洞可不是写在文件上的,破壁人要通过各种手段找出漏洞并且利用它必定少不了一些知识,而这些知识也造就了pwn的高入门门槛。
前置知识
一.Linux
pwn题目给出的文件一般是Linux系统的文件,如果不知道Linux系统,你在windows下把文件改一万个后缀名也打不开。所以想要入门pwn,最起码要把文件给跑起来吧,所以Linux的知识必不可少
如果想要快速入门,不在于对于知识的精通,学一些常用就行了,但有时间最好系统学习(这句话适用于以下所有知识)
能够把文件跑起来,知道怎么用命令行,怎么安装工具,就差不多行了,安装个有图形界面的Linux系统对新手还是挺友好的
二.C语言
由于C语言的古老,造就了很多不可名状的漏洞,但是架不住它牛逼啊。pwn题所有的文件都是用C语言编写的,在反汇编时反出来的也是C语言代码,你连代码都看不懂你还找什么漏洞,就算代码看得懂我也天天写bug所以学会看C语言代码对于寻找漏洞非常重要。
当然,如果你有C++的基础基本就可以快速入门C语言了。绝对不是因为学校要学所以会C++
三.汇编语言
把反汇编转成C语言只是图一乐,真要玩pwn还得看我汇编(bushi)。即使反汇编工具能够把汇编语言转成C语言,能看懂汇编语言还是学习pwn的必要条件,不管是分析栈还是分析地址,汇编语言都是很重要的工具。
当然,不要看要学汇编就兴冲冲买个黑皮书开啃,学会几个常用的前期就够用了,mov、lea、add、sub、ret、call、push、pop,把这几个彻底弄清楚就差不多能应付前期的学习了。就算遇到了新的汇编指令,现学现卖就行了,不用太深究,不然几年也入不了门。
四.计算机组成原理
分析程序的时候时常要跟寄存器啥的打交道,还有十六进制地址之类的,所以一点计组知识还是很有必要的,但是pwn毕竟不是一个太底层的东西,了解一些概念,以及怎么计算地址,什么间址寻址、间址寻址那些就差不多了。不会有人连寄存器是啥都不知道吧
三.总结
本文只是博主对pwn入门的一些小小心得,毕竟本人也只是一个刚刚入门的小白,看个ctf-wiki都要看半天才看得懂一道题,写这个博客也主要是为了让那些跟我一样的小白知道怎么入门,毕竟大佬眼中的入门跟新手眼中的入门有时候真的不是一个概念。
可能有的人也没有很多的时间去系统地学完汇编语言之类的,我也只是根据目前我做过的题目和所学的东西提出建议,如果觉得我说的不对尽量不要骂人哦(笑)。
如果有新手想跟博主一起进步一起从零开始学习pwn,可以点个小小的关注,谢谢啦。
从零开始入门pwn(一):pwn的介绍以及部分前置知识相关推荐
- kubelet配置cni插件_从零开始入门 K8s | 理解 CNI 和 CNI 插件
原标题:从零开始入门 K8s | 理解 CNI 和 CNI 插件 作者 | 溪恒 阿里巴巴高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 26 讲,点击直达课 ...
- pwn学习总结(四)—— 堆基础知识(持续更新)
pwn学习总结(四)-- 堆基础知识(持续更新) 前言 chunk 使用中(分配后) 空闲中(释放后) 堆块大小 空间复用 bins fastbin unsorted bin small bin 前言 ...
- 从零开始入门 K8s | Kubernetes 存储架构及插件使用
作者 | 阚俊宝 阿里巴巴高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 21 讲. 关注"阿里巴巴云原生"公众号,回复关键词**&quo ...
- k8s使用volume将ConfigMap作为文件或目录直接挂载_从零开始入门 K8s | 如何实现应用配置管理?...
作者 | 何淋波(新胜) 阿里云容器服务技术专家 需求来源 背景问题 首先一起来看一下需求来源.大家应该都有过这样的经验,就是用一个容器镜像来启动一个 container.要启动这个容器,其实有很多需 ...
- 从零开始入门创作游戏——游戏对象的脚本编辑
做教程远比自己开发游戏要花时间...继续写小恐龙的游戏教程 环境搭建在这里 从零开始入门创作游戏--Unity3d的环境搭建_默哀d的博客-CSDN博客 素材导入和基本页面介绍在这里 从零开始入门创作 ...
- rmd中无法打开链结r_从零开始入门R语言—Rstudio下载与安装
注意:在安装Rstudio之前一定要现状R软件. 安装方法: QQ ZHOU:从零开始入门R语言-软件下载及安装zhuanlan.zhihu.com 一.下载安装RStudio 上节我们已经下载了R ...
- 从零开始入门创作游戏——对象交互与UI展示
做教程远比自己开发游戏要花时间...继续写小恐龙的游戏教程 环境搭建在这里 从零开始入门创作游戏--Unity3d的环境搭建_默哀d的博客-CSDN博客 素材导入和基本页面介绍在这里 从零开始入门创作 ...
- Arduino可穿戴开发入门教程Arduino开发环境介绍
Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...
- WPF入门教程系列三——Application介绍(续)
接上文WPF入门教程系列二--Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...
最新文章
- CRM系统助力企业找到最大盈利客户
- 【转】MongoDB 3.0 正式版本即将发布,强力推荐
- set,env,和export的区别
- sysbench对数据库的性能测试
- NgRx 里 first 和 take(1) 操作符的区别
- 常见性能优化小技巧原理
- Python函数中参数* 和 ** 的区别
- mysql删除表崩溃_MySQL在删除表时I/O错误原因分析
- bzoj 1637: [Usaco2007 Mar]Balanced Lineup【瞎搞】
- 拿去吧你,软件测试的文件和目录测试都在这
- CCNP 640-892知识点中文精简解释
- 字模C语言入门,PCtoLCD2002完美版取字模工具软件及其步骤教程
- 计算机房的英语怎么读音,机房位置,Host equipment room,音标,读音,翻译,英文例句,英语词典...
- ecshop插件-免费ecshop插件-ecshop插件应用中心
- 基于matlab特征脸Eigenface算法的实现
- treefrog之视图 ERB
- 在一个字符串中找出元音字母a,e,i,o,u出现的次数
- 使用STAF进行自动化安装测试
- 基于java web的学生考勤带请假管理系统-计算机毕业设计
- 《薛兆丰的经济学课》课程总结3--生命有限