b站pwn的学习总结

写的很乱

1.c语言的运行过程

了解了c语言需要经过以上2个过程(编译和汇编),才能让机器按指令运行。机器只能听得懂机器码,所以要“汇编”。

那问题就来了,“编译”这个动作有啥用,c语言这种高级语言,直接进行汇编,变成机器码不更快嘛

ai回答

虽然直接将C语言汇编为机器码可能会获得更高的性能,但编译过程中的汇编步骤可以提供更好的可移植性、开发效率、优化能力以及代码可读性与可维护性。因此,大多数情况下,我们使用C语言编译为汇编代码再生成机器码,以平衡性能和开发效率之间的权衡。

IDA的作用就是反汇编和反编译(你按f5就是反编译),要是想理解反汇编,那就去查表,比如0x55就是push ebp,这样一一对应的关系。

但是反编译的原理好像就难了

2.大端序和小端序

老师讲的这个,我大概理解了,就是大多数据是怎么存放的,大多栈的数据都是低地址对应数据地位,就跟图小端序一样。大端序很少见

也就是你按顺序输入的0A0B0C0D,压入栈后就变成了,0D先压进去,然后一次。。。

3.IDA小技巧,看c语言的汇编代码。右键之后acc

就比如,这是main函数的反编译后的代码

如果你想看他的反汇编代码那就

按空格,显示text格式

5.本地调试+远程调试+静态分析

产看

调试

发送

写法也可以是p32(0)+b"45fafasdfsd"

远程调试

先直接简单运行一下,也可以看出他的作用,就是把大写的I边成了you

然后我们在gdb里面运行调试,我这里安装了pwndbg的插件,pwn神给的ubuntu

堆入门系列(2)之gdb动态调试_gdb查看heap-CSDN博客

打个断点b main

b就是break的简写,使用方式有b *0x004800(*加地址)

或者 b main(加一个函数)

清楚断点是

然后运行,用run或者简写的r都可以运行

输入n继续往下查看,就是next的意思

n 执行下一条指令 ni步入

找到漏洞函数后

s step,si单步步进,然后按n运行,之后stack 24

使用vmmap直接查看该进程的内存空间

RIP 存放当前执行的指令的地址

RSP 存放当前栈帧的栈顶地址

RBP 存放当前栈帧的栈底地址

RAX 通用寄存器。存放函数返回值

6.strings的使用可以更快的查看可见字符,直接搜flag

我没有例题,但是用法就是,就是如果你shift+f12能看见的,strings就能搜到

7.file也可以看32位还是64位

9.setvbuf()关闭缓冲区,作用是使你更快的运行程序,所以看见就不用管

10.动态调试是为了防止出题人在静态文件中恶意修改变量的存储空间

12.PIE保护BSS缓冲区的地址,ASLR保护text和data的缓冲区的地址。

怎么保护呢,就是没次运行,让你的标识的地址不一样,地址随机偏移一位两位的

13.多个地址为什么能成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转大数据10:深度学习与神经网络在大数据中的应用

目录 1. 引言:深度学习和神经网络在大数据中的重要性和应用场景 2. 深度学习的基本概念和架构 3. Java中的深度学习框架 3.1. Deeplearning4j框架介绍及Java编程模型 3.2. DL4J、Keras和TensorFlow的集成 4. 大数据与深度学习的结合 4.1. 大数据与深度学…

电脑端同时登录多个微信

1、建立一个txt文件 2、右击微信查看应用的属性,记录文件的位置 3、将步骤二得到的路径按照下方的格式输入到步骤一的文本中 4、保存之后将文本后缀名的.txt改成.bat 5、在未登录微信的情况下,双击即可得到两个微信登录窗口

解决idea 通过build project 手动触发热部署失败

在debug运行项目的过程中,并且保证(不添加方法,不修改方法名)一定的规则的情况下,可以通过build project 来手动热部署项目,也就是会交换class文件与resouces文件。 设置项 Edit Configurations Modify Op…

计算机图形学理论(1):建模基础

本系列根据国外一个图形小哥的讲解为本,整合互联网的一些资料,结合自己的一些理解。 场景的组成部分 场景相当于一个或多个模型的集合。模型包含以下内容: 结构描述:几何形状,如顶点、纹理坐标等表面描述&#xff1a…

Vue3中的defineModel

目录 一、vue3的defineModel介绍 二、defineModel使用 (1)在vite.config.js中开启 (2)子组件 (3)父组件 一、vue3的defineModel介绍 为什么要使用到defineModel呢?这里有这样一种场景&…

“快速排序:一种美丽的算法混沌”(1.hoare)

欢迎来到我的博客!在今天的文章中,我将采用一种独特且直观的方式来探讨我们的主题:我会使用一幅图像来贯穿整篇文章的讲解。这幅精心设计的图表不仅是我们讨论的核心,也是一个视觉辅助工具,帮助你更深入地理解和掌握本…

