看流星社区

 找回密码
 注册账号
查看: 2594|回复: 3

注入汇编代码后的问题

[复制链接]

该用户从未签到

发表于 2011-3-26 10:24:06 | 显示全部楼层 |阅读模式
程序可以注入汇编代码后,汇编代码可以正常执行,但是当执行到Call这句的时候程序就不执行了,请问谁知道是什么原因
例如(只是例子)
void TestCall()
{
       _asm{
                     mov eax,addr
                    call  eax
                 }
}
前面的MOV 可以执行,当执行到CALL这句时候,程序就走不了了,请问有谁知道是什么原因,谢谢

该用户从未签到

发表于 2011-3-26 10:24:20 | 显示全部楼层
保存当前寄存器环境

__asm
{
        pushad
          mov eax,addr
          call  eax
        popad
}

该用户从未签到

发表于 2011-3-26 10:24:38 | 显示全部楼层
pushad   
      
popad  
这俩个加不加因该没问题吧

该用户从未签到

发表于 2011-3-26 10:24:47 | 显示全部楼层
有没有问题试试不就知道了

在不保存现场的情况下执行汇编语句,执行完之后程序不知道下一句该执行哪里。

----------------
保存当前寄存器环境
执行asm
恢复寄存器环境

这样程序才会从EIP中取出正确的值,从而知道下一条指令该执行什么。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-4 23:23

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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