首页
社区
课程
招聘
[旧帖] 汇编call指令的问题 0.00雪花
发表于: 2010-2-3 19:09 7332

[旧帖] 汇编call指令的问题 0.00雪花

2010-2-3 19:09
7332
call 0x00459924 的机器码是多少?(转移目的地址在指令中的 )
OD中写call 0x00459924 得到的机器码是 E9 9C 00 00 00 这个是位移在指令中
我想要 转移目的地址在指令中的CALL机器码

另外 转移目的地址在指令中的 CALL在OD中怎么写?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
call的转移地址的机器码是用目的地址-下一句的地址来表示的
同一句话在不同的地方都不同
2010-2-3 20:17
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
3
看了三遍,没有看懂你要表达的意思
call 0x00459924的机器码就是为E9 9C 00 00 00
并且这个指令也不叫做位移指令
是一个CALL 子程序,进入函数地址0x00459924的子程序中执行程序

“另外 转移目的地址在指令中的 CALL在OD中怎么写? ”这句话怎么读都不懂,
在OD中如果需要call另外的地址,只要反汇编当前的call之后的地址就可以了,它是自动转换成机器码,快捷键是"space"即空格
2010-2-3 20:23
0
雪    币: 145
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
就是在OD中直接写 call 0x00459924 CALL代码地址是00459883 得到的机器码是E9 9C 00 00 00
E9代表call    9C 00 00 00 是位移

转移目的地址在指令中的CALL  就是机器码中包含目的的地址 就是不管当前EIP是多少直接执行这
个CALL 就跑到指定的地址了
例如
call    dword ptr [459924]   机器码是 FF 15 24 99 45 00
FF15代表call  24994500目的地址

我要的就好比call far ptr
2010-2-3 20:41
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
淡淡的       淡淡的
2010-2-3 20:41
0
雪    币: 56
活跃值: (276)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼上正解
2010-2-3 20:51
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
7
在OD里直接写   call    ds:[459924]
2010-2-3 21:16
0
雪    币: 145
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=blueapplez;757135]在OD里直接写   call    ds:[459924][/QUOTE]

这个是目的地址在内存中
2010-2-3 21:21
0
雪    币: 184
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
push 459924
call [esp]
add esp,4

不然就只有在进程中申请内存,然后写入call地址后,诸如
call [12345678]
这种形式的call
2010-2-3 21:33
0
雪    币: 132
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
E9 (目标地址-下一条指令地址)
下一条指令地址=(当前地址EIP+5)
2010-2-4 20:27
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
说白了就是你的这个要求目前无法满足,没有这样的指令
2010-2-4 21:01
0
游客
登录 | 注册 方可回帖
返回
//