学习深度强化学习---第2部分----RL动态规划相关算法

文章目录 2.1节 动态规划简介2.2节 值函数与贝尔曼方程2.3节 策略评估2.4节 策略改进2.5节 最优值函数与最优策略2.6节 值迭代与策略迭代2.7节 动态规划求解最优策略 本部分视频所在地址:深度强化学习的理论与实践 2.1节 动态规划简介 态规划有两种思路&#xff1…

前端 Web Workers 简介

简介 以前我们总说,JS 是单线程没有多线程,当 JS 在页面中运行长耗时同步任务的时候就会导致页面假死影响用户体验,从而需要设置把任务放在任务队列中;执行任务队列中的任务也并非多线程进行的,然而现在 HTML5 提供了…

App备案、ios备案Bundle ID查询、公钥信息、SHA-1值

App备案、ios备案Bundle ID查询、公钥信息、SHA-1值 Bundle ID这个就不说了,都知道是啥,主要说公钥信息和SHA-1值的获取 打开钥匙串访问,找到当前需要备案App的dis证书,如下: #####右键点击显示简介 #####可以看…

03.仿简道云公式函数实战-QLExpress初探

1. 前言 在上一篇文章中,我们简单介绍了一下表达式引擎,并引出我们的主角QLExpress.在这篇文章中,我们先来一个QLExpress的热身。 2. 初探QLExpress 源码地址:https://github.com/alibaba/qlExpress 笔者下载源码的版本是3.3.…

STL源码剖析笔记——适配器(adapters)

系列文章目录 STL源码剖析笔记——迭代器 STL源码剖析笔记——vector STL源码剖析笔记——list STL源码剖析笔记——deque、stack,queue STL源码剖析笔记——Binary Heap、priority_queue STL源码剖析笔记——AVL-tree、RB-tree、set、map、mutiset、mutimap STL源…

【Spring 基础】00 入门指南

【Spring 基础】00 入门指南 文章目录 【Spring 基础】00 入门指南1.简介2.概念1)控制反转(IoC)2)依赖注入(DI) 3.核心模块1)Spring Core2)Spring AOP3)Spring MVC4&…

php实现截取姓名中的第一个字作为头像的实战记录

php 截取中文字符串第一个字 substr 函数 在 PHP 中,使用 substr 函数来截取中文字符串的第一个字。由于 PHP 默认的字符编码是 UTF-8,它可以正确处理中文字符。 $chineseString "你好世界"; $firstChar substr($chineseString, 0, 1); e…

中文分词演进(查词典,hmm标注,无监督统计)新词发现

查词典和字标注 目前中文分词主要有两种思路:查词典和字标注。 首先,查词典的方法有:机械的最大匹配法、最少词数法,以及基于有向无环图的最大概率组合,还有基于语言模型的最大概率组合,等等。 查词典的方法…

知识产权服务企业网站建设效果如何

知识产权服务也有较高的市场需求度,尤其如今互联网深入到各个行业,无论个人还是企业都会以不同的方式经营,相应的为保障自身权益,注册商标、专利等自然不可少,而对普通小白来说,想要完成这些流程也是有些难…

Python实现获取b站视频的弹幕内容

前言 本文是该专栏的第39篇,后面会持续分享python的各种干货知识,值得关注。 在本专栏之前,有详细介绍使用python增加b站视频的播放量方法,感兴趣的同学可往前翻阅《Python-增加b站视频播放量》。而本文,笔者再来单独的详细介绍,通过python来获取b站视频的弹幕内容。如下…

CGAL的3D皮肤表面网格

1、介绍 Edelsbrunner 引入的皮肤表面和具有丰富而简单的组合和几何结构,使其适合在生物计算中模拟大分子。 对这些表面进行网格划分通常是进一步处理其几何形状所必需的,例如在数值模拟和可视化中。 皮肤表面由一组加权点(输入球&#xff09…

html通过CDN引入Vue使用Vuex以及Computed、Watch监听

html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求,就是需要在.net MVC的项目中,对已有的项目的首页进行优化,也就是写原生html和js。但是咱是一个写前端的,写html还可以,.net的话,开发也…

期末速成数据库极简版【查询】(3)

目录 多表查询 【8】多表连接——内连接 🙂等值连接 🙂自然连接 🙂非等值连接 【9】多表连接——外连接 【10】交叉连接不考 【11】联合查询 【12】扩展多表连接 【13】嵌套查询 🙂 多表查询 【8】多表连接——内连…

OSPF路由协议

随着Internet技术在全球范围的飞速发展,OSPF已成为目前应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作组提出的,是一种基于SPF算法的…