首页
社区
课程
招聘
如何得到指针的指针?
2006-6-18 05:10 3963

如何得到指针的指针?

2006-6-18 05:10
3963
LOCAL   @temp[100]:BYTE

lea eax,@temp

eax中存放的是@temp的指针

我还想要得到eax的指针,应该如何如何做?

我目前的做法
LOCAL   @temp[100]:BYTE
LOCAL   @lptemp:LPVOID

lea eax,@temp
mov @lptemp,eax
lea eax,@lptemp

可否不用@lptemp这个变量???

把操作都放入寄存器中。。。。。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
打赏
分享
最新回复 (6)
雪    币: 291
活跃值: (208)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
thebutterfly 5 2006-6-18 10:50
2
0
不大看懂你的意思,你这几步不过是让eax中存放了@temp的地址而已
雪    币: 235
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lemony 1 2006-6-18 14:27
3
0
简单的说,我如何得到一个寄存器的地址?

lea eax,[ebx]

这样好像是得到ebx的值而不是地址
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
AsmCCPlus 2006-6-18 14:31
4
0
最初由 lemony 发布
LOCAL @temp[100]:BYTE

lea eax,@temp

eax中存放的是@temp的指针
........


首先说明一下...寄存器是不能取地址的哦.....

之于下面这个,不明白你是什么意思....

我目前的做法
LOCAL   @temp[100]:BYTE
LOCAL   @lptemp:LPVOID

lea eax,@temp
mov @lptemp,eax
lea eax,@lptemp
你先将@TEMP 地址放在@LPTEMP中..又取@LPTEMP地址放在EAX中...如果你想
LEA EAX,@TEMP
LEA EBX,EBX 
那就会出错...是不可能的....
雪    币: 235
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lemony 1 2006-6-18 14:45
5
0
那就是说,如果我要取得一个变量地址的地址,就必须再声明一个变量了。。。。。。。
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
AsmCCPlus 2006-6-18 15:36
6
0
  没有必要了...因汇编中两次取地址几乎很少用.....lea eax,temp
本来就是取的变量地址.....如果有必要用两次取地址...那就要额外变量了...
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
figofuture 2006-6-18 16:35
7
0
最初由 lemony 发布
简单的说,我如何得到一个寄存器的地址?

lea eax,[ebx]

这样好像是得到ebx的值而不是地址


不明白你这里"寄存器的地址"是什么意思?
寄存器里存放的数据可以是数值,也可以是内存地址.他们是在CPU内部的存储器,用标号表示就可以了,一般不会关心他们的地址.
游客
登录 | 注册 方可回帖
返回