首页
社区
课程
招聘
[求助]请教一个API问题?
发表于: 2007-8-31 20:02 4463

[求助]请教一个API问题?

2007-8-31 20:02
4463
学PE文件格式3天了,终于能够正确的将代码插入PE文件中了。
但是碰到个问题,插入PE文件中的代码如果要调用API函数时怎么
定位API函数的地址呢?

查了查资料,发现似乎都是使用以下的方式来得到API函数地址的
      HINSTANCE h;
      char dllname[] ="User32";
      h = GetModuleHandle(dllname);
      if(h == NULL)
      {
         h = LoadLibrary(dllname);
      }
      DWORD p=(DWORD)::GetProcAddress(h,"MessageBoxA");
      cout<<"Addr of MessageBoxA:  "<<hex<<p<<endl;

使我感疑惑的是难道在所有的WINDOWS系统中,同一个API函数的线性地址都
是一样的吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1753
活跃值: (910)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
~~
         API  `
              函数`是存在于`系统`核心动态连接库中`
     像``USER32.DLL``这之类的``动态连接库``
               所以调用方式`几乎都是这样``
2007-8-31 20:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那,MessageBox 在不同的机器和不同的系统(比如2000和XP)上具有相同的线性地址吗?
2007-8-31 20:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
自己顶一哈!
2007-9-1 01:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
继续顶
高手指点一下
2007-9-1 09:02
0
游客
登录 | 注册 方可回帖
返回
//