1.多级指针

创建指针后一定要赋值,否则就会出现野指针。


选中的项目是p1[0]生成的,cdcall函数调用方法,先传最右边参数。


由图中可知push进3个参数,外平栈为0Ch。



ebp-8中存的是p2的值


三个printf是等价的


2 数组指针(指向数组的指针)


由上图可看到 px和 * px输出的值是一样的(都是指向数组的首地址),但是是两种不同的类型。对他们进行++操作就可得到他们类型不同,如下图:

px+1,加法运算,实际加的数px是去掉 * 号后的类型(int[2]类型)宽度为8乘1,这里加8。

(* px)+i 解释:

例子1:定义的数组指针为char (*)[2]类型。

结果:实际上是(px+3 * 2 * 1)+3 * 1 从前往后 2 * 1时char [2]的宽度,1是char的宽度。

例子2:定义的数组指针为short (*)[2]类型。

结果:实际上是(px+3 * 2 * 2)+3 * 2 从前往后 2 * 2是short [2]的宽度 ,2是short的宽度。

例子3:定义的数组指针为int (*)[2]类型。

结果:实际上是(px+3 *2 * 4)+3 * 4 从前往后 2 * 4是int [2]的宽度 ,4是int的宽度。

一维数组指针真正要取数组里的值需要两个 * 号

(px+8 * 1)+ 4 * 1,arr中类型都为int4字节。则从1开始偏移为3字节,结果为4。

(px+8 * 3)+4 * 3。从1开始偏移9个字节。结果为10。
也可以写成2维数组形式达到同样目的:

但是两种表示方法不能混用:

一个加了24h,一个加了30h。

滴水逆向——指针07课堂随笔相关推荐

  1. b站滴水逆向课后练习(入伍停更中)

    B站滴水逆向,想学习逆向知识的一起学习吧! 评论区有热心网友提供了全部课件,真心非常感谢! 提取链接:https://pan.baidu.com/s/1YwUP9I7Vctqiq1sOW9feBA 提 ...

  2. 滴水逆向三期实践1:PE头字段解析,附PE结构下载

    视频资源详见网盘搜索 或 在线的B站滴水逆向三期 其课件也能在CSDN或百度搜索到,以下部分为课件内容摘要,部分为自己的理解 最后附上详细注释的自写代码 PE(Portable Executable) ...

  3. 静态链接库,动态链接库【滴水逆向三期48笔记】

    在开发过程中,我们通常会有很多函数,需要多次使用或在不同的程序中使用该函数,也有可能我们会将我们写好的函数给别人使用,但是我们又不想给他源代码,毕竟代码是我们花了很多功夫写出来的,那么我们如何不发给其 ...

  4. 指针07 - 零基础入门学习C语言47

    第八章:指针07 让编程改变世界 Change the world by program 对使用字符指针变量和字符数组的讨论 虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有 ...

  5. 滴水逆向4月16日学习

    滴水逆向 进制 1>.进制的定义: 十进制的定义:由十个符号组成,分别是0,1,2,3,4,5,6,7,8,9,逢十进一. 八进制的定义:由八个符号组成,分别是0,1,2,3,4,5,6,7,逢 ...

  6. 滴水逆向win32学习笔记1

    滴水逆向win32学习笔记 一.字符编码 基本介绍 关于utf-16.utf-8和unicode的关系 BOM头 二.宽字符 基本介绍 常用函数 三.Win32 API中的宽字符 什么是win32 A ...

  7. 【滴水逆向笔记】C语言指针

    文章目录 一.带*类型变量的赋值 二.&符号 三.数组指针 四.CE初探 五.字符串指针 1.实现strlen判断长度 2.实现strcpy复制长度 3.strcat字符串拼接 4.strcm ...

  8. 滴水逆向作业——指针04

    题目1 方法1: char data[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x07,0x09, 0x00,0x20,0x10,0x03,0x03, ...

  9. 滴水逆向3期笔记与作业——01汇编

    防止OneNote丢失. 海哥牛逼. 01汇编笔记 01进制 进制定义 10-2进制转换 八进制 02数据宽度/逻辑运算 数据宽度与存储 逻辑运算 计算机做加法的本质 作业 03通用寄存器_内存读写 ...

最新文章

  1. Chrome Extension 检查视图(无效)处理方法
  2. java免安装版配置,Tomcat(免安装版)的安装与配置 配置成windows服务
  3. Kotlin系列之类和属性
  4. 索引的优点,索引优化原则
  5. [Lintcode]136. Palindrome Partitioning /[Leetcode]131. Palindrome Partitioning
  6. myisam数据表根据frm文件恢复数据表
  7. 第三十八期:用Git帮助写作者更好地完成工作
  8. 腾讯的强大不是偶然,小马哥很强大
  9. Python之面向对象的程序设计
  10. 速达5000进销存PDA条码打印扫码开单-吉度PDA定制
  11. java省市区树_Java后台以树形结构返回省市区三级区域信息
  12. Linux 克隆虚拟机引起的“Device eth0 does not seem to be present, delaying initialization”
  13. 搜狗拼音linux 知乎,搜狗拼音知乎专版下载
  14. 2022-2027年中国图书馆RFID行业市场深度分析及投资战略规划报告
  15. 智能家居平台软件测试,智能家居系统测试
  16. 腾讯地图路线规划 vue
  17. 娱乐小游戏助力神器威信小程序源码下载多种游戏选择玩法多种
  18. WDK学习笔记_基于区块链溯源系统的后端接口开发
  19. CSS设置元素叠加显示
  20. 追求卓越:想成为优秀的领导者吗?

热门文章

  1. 我们时光倒流能倒流吗
  2. 一键启动u盘的快捷键查询表
  3. 安装openssl和openssl-devel
  4. 基于手机支付方式的电子商务网站
  5. BZOJ3926: [Zjoi20150]诸神眷顾的幻想乡
  6. 雷神之战html5游戏在线玩,每周30命!5.2雷电王座BOSS莱登限制挑战次数
  7. Spyder crashed during last session 及其后诸多问题
  8. 机器学习读书笔记:半监督学习
  9. 天龙八部 找怪物ID
  10. 什么是大病医保?是商业保险吗?包括哪些病?怎么办理?