| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> kali2021.2配置pwn环境(gdb+pwntools) -> 正文阅读 |
|
[系统运维]kali2021.2配置pwn环境(gdb+pwntools) |
无意间搜到了giantbranch https://github.com/giantbranch/pwn-env-init 如果只是要个学习pwn的环境,Ubuntu也挺好,就不要在kali上再折腾了。 --------------------------------------------- 1.?下载、编译方式安装gdb
安装完成后测试下: (1)创建个a.c文件。 (2)在可执行文件中加入源码信息,?使用gcc完成:?gcc -o a a.c -g?? -o选项的作用是:对命令输出结果进行导入操作,这里是把gcc –o a a.c -g的操作结果输出到文件a中进行保存。 -g选项的作用是:在可执行文件中加入源码信息,比如:可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件都嵌入到可执行文件中,而是在调试时必须保证gdb能找到源文件。btw:很多时候没有源代码,肯定也没有源码信息了。 (3)启动gdb gdb调试常用命令: start ---开始执行程序 n --- 单步执行 quit ---?退出调试 断点调试:breakpoint,continue和display? b 7---breakpoint? 7的简写(breakpoint的参数也可以以是某个函数名,表示在此函数处设置一个断点),表示在程序第七行设置一个断点。 c---continue的缩写,表示继续运行程序。 display b ----表示将b的值显示出来(undisplay取消对变量的跟踪),然后再输入单步调试命令n就可以使程序继续运行。 delete?n ---?删除Num为n的断点 info ---? 一次调试可以设置多个断点,用info命令可以查看已经设置的断点 ?条件断点 (break 和run) ?r---表示从头开始运行程序,在a==2的条件下中断才有效。a不等于2,所以中断无效。 watch ---?观察点是当程序访问某个存储单元时中断,如果我们不知道某个存储单元是在哪里被改动的,这时候观察点尤其有用。 ?程序执行到b存储单元,将此执行单元执行前后的值都显示出来。 段错误:在gdb中运行,遇到段错误会自动停下来,这时可以用命令查看当前执行到哪一行代码了。gdb显示段错误出现在?_IO_vfscanf?函数中,用bt命令可以看到是哪一个函数调用了它。 2.?安装pwntools
测试通过。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 13:33:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |