首页
社区
课程
招聘
[求助]vc内联汇编能实现jmp 0xF8000000吗?
发表于: 2013-8-11 21:13 5804

[求助]vc内联汇编能实现jmp 0xF8000000吗?

2013-8-11 21:13
5804
代码处环境恶劣,不能写内存和压栈,寄存器也不敢随便碰,所以间接寻址跳转没可能了。

使用_asm jmp far ptr 0xF1234567 的话,ddk直接报错,error C2415: improper operand type

似乎那个数字只能换成函数地址才能编译通过,
又测试了一下,换成函数内的地址标签的话,居然报error C1001: INTERNAL COMPILER ERROR,难道vc认为同一个函数里面使用长跳转会直接撞到墙挂掉?

最后只能用_EMIT 拼凑代码。这样毕竟很不爽。所以想知道有没有解决的办法呢。

还望大侠赐教,多谢多谢

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
修改eip的指令不能是立即数
2013-8-11 21:22
0
雪    币: 1392
活跃值: (5197)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
3

楼主可以尝试使用

JMP [XXXXXX]
(XXXXXXX)里面的数据为AAAAAAA
或者
PUSH AAAAAAA
RET

都可以调到AAAAAA
但是内联直接 JMP AAAAAAA是不可行的
2013-8-11 21:25
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那看来还是只能用
_asm _EMIT 0xE9 算相对地址了。。。
多谢了~
2013-8-11 21:34
0
雪    币: 8764
活跃值: (5240)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
mov eax,0xF1234567
jmp eax
2013-8-11 22:06
0
雪    币: 807
活跃值: (2288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你的长跳转用下面两句指令看看效果会如何?

_asm push 0xF8000000
_asm retn
2013-8-11 23:02
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
如楼上的 你也可以用返回 实现。
2013-8-12 19:10
0
游客
登录 | 注册 方可回帖
返回
//