首页
社区
课程
招聘
不明白这段汇编。应该先入栈的后出栈的呀!怎么第一个出栈的就是DS呢?
发表于: 2006-10-26 10:11 3731

不明白这段汇编。应该先入栈的后出栈的呀!怎么第一个出栈的就是DS呢?

2006-10-26 10:11
3731
_asm
  {
    push ds
    mov ecx,dword ptr ds:[0xD76840]
    mov eax,dword ptr ds:[ecx]
    push 0
    push 0
    push 0
    push 1
    push 0xFF00FF00    //颜色
    push _address      //字符串的地址
    push 0xC0          //Y坐标
    push 0x160         //X坐标
    call dword ptr ds:[eax+0x18]
    pop ds
  }

附带第二个小问题:
FARPROC 函数的作用和用法????

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
call dword ptr ds:[eax+0x18]应该是stdcall,返回时已经清理堆栈,所以pop ds时,堆栈的指针就指在这个位置。
farproc是16位计算机的概念,也就是调用是跨段的调用,调用时根据段寄存器和偏移量的值来跳转,near过程只使用偏移量,32位机器已经不使用这个概念,将来的64位就更没有这个概念了。
2006-10-26 10:41
0
游客
登录 | 注册 方可回帖
返回
//