鱼C论坛

 找回密码
 立即注册
查看: 5069|回复: 7

对call指令的理解,如:call DWORD ptr DS:[ MmGetSystemRoutineAddress]

[复制链接]
发表于 2013-7-21 22:04:54 | 显示全部楼层 |阅读模式
5鱼币

在x86下的  call

在 windows 模式下的
call DWORD ptr DS:[ MmGetSystemRoutineAddress]
有个高人告诉我:call MmGetSystemRoutineAddress 可以代替
call DWORD ptr DS:[ MmGetSystemRoutineAddress] ,说编译器会自动加上“[]”
这按x86汇编思路来想windows 模式的汇编,好象不一样了,想不通了

按x86的想[ MmGetSystemRoutineAddress]应该是代表MmGetSystemRoutineAddress指向的值。
call MmGetSystemRoutineAddress 怎么能和call DWORD ptr DS:[ MmGetSystemRoutineAddress] 是表达的

一样的含义呢?

还有一种call DWORD ptr DS:[<&kernel32.getversion >]

这里的:<&kernel32.getversion >]是什么含义? 和上边的有什么不同?











想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2013-7-22 19:01:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-22 19:47:17 | 显示全部楼层
你看下小甲鱼OD教程 那里有好象是第3课。。。你用符号帮助就会明白第2个是什么东西。我新学也解析不清楚。

评分

参与人数 1鱼币 +5 贡献 +5 收起 理由
勇往直前 + 5 + 5 谢谢

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-22 21:01:05 | 显示全部楼层
鱼OD教程 那里有好象是第3课。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-23 07:33:09 | 显示全部楼层

看了您的回答,我想我已经找到我想错的地方了!非常感谢!
我是对直接寻址掌握的不够!
mov ax,0123h
mov [bx],ax
mov word ptr [bx+2].0
jmp dword ptr [bx]
执行后   cs:ip指向0000:0123
我看以上书中代码时,把[bx]看做是一个变量了!因为bx也是经常变化的值!
这也是错误的原因!
如果这里
出现jmp dword ptr [bx]和jmp bx 应该是不同的含义吧!寄存器bx为地址的位置放着0123
如果bx里存放1001h cs=0000  jmp bx应该为等价为 jmp  1001
就不会象jmp dword ptr [变量]和jmp [变量]含义相同!
我这样想,对吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 09:41:58 | 显示全部楼层
call后是调研用子程序或内存地址,万变不离其中,,,无非就是PUSH CS,IP--JMP
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2013-7-23 09:51:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-17 10:32:28 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 00:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表