实验原理
(1)在注册表编辑器中,将要注入的DLL的路径字符串写入AppInt_DLLs项目,把LoadAppInit_DLL的项目值设为1。重启后,指定DLL会注入所有运行的进程。
(2)其实是,user32.dll被加载到进程时,会读取AppInit_DLLs注册表项,若有值,则调用LoadLibrary加载用户DLL。因此严格讲,该DLL只是被加载到加载user32.dll的进程。
(3)注意:xp会忽略LoadAppInit_DLL项。
myhack2.dll源码:
#include "windows.h"
#include "tchar.h"
#define DEF_CMD L"C:\\Program Files\\Internet Explorer\\iexplorer.exe"
#define DEF_ADDR L"http://www.baidu.com/"
#define DEF_DST_PROC L"notepad.exe"
BOOL WINAPI DllMain(HINSTANCE hinstDll,DWORD fdwReason,LPVOID lpvReversed)
{
TCHAR szCmd[MAX_PATH] = {
0,};
TCHAR szPath[MAX_PATH] =

本文介绍了如何通过注册表实现DLL注入,详细步骤包括在注册表中设置AppInit_DLLs项,使得指定DLL在系统启动时注入到所有进程中。通过示例myhack2.dll,展示了DLL如何在非XP系统中隐秘执行操作,如隐藏启动IE并链接到特定网站。此外,还提到了一些关键的编程概念,如LPTSTR、STARTUPINFO和CREATE_PROCESS等。
2159

被折叠的 条评论
为什么被折叠?



