说什么什么 read 什么的 ,崩溃int WINAPI hook_recv(SOCKET s, char FAR *buf, int len, int flags)
{
_asm { mov edi,edi; push ebp; mov ebp,esp; mov eax,recv;
add eax,5; jmp eax ; }
return 0;
}相关:
CULHook g_recv("wsock32.dll", "recv", (PROC)hook_recv);CULHook::CULHook(LPSTR pszModName, LPSTR pszFuncName, PROC pfnHook)
{ bNewByte[0] = 0xE9 ; LPVOID pNewFunEntry = (LPVOID)pfnHook ;
m_hModule = ::LoadLibrary(pszModName);
if(m_hModule == NULL)
{
m_pfnOrig = NULL;
return;
} LPVOID pOldFunEntry = ::GetProcAddress(m_hModule, pszFuncName); bNewByte[0] = 0xE9 ;
*((PDWORD)(&(bNewByte[1]))) = (DWORD)pNewFunEntry - (DWORD)pOldFunEntry - 5 ; DWORD dwProtect, dwWriteByte, dwReadByte ;
VirtualProtect ( (LPVOID)pOldFunEntry, 5, PAGE_READWRITE, &dwProtect );
ReadProcessMemory ( GetCurrentProcess(), (LPVOID)pOldFunEntry, bOldByte, 5, &dwReadByte ) ;
WriteProcessMemory ( GetCurrentProcess(), (LPVOID)pOldFunEntry, bNewByte, 5, &dwWriteByte ) ;
VirtualProtect ( (LPVOID)pOldFunEntry, 5, dwProtect, NULL ) ;}
{
_asm { mov edi,edi; push ebp; mov ebp,esp; mov eax,recv;
add eax,5; jmp eax ; }
return 0;
}相关:
CULHook g_recv("wsock32.dll", "recv", (PROC)hook_recv);CULHook::CULHook(LPSTR pszModName, LPSTR pszFuncName, PROC pfnHook)
{ bNewByte[0] = 0xE9 ; LPVOID pNewFunEntry = (LPVOID)pfnHook ;
m_hModule = ::LoadLibrary(pszModName);
if(m_hModule == NULL)
{
m_pfnOrig = NULL;
return;
} LPVOID pOldFunEntry = ::GetProcAddress(m_hModule, pszFuncName); bNewByte[0] = 0xE9 ;
*((PDWORD)(&(bNewByte[1]))) = (DWORD)pNewFunEntry - (DWORD)pOldFunEntry - 5 ; DWORD dwProtect, dwWriteByte, dwReadByte ;
VirtualProtect ( (LPVOID)pOldFunEntry, 5, PAGE_READWRITE, &dwProtect );
ReadProcessMemory ( GetCurrentProcess(), (LPVOID)pOldFunEntry, bOldByte, 5, &dwReadByte ) ;
WriteProcessMemory ( GetCurrentProcess(), (LPVOID)pOldFunEntry, bNewByte, 5, &dwWriteByte ) ;
VirtualProtect ( (LPVOID)pOldFunEntry, 5, dwProtect, NULL ) ;}
解决方案 »
- installshield2009打包问题,哪位高手帮下忙啊?
- 网页怎么传递参数给ocx控件
- 关于CRC-CCITT算法程序的问题
- 请问:可以在多串口多线程的模式下使用微软的串口通讯控件么?该控件是否支持同步读写?如果支持那么怎样设置?
- ListCtrl的删除问题
- 一个小小的打印的问题,您会我不会:
- 请问怎么让一个窗口紧贴着在另一个窗口上方?
- *-** 怎么回事? 我刚刚编辑了一下 .Rc资源, 现在点击一个 RADIO 按钮后,CPU%100? 为什么?
- 用win32 application生成的程序中怎么调用类??
- 奇怪问题:关于IE的internet选项?有谁遇到过?
- 求助,等高手指点
- 删除时总提示第一行“=“附近有语法错误。高手帮帮忙
这几句吗?不知道有没用对?但是不要这几句也不行
是按照这个方法,里面提出了导出函数的概念
谁解释下啊
正常的recv函数都被你破坏了,APIhook的话是在要不破坏正常API的前题下进行的吧.我看你的程序中只是把recv函数的头几个字节改了,但是没有改回来,这样不就是一个死循环了吗?
mov edi,edi;push ebp;mov ebp,esp;
这几行代码系统会自动生成,不用你手写。要手写的话,就把函数声明为naked,禁止系统生成