首页
社区
课程
招聘
[求助]VC内联汇编寻址问题
发表于: 2009-4-25 17:06 3488

[求助]VC内联汇编寻址问题

2009-4-25 17:06
3488
  
       mov  eax ,  [p]          //假设p为 0x0012FED4
       为什么 结果eax 会是0012FED4  不是去取0x0012FED4地址的值给eax吗?
    
如果    mov  ebx,  p             //ebx为 0x0012FED4
        mov  eax,  [ebx]      //ok   去ebx的地址的值
  


    以上不是很明白,是编译器的问题吗?谢谢!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
你的p是如何定义的呢?p的期望值是多少呢?
2009-4-25 18:38
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
比如:
void Fun(void** p)
{
}


p是一个二级指针,里面存放是一个地址,我要改变这个地址指向的内容,其实是这样的,
*p = xxxx   就可以了,但是我想试一下内联汇编,就发现这个寻址的问题,一般中括号不是取里面地址的值吗? lea 指令除外.
2009-4-25 18:57
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mov eax,


mov ebx,[eax]

这样才可以

这里的话mov eax ,

  和mov eax, p     //eax的结果都是一样的,是P的指针

2009-4-25 22:28
0
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不建议楼主写内联~写壳的时候我用内联遇到了非常多的问题(水平有限),倒是觉得之间把asm加到工程里面,再外部用asm里标签偏移赋值挺方便的~~
2009-4-25 22:38
0
雪    币: 155
活跃值: (29)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
学习一下 呵呵
2009-4-25 22:40
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢4L的,刚刚试了一下,确实是这样,但用debug A命令调试了一下又不同于VC内联汇编,看来应该是编译器的问题 ,把 mov eax, [12345678]  当成了  mov eax,  12345678
2009-4-25 22:46
0
游客
登录 | 注册 方可回帖
返回
//