滴水逆向——指针07课堂随笔
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课堂随笔相关推荐
- b站滴水逆向课后练习(入伍停更中)
B站滴水逆向,想学习逆向知识的一起学习吧! 评论区有热心网友提供了全部课件,真心非常感谢! 提取链接:https://pan.baidu.com/s/1YwUP9I7Vctqiq1sOW9feBA 提 ...
- 滴水逆向三期实践1:PE头字段解析,附PE结构下载
视频资源详见网盘搜索 或 在线的B站滴水逆向三期 其课件也能在CSDN或百度搜索到,以下部分为课件内容摘要,部分为自己的理解 最后附上详细注释的自写代码 PE(Portable Executable) ...
- 静态链接库,动态链接库【滴水逆向三期48笔记】
在开发过程中,我们通常会有很多函数,需要多次使用或在不同的程序中使用该函数,也有可能我们会将我们写好的函数给别人使用,但是我们又不想给他源代码,毕竟代码是我们花了很多功夫写出来的,那么我们如何不发给其 ...
- 指针07 - 零基础入门学习C语言47
第八章:指针07 让编程改变世界 Change the world by program 对使用字符指针变量和字符数组的讨论 虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有 ...
- 滴水逆向4月16日学习
滴水逆向 进制 1>.进制的定义: 十进制的定义:由十个符号组成,分别是0,1,2,3,4,5,6,7,8,9,逢十进一. 八进制的定义:由八个符号组成,分别是0,1,2,3,4,5,6,7,逢 ...
- 滴水逆向win32学习笔记1
滴水逆向win32学习笔记 一.字符编码 基本介绍 关于utf-16.utf-8和unicode的关系 BOM头 二.宽字符 基本介绍 常用函数 三.Win32 API中的宽字符 什么是win32 A ...
- 【滴水逆向笔记】C语言指针
文章目录 一.带*类型变量的赋值 二.&符号 三.数组指针 四.CE初探 五.字符串指针 1.实现strlen判断长度 2.实现strcpy复制长度 3.strcat字符串拼接 4.strcm ...
- 滴水逆向作业——指针04
题目1 方法1: char data[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x07,0x09, 0x00,0x20,0x10,0x03,0x03, ...
- 滴水逆向3期笔记与作业——01汇编
防止OneNote丢失. 海哥牛逼. 01汇编笔记 01进制 进制定义 10-2进制转换 八进制 02数据宽度/逻辑运算 数据宽度与存储 逻辑运算 计算机做加法的本质 作业 03通用寄存器_内存读写 ...
最新文章
- Chrome Extension 检查视图(无效)处理方法
- java免安装版配置,Tomcat(免安装版)的安装与配置 配置成windows服务
- Kotlin系列之类和属性
- 索引的优点,索引优化原则
- [Lintcode]136. Palindrome Partitioning /[Leetcode]131. Palindrome Partitioning
- myisam数据表根据frm文件恢复数据表
- 第三十八期:用Git帮助写作者更好地完成工作
- 腾讯的强大不是偶然,小马哥很强大
- Python之面向对象的程序设计
- 速达5000进销存PDA条码打印扫码开单-吉度PDA定制
- java省市区树_Java后台以树形结构返回省市区三级区域信息
- Linux 克隆虚拟机引起的“Device eth0 does not seem to be present, delaying initialization”
- 搜狗拼音linux 知乎,搜狗拼音知乎专版下载
- 2022-2027年中国图书馆RFID行业市场深度分析及投资战略规划报告
- 智能家居平台软件测试,智能家居系统测试
- 腾讯地图路线规划 vue
- 娱乐小游戏助力神器威信小程序源码下载多种游戏选择玩法多种
- WDK学习笔记_基于区块链溯源系统的后端接口开发
- CSS设置元素叠加显示
- 追求卓越:想成为优秀的领导者吗?