msmvp 发表于 2012-9-9 13:10:10

逆向Gdiquerytable函数遇到的问题

我用ida f5了Gdiquerytable这个未公开函数,得到的结果让我很困惑,大侠帮忙看看


环境:Windows 7 sp1x86 32bit系统
工具:IDAhex-rays
目标:GdiQueryTable函数

int __cdecl GdiQueryTable()
{
   int result; // eax@3
   int v1; // @1
   char v2; // @1

v1 = -1;
   v2 = 0;
   if ( NtVdmControl(14, &v1) >= 0 && v2 )//v2不是明显为0么?这个if难道不是一直为false么?奇怪啊
   result = dword_77BA900C;
   else
   result = 0;
   return result;
}
v2不是明显为0么?这个if难道不是一直为false么?奇怪啊
谢谢了

Tesla.Angela 发表于 2012-9-9 16:09:26

有啥好大惊小怪的,分明就是IDA的F5插件搞错了呗。

msmvp 发表于 2012-9-9 16:19:25

本帖最后由 msmvp 于 2012-9-11 14:09 编辑

Tesla.Angela 发表于 2012-9-9 16:09 static/image/common/back.gif
有啥好大惊小怪的,分明就是IDA的F5插件搞错了呗。

我反复看了下,我觉得F5没有错。

msmvp 发表于 2012-9-11 14:10:17

TA兄,能否帮忙分析下为什么?
windows 7下总是返回0(NULL)
我看了下xp下的实现,就是mov eax,_pgdihandletable返回而已,故而成功。
能否在不hook的前提下解决这个问题?谢谢了

msmvp 发表于 2012-9-14 23:20:39

TA兄?
页: [1]
查看完整版本: 逆向Gdiquerytable函数遇到的问题