首页 > 其他分享 >讨论栈地址高低位分析

讨论栈地址高低位分析

时间:2024-12-11 21:35:05浏览次数:3  
标签:讨论 高低 x86 int s1 char 地址 printf

讨论栈地址高低位分析:
遇到一道栈溢出的题,发现对入栈地址高低位储存还是不清晰,打算研究一下,
常见架构如 x86 和 x86-64 默认使用小端字节序。
以下基于x86 32位程序
写一个函数,将字符,数字入栈
`void __stdcall aa(char *s,int a)
{
char s1[32];
int b=0x45678912;
strcpy(s1,s);
printf("%d\n",&b);
printf("%d\n%d",&s1,&s1[1]);

}
int main()
{
int b=123456789123456789;
char* sa="aaa1234567890123456789aaa";
aa(sa,b);

}`



printf("%d\n",&b);
printf("%d\n%d",&s1,&s1[1]);

61是a,31是1的ascill码
说明右边是低地址左边是高地址;

对于int b=0x45678912;为小端存储。。。

回忆一下小端储存

注:0x01 00 00 04

观察栈中地址储存,发现
地址和数字一样。是小端。

但对与字符串是大端。。

所以在栈溢出时

Eip覆盖的字符串为ddee,转ascill码64与65,在栈里存储是65656464;所以地址是65656464而不是64646565.即eedd而不是ddee

标签:讨论,高低,x86,int,s1,char,地址,printf
From: https://www.cnblogs.com/ltlearnweb/p/18600754

相关文章

  • Excel地址(详解版)
    Excel地址Excel单元格的地址表示很有趣,它使用字母来表示列号。比如,A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,...当然Excel的最大列号是有限度的,所以转换起来不难。多多想把这种表示法一般化,把很大的数字转换为很长的字母序列。输入格......
  • Linux 连接 远程服务器的指定IP地址和端口号
    ‌Telnet命令用于连接远程服务器的指定IP地址和端口号,其基本格式如下‌:‌telnet[远程主机IP][端口号]例如,要连接到IP地址为192.168.1.100的设备,端口号为23(默认的Telnet端口号),命令如下:telnet192.168.1.10023Telnet命令的作用‌是提供远程登录服务,用户可以通过Telnet命......
  • 【计算机网络】IP地址及子网划分
    随着互联网技术的飞速发展,网络已经成为现代社会的基础设施。在这样一个高度互联的世界中,有效的IP地址管理变得至关重要。IP子网划分作为网络设计和优化的关键技术之一,对于确保网络的可扩展性、性能和安全性起着决定性作用。本文旨在深入探讨IP子网划分的原理和实践,帮助读者......
  • 网站logo地址哪里修改,如何在网站中修改logo地址
    网站的Logo是品牌形象的重要组成部分,修改Logo地址可以帮助您更新品牌形象或适应新的设计需求。以下是详细的步骤和技巧:备份数据:在进行任何修改前,备份网站的数据和代码,防止意外丢失。使用FTP客户端下载网站的全部文件,并导出数据库。准备新的Logo:准备一个新的Logo图像文......
  • 如何设置Conda环境的保存地址
    如何设置Conda环境的保存地址引言Conda是一个开源的软件包管理系统和环境管理系统,它被广泛用于Python项目的依赖管理和环境隔离。默认情况下,Conda会将所有创建的环境存储在一个特定的目录下(通常是~/anaconda3/envs或~/miniconda3/envs)。然而,对于拥有多个大型项目或者磁盘......
  • 过程映像区和外设地址
    循环程序执行与过程映像区的更新主程序循环过程:OS启动扫描循环监视时间将输出过程映像区的值写到输出模块读取输入模块的值状态值,并更新到输入过程映像区逻辑处理当循环结束,处理其他未决任务,例如删除和加载块。CPU返回循环启动,重新启动扫描循环监......
  • 2、存储容量和存储地址空间的转换
    1、注意点存储容量=字数*位数,字数即地址总数存储空间=末地址-首地址+1字长:计算机一次处理的二进制位数2、例题:(1)某计算机的内存以字节编址,地址范围为30000H到AFFFFH,求存储容量。存储空间=地址总数= AFFFFH- 30000H+1=80000H=1000000000000000000......
  • java根据一个远程地址将文件下载到本地
    privatevoidreadFile(StringdocId,Stringtoken,StringproductResource,StringdocUrl){Stringurl=thirdConfig.getAttachmentUrl()+docId;//下载资源BufferedInputStreambis=null;BufferedOutputStreambos=null;......
  • 2.7 指针什么时候表示值什么时候表示地址
    1. 指针表示地址-声明时:当你声明一个指针变量时,这个变量本身存储的是一个地址。例如, int*p; 这里的 p 是一个指针变量,它被用来存储一个 int 类型变量的地址。-作为函数参数传递时:当你把一个指针作为函数参数传递时,你传递的是地址。例如, voidfunc(int*ptr); 这......
  • 22Java之网络编程(IP地址、端口号、协议、UDP通信、TCP通信、BS架构程序)
    一、网络编程概述同学们,今天我们学习的课程内容叫网络编程。意思就是编写的应用程序可以与网络上其他设备中的应用程序进行数据交互。网络编程有什么用呢?这个就不言而喻了,比如我们经常用的微信收发消息就需要用到网络通信的技术、在比如我们打开浏览器可以浏览各种网络、视频......