首页
社区
课程
招聘
[旧帖] [求助]*(_DWORD *)(a1 + 1544) = 12 怎么理解 0.00雪花
发表于: 2011-6-17 11:41 4036

[旧帖] [求助]*(_DWORD *)(a1 + 1544) = 12 怎么理解 0.00雪花

2011-6-17 11:41
4036
*(_DWORD *)(a1 + 1544) = 12 怎么理解C++语言

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 429
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
a1+1544是个指针,以DWORD方式取这个指针的内容
2011-6-17 12:00
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
这一句的整体意思就是:将al的值加上1544,然后将这个值强制转换为整数指针,并往这个指针指向的地址内存写入一个"12"的整数值。
2011-6-17 12:01
0
雪    币: 429
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上说的对,我只是说了前半部分,后面的没说清楚
2011-6-17 12:03
0
雪    币: 723
活跃值: (81)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
a1 是一个结构体或数组的机会大些,不像是指针
2011-6-17 12:06
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
呵呵 这个得对内存有深刻的了解
2011-6-17 13:26
0
雪    币: 191
活跃值: (130)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
拆开来不知道这么理解可否
*(_DWORD *) --> DWORD类型的内存引用
(a1 + 1544)    --> 内存地址
= 12            -- > 写DWORD 12 到地址(a1 + 1544),内存操作方式为DWORD
2011-6-17 14:54
0
雪    币: 965
活跃值: (1184)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
8错,不过还是二楼、三楼的理解最直接
2011-6-17 15:17
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
10
可以将这一句拆分成三步开来会比较好理解:
a1 = a1 + 1544; // 第一步先将al的值加上1544
_DWORD * p = (_DWORD *)a1;  // 第二步将al的值类型强制转换为_DWORD*类型指针
*p = 12; // 往这个内存指针写入一个_DWORD类型整数"12"
2011-6-17 15:58
0
雪    币: 408
活跃值: (156)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
11
(_DWORD *)a1 此时就是一个指针,也就是告诉编译器a1现在临时作为指针变量(放地址用的),指向的类型是dword,前面再加* 表示这个指针指向的数据12
2011-6-17 17:24
0
雪    币: 97
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
本来我也是每天看贴无数,基本上不回贴.后来发现这样很傻,很多比我注册晚的人级别确更高,我深深的自责了,为什么我怎么没有上进心呢。于是我就把这段文字保存在记事本里,每看一贴就复制粘贴一次.     
我并不为楼主的标题所吸引,也不是被贴子的内容所迷惑。我不是来抢沙发的,也不是来打酱油的。我不是来为楼主呐喊加油的,也不是对楼主进行围堵攻击的。我只是为了帖子数默默奋斗 ,在这个处处都要邀请码的时代,不得不弄个会员来当当,但是小弟系初来乍到,500帖的巨大发帖量对我来说是比较难的,于是我抄下了这段话,专门用来刷够500,所以我就每帖必回,争取早日能上的起厕所!
2011-6-17 17:35
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
13
你可以凑合的看成 a1[193]=12;
2011-6-17 19:14
0
游客
登录 | 注册 方可回帖
返回
//