首页
社区
课程
招聘
[求助]hook recvfrom地址内存不能读?
发表于: 2008-12-20 12:24 4797

[求助]hook recvfrom地址内存不能读?

ztd 活跃值
1
2008-12-20 12:24
4797
int WINAPI NewRecvFromAddr(SOCKET s,char* buf,int len,int flags,struct sockaddr* from,int* fromlen)
{
    int n;
    n = recvfrom(s,buf,len,flags,from,fromlen);
    MessageBeep(MB_OK);
    return(n);
}
.....
HMODULE hModule = LoadLibrary("WS2_32");
FARPROC OldRecvFromAddr = GetProcAddress(hModule,"recvfrom");
.....
VirtualProtectEx(hProc, OldRecvFromAddr, 5, PAGE_READWRITE,&dwId);
                __asm
                {
                        push eax;
                        push ebx;
                        mov eax,OldRecvFromAddr;
                        mov ebx,NewRecvFromAddr;
                        mov DWORD PTR DS:[eax],0xE9;
                        mov DWORD PTR DS:[eax+1],ebx;
                        pop ebx;
                        pop eax;
                }
-----------------------------------------------------------------------------------------------
只实现获取包包数据的功能,运行程序后用OD看了WS2_32里的recvfrom的地址已变为JMP NewRecvFromAddr了,可一连接IPX就出现错误说是NewRecvFromAddr这个注入的地址是不可读的,这是为什么?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 184
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
PAGE_READWRITE -> PAGE_EXECUTE_READWRITE
2008-12-20 17:12
0
雪    币: 207
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
我找到原因了,用汇编写入数据它是十进制的没转换
2008-12-20 18:38
0
游客
登录 | 注册 方可回帖
返回
//