看流星社区

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

让指针指向一个给定的地址

[复制链接]

该用户从未签到

发表于 2011-3-23 07:16:18 | 显示全部楼层 |阅读模式
1.函数形式
inline void* PointToAddr(long addr)
{
    _asm{
        mov eax,addr;
    }     
}

使用:
char *buf=NULL;
buf=(char*)PointToAddr(0x409cb4);


DWORD addr=0x409cb4;
buf=(char*)PointToAddr(addr);

该用户从未签到

发表于 2011-3-23 07:16:34 | 显示全部楼层
2.直接使用形式
    char *buf=NULL;
    _asm{
        mov eax,0x409cb4;         
        lea ecx,buf;
        mov dword ptr[ecx],eax;
    }

该用户从未签到

发表于 2011-3-23 07:16:49 | 显示全部楼层
3.让一个函数不被内联
  __declspec(noinline) int mbrfunc() {
      return 0;  
  }  // will not inline

该用户从未签到

发表于 2011-3-23 07:16:59 | 显示全部楼层
//读指定地址的内存数据到缓冲
void *readm(void *buf,long addr,long len)
{
    _asm
    {         
        mov edi,buf;
        mov esi,addr;
        mov ecx,len;
LP:
        mov al,byte ptr[esi+ecx-1];
        mov byte ptr[edi+ecx-1],al;
        loop LP;
        mov eax,edi;         
    }
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

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

GMT+8, 2024-4-25 07:14

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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