15,979
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
DWORD WINAPI aThreadProc(LPVOID lpParameter);
LRESULT CALLBACK foo(int nCode,WPARAM wParam,LPARAM lParam)
{
return 0;
}
BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
if(ul_reason_for_call==DLL_PROCESS_ATTACH)
{
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)aThreadProc,0,0,NULL);
}
return TRUE;
}
DWORD WINAPI aThreadProc(LPVOID lpParameter)
{
HANDLE hProcessSnapshot;
MODULEENTRY32 me;
hProcessSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,GetCurrentProcessId());
me.dwSize=sizeof(MODULEENTRY32);
Module32First(hProcessSnapshot,&me);
if(!strcmp(me.szModule,"iexplore.exe"))
{
MessageBox(NULL,me.szModule,"ModuleName",MB_OK);
}
return 0;
}
#include "stdafx.h"
int main(int argc, char* argv[])
{
HMODULE hHookdll;
HOOKPROC foo;
HHOOK hookid;
hHookdll=LoadLibraryA("popDialog.dll");
if(hHookdll==NULL)
printf("load fail!\r\n");
else
printf("load success!\r\n");
foo=(HOOKPROC)GetProcAddress(hHookdll,"foo");
hookid=SetWindowsHookEx(WH_KEYBOARD,foo,hHookdll,0);
if(hookid)
printf("Set HOOK success!\r\n");
else
printf("Set HOOK fail!\r\n");
Sleep(30*1000);
UnhookWindowsHookEx(hookid);
return 1;
}
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
HINSTANCE h_dll;
#pragma data_seg(".MySec")
HWND h_wnd=NULL;
HHOOK gg_hHook=NULL;
#pragma data_seg()
#pragma comment(linker,"/section:.MySec,RWS")
BOOL APIENTRY DllMain( HINSTANCE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
h_dll=hModule;
return TRUE;
}
LRESULT CALLBACK my_test(int nCode,WPARAM wParam,LPARAM lParam)
{
MessageBox(NULL,"hello","hello",0);
return CallNextHookEx(gg_hHook,nCode,wParam,lParam);
}
extern "C" _declspec(dllexport) void SetHook(HWND hwnd)
{
h_wnd=hwnd;
gg_hHook=SetWindowsHookEx(WH_KEYBOARD,my_test,h_dll,0);
DWORD dwError=GetLastError();
if(gg_hHook)
{
printf("Set HOOK success!\r\n");
}
else
{
printf("ErrorNum:%ld Set HOOK fail!\r\n",dwError);
}
return ;
}
#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
typedef void (*pfunc)(HWND);
int main(int argc, char* argv[])
{
HINSTANCE hmod;
pfunc setHook;
hmod=LoadLibrary("..\\..\\release\\testHook.dll");
DWORD dwError=GetLastError();
if(hmod!=NULL)
{
printf("load success!\r\n");
setHook=(pfunc)GetProcAddress(hmod,"SetHook");
setHook(NULL);
}
else
{
printf("Error:%ld load fail!\r\n",dwError);
}
Sleep(30*10000);
return 0;
}