SetWindowLongPtr(hWnd, GWLP_WNDPROC,MySubclassProc):所有发到或发往hWnd窗口的消息,应该由MySubclassProc来处理,而不是由该窗口的标准窗口过程来处理.
1. 使用注册表来注入DLL
当User32.dll被映射到一个新的进程时,会收到DLL_PROCESS_ATTACH通知.当User32.dll对它进行处理的时候,会取得上述注册表键的值,并调用LoadLibrary来载入这个字符串中指定的每个DLL.
2. 使用Windows挂钩来注入DLL
HHOOK WINAPI SetWindowsHookEx(
__in int idHook, \\钩子类型
__in HOOKPROC lpfn, \\回调函数地址
__in HINSTANCE hMod, \\实例句柄
__in DWORDdwThreadId); \\线程ID
最后安装的钩子放在链的开始,而最早安装的钩子放在最后,也就是后加入的先获得控制权。
3. 使用远程线程来注入DLL
除了CreateRemoteThread有一个额外的参数hProcss之外,它与CreateThread完全相同.
4. 使用木马DLL来注入DLL
5. 把DLL作为调试器来注入.
6. 使用CreateProcess来注入代码