首页
社区
课程
招聘
[求助]真奇怪我的ImageDirectoryEntryToData为何不执行?
发表于: 2008-3-9 00:26 6569

[求助]真奇怪我的ImageDirectoryEntryToData为何不执行?

2008-3-9 00:26
6569
新人麼 今天想Hook下OpenProcess这个函数 牛人的教程也写了很多了 一步步照着来
void ReplaceITAEntryInOneModule(LPCTSTR pszCalleeModName,
                                                                DWORD pfnCurrent,
                                                                DWORD pfnNew,
                                                                HMODULE hmodCaller)
{
        ULONG ulSize;
        AfxMessageBox("1",MB_OK);
        PIMAGE_IMPORT_DESCRIPTOR pid=(PIMAGE_IMPORT_DESCRIPTOR)ImageDirectoryEntryToData(
                hmodCaller,
                TRUE,
                IMAGE_DIRECTORY_ENTRY_IMPORT,
                &ulSize);
                AfxMessageBox("2",MB_OK);
                           if(pid==NULL)
                return;

while(pid->Name)
        {
                LPCTSTR name=LPCTSTR((DWORD)hmodCaller+pid->Name);
                if(lstrcmpi(name,pszCalleeModName)==0)
                        AfxMessageBox("GET");
                pid++;
        }
结果钩子挂上去了 却发现一个十分奇怪的现象:ImageDirectoryEntryToData没有执行
最后锁定的结果是第一个AfxMessageBox("1",MB_OK)可以弹出来 第二个AfxMessageBox("2",MB_OK)却没有反应
这是怎么回事?程序转到ImageDirectoryEntryToData然后去了哪里?
请教高手帮助下 百思不解

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 709
活跃值: (2590)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
用这个函数需要调用ImageHlp.lib
你检查下加了没~~~

其实不用它完全可以,也就是定位到数据目录表的地址~~
2008-3-9 07:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
就是奇怪我已经用了啊
#include <imagehlp.h>
#pragma comment(lib,"imagehlp")
不用这个函数怎么定位呢?
2008-3-9 11:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个DLL也就是一个普通的MFC的DLL
也不是写的驱动
但为什么不执行呢?
2008-3-9 13:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
真是糊涂了
貌似犯了个低级错误 先改改看--|||
2008-3-9 15:46
0
雪    币: 709
活跃值: (2590)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
根据PE结构很好定位到数据目录表的嘛

pDosHeadr --> pnh --> poh --> IMAGE_IMPORT_DESCRIPTOR 就行了啊
2008-3-9 15:54
0
游客
登录 | 注册 方可回帖
返回