首页
社区
课程
招聘
[求助]ff15方式的call怎么计算地址
发表于: 2010-8-28 19:15 9326

[求助]ff15方式的call怎么计算地址

2010-8-28 19:15
9326

比如
b3d80908 ff15089ed9b3    call    dword ptr ds:[0B3D99E08h]
它调到哪里去了,怎么算的,谢谢!


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

收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
if ( 0xE8 == code_instr.opcode ) // 0xE8 call类型
{
dwJumpTo = (DWORD)p + *(DWORD*)(p+1) + 5 ;
}
else if ( 0xFF == *p && 0x15 == *(p+1) ) // 0xFF15 call类型
{
dwJumpTo = *( DWORD* )(*( DWORD* )( p + 2 ));
}
else if ( 0xFF == *p && 0x14 == *(p+1) ) // 0xFF14 call 数组[Index]
{
dwJumpTo = *(DWORD*)(p + 3) ;

ProbeForRead( (PVOID)dwJumpTo, 4, 4 );
dwJumpTo = *( DWORD* ) dwJumpTo ;
}
else if ( 0xFF == *p && 0xD2 == *(p+1) ) // 0xFFD2 类型, 不清楚是什么指令
{
dwJumpTo = (DWORD)(p + 2) ;
}
else if ( 0xFF == *p && 0x12 == *(p+1) && 0xba == *(p-5) ) // 0xFF12类型call [寄存器]
dwJumpTo = *( DWORD* )( p - 4 );
ProbeForRead( (PVOID)dwJumpTo, 4, 4 );
dwJumpTo = *( DWORD* ) dwJumpTo ;
}
2010-8-28 22:25
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
3
Intel 64 and IA-32 Architectures Software Developer's Manuals(2008)
2010-8-28 22:26
0
雪    币: 247
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好全呀,谢谢了
2010-8-29 09:06
0
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
5
收藏存档
2010-8-29 10:10
0
雪    币: 1407
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
http://blog.ftofficer.com/2010/04/n-forms-of-call-instructions/
2010-8-29 11:05
0
雪    币: 68
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
标记学习~膜拜楼主
2011-4-20 19:27
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
好全面,有些指令从没考虑过
2011-4-25 13:40
0
雪    币: 507
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
真的很全!!
2011-4-27 15:54
0
游客
登录 | 注册 方可回帖
返回
//