首页
社区
课程
招聘
[求助]内联汇编 怎么用jl jle jz jnz等跳转到绝对地址
发表于: 2018-11-15 02:15 5200

[求助]内联汇编 怎么用jl jle jz jnz等跳转到绝对地址

2018-11-15 02:15
5200
jmp call 根据大佬们的回复有了解决办法,不破坏寄存器的条件下
最后是采用的宏定义
DWORD asm_addr;
#define asm_jmp (imm_addr)  __asm mov asm_addr,imm_addr \
						__asm jmp asm_addr

asm_jmp (0x12345678h) //这样可以jmp call
但是除了jmp跟call可以其他的不行

push imm  //只能jmp call
ret 

mov eax,0x0000 //不正确的操作数类型
jl eax

__asm 获取需要的数据然后if判断,但是比较的时候会破坏eax寄存器
__asm mov var,eax
if(var==0x000) //此处会test eax,eax   eax会被清零
{
    jmp 0x0000
}


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

最后于 2018-11-15 04:23 被hackasn编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 591
活跃值: (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
DWORD asm_addr;
#define asm_jmp(imm_addr)  __asm mov asm_addr,imm_addr \
					       __asm jmp asm_addr

jl jmp_0x0055FAED
jle jmp_0x0055FAB3

jmp_0x0055FAED:
    asm_jmp(0x0055FAED)
jmp_0x0055FAB3:
    asm_jmp(0x0055FAB3)

难道只能定义标签然后jmp吗?

最后于 2018-11-15 03:29 被hackasn编辑 ,原因:
2018-11-15 03:12
0
雪    币: 938
活跃值: (948)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
dword dwValue;
call __CurrentEip
__CurrentEip:
pop eax
sub eax,0x05
mov [dwValue],eax

__asm jle (0x12345678h - [dwValue] - 0x05)
2018-11-15 18:12
0
雪    币: 591
活跃值: (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
xssysing dword dwValue; call __CurrentEip __CurrentEip: pop eax sub eax,0x05 mov [dwValue],eax __asm ...
感谢你的解答,等下爬起来去试一下
2018-11-16 06:28
0
游客
登录 | 注册 方可回帖
返回
//