首页
社区
课程
招聘
[求助]虚函数地址能计算出来吗
发表于: 2016-4-20 21:13 4802

[求助]虚函数地址能计算出来吗

2016-4-20 21:13
4802
d3d9.dll        0x00000000730C09F5->_  inline  E9 0A F6 24 90 8B FF 55 8B EC
d3d9.dll        0x00000000730C279F->_  inline  E9 60 D8 0E 90 8B FF 55 8B EC
d3d9.dll        0x00000000730EA064->_  inline  E9 9B 5F 0A 90  8B FF 55 8B EC
d3d9.dll        0x00000000730EBE81->_  inline  E9 7E 41 13 90  8B FF 55 8B EC
d3d9.dll        0x00000000730EF0F2->_  inline  E9 0D 0F 21 90  8B FF 55 8B EC
730EA064,A046是Present函数,能计算出其他地址是什么函数吗
我想知道他都HOOK了什么虚函数

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费
支持
分享
最新回复 (15)
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
虚函数在内存中地址是怎么分配的,有没有规律
2016-4-25 06:11
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
虚函数地址怎么计算啊,急求指点
2016-4-30 20:12
0
雪    币: 4203
活跃值: (5460)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
真心的 这种基础不能再基础的问题 懒得回答
2016-4-30 23:29
0
雪    币: 144
活跃值: (31)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
5
模块基址 加 偏移算不出来么 ? 难道一个dll换个电脑的同样位置代码就不一样么。
2016-4-30 23:40
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
算不出来呀,我用模块基址算出一个地址,再去推其他地址不对,指点一下谢谢
2016-5-1 00:04
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
根据偏移推其他地址,然后我hook出来的地址和他的不一样
2016-5-1 00:06
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
d3d9确实不能用偏移的办法做,因为它是COM的,
只能采用pattern就是特征码定位的方法
2016-5-1 03:07
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那几个地址是什么函数,怎么分析才能知道
2016-5-2 00:46
0
雪    币: 144
活跃值: (31)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
10
COM也是dll。 可以通过模块基址加偏移的。 不然每次重启虚表函数地址都重写?
2016-5-2 18:49
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
虚表函数地址不变,但是怎么计算这个地址是什么函数呢
比如D3D9
模块地址是6ad71000
6adba046 是Present函数
6adbbe81是什么函数呢
2016-5-3 03:10
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
你实际hook过打d3d吗,不要想当然,自己做一下就知道了
2016-5-3 12:43
0
雪    币: 144
活跃值: (31)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
13
额 .
DWORD __stdcall GetDrawIndexedPrimitiveAddress()
{
  // 0x58BBB6B1  0x58B90000 0x2B6B1
  HMODULE hModule = ::GetModuleHandle("d3d9.dll");
  if (hModule == INVALID_HANDLE_VALUE)
  {
    return NULL;
  }
  return (DWORD)hModule + 0x2B6B1;
}

DrawIndexedPrimitive 这个是COM虚函数吧。。怎么就可以通过偏移取到。
2016-5-3 12:56
0
雪    币: 144
活跃值: (31)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
14
好吧。 我一直理解错了。 我以为你是知道函数名取固定函数位置, 那像你说的。 可以自己构造个抽象类 然后把D3D9的声明拷贝一份。这样偏移第几个就是你对应的虚函数吧。前提你拿到对象。
2016-5-3 12:59
0
雪    币: 217
活跃值: (144)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
COM的话,创建实例的时候会返回虚函数的列表的
2016-5-8 23:46
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
最后用od分析程找到这几个函数了,其实我想问的是同个表里的虚函数地址分配的有规律没
2016-5-9 04:03
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册