我们如何劫持 DLL 来锁定 windows 中的所有目录以验证
how can we Hijack DLL to lock all directories in windows to verify
我的意思是当我们双击一个目录时,在请求我们verify.I认为它可以通过dll-injection.Hope可以给一些想法或tutorial.Thanks
不需要劫持DLL。它使用 Window 消息挂钩。
首先,创建调用 SetWindowsHookEx.
的 DLL
hHookMsg = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)MsgProc, hInstance, 0);
例如调用了install_hook
,而这里的MsgProc
LRESULT CALLBACK MsgProc(INT nCode, WPARAM wp, LPARAM lp) {
CHAR className[256];
MSG *pmsg;
LVHITTESTINFO htif;
POINT pt;
pmsg = (MSG*)lp;
GetClassName(pmsg->hwnd, className, sizeof(className));
if (!strcmp(className, "SysListView32")) {
if (pmsg->message == WM_LBUTTONDBLCLK) {
GetCursorPos((LPPOINT)&pt);
htif.pt = pt;
ScreenToClient(pmsg->hwnd, &htif.pt);
SendMessage(pmsg->hwnd, LVM_HITTEST, 0, (LPARAM)&htif);
if ((htif.flags & LVHT_ONITEM) != 0) {
// you can write action here
}
}
}
return CallNextHookEx( hHookMesg, nCode, wp, lp );
}
并创建调用此 install_hook 的 EXE。
我的意思是当我们双击一个目录时,在请求我们verify.I认为它可以通过dll-injection.Hope可以给一些想法或tutorial.Thanks
不需要劫持DLL。它使用 Window 消息挂钩。 首先,创建调用 SetWindowsHookEx.
的 DLLhHookMsg = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)MsgProc, hInstance, 0);
例如调用了install_hook
,而这里的MsgProc
LRESULT CALLBACK MsgProc(INT nCode, WPARAM wp, LPARAM lp) {
CHAR className[256];
MSG *pmsg;
LVHITTESTINFO htif;
POINT pt;
pmsg = (MSG*)lp;
GetClassName(pmsg->hwnd, className, sizeof(className));
if (!strcmp(className, "SysListView32")) {
if (pmsg->message == WM_LBUTTONDBLCLK) {
GetCursorPos((LPPOINT)&pt);
htif.pt = pt;
ScreenToClient(pmsg->hwnd, &htif.pt);
SendMessage(pmsg->hwnd, LVM_HITTEST, 0, (LPARAM)&htif);
if ((htif.flags & LVHT_ONITEM) != 0) {
// you can write action here
}
}
}
return CallNextHookEx( hHookMesg, nCode, wp, lp );
}
并创建调用此 install_hook 的 EXE。