windows – 如何在dll注入中调用特定函数?
发布时间:2020-12-14 02:05:37 所属栏目:Windows 来源:网络整理
导读:以下代码将注入dll并将调用DllMain.我如何从DLL中调用特定函数,而不仅仅是DllMain? DWORD pid; HANDLE hd; LPVOID gp,rs,proc; gp = (LPVOID)GetProcAddress(GetModuleHandle(L"Kernel32.dll"),"LoadLibraryA"); pid = 6096; hd = OpenProcess(PROCESS_ALL_
以下代码将注入dll并将调用DllMain.我如何从DLL中调用特定函数,而不仅仅是DllMain?
DWORD pid; HANDLE hd; LPVOID gp,rs,proc; gp = (LPVOID)GetProcAddress(GetModuleHandle(L"Kernel32.dll"),"LoadLibraryA"); pid = 6096; hd = OpenProcess(PROCESS_ALL_ACCESS,pid); rs = (LPVOID)VirtualAllocEx(hd,sizeof(DLL_NAME),MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE); if (!WriteProcessMemory(hd,(LPVOID)rs,DLL_NAME,strlen(DLL_NAME),0)) { printf("WriteProcessMemory %d",GetLastError()); } if (!CreateRemoteThread(hd,(LPTHREAD_START_ROUTINE)gp,0)) { printf("CreateRemoteThread %d",GetLastError()); } 解决方法
当你注入的DLL的DllMain第一次运行时,调用CreateThread来创建一个可以做你喜欢的任何事情的新线程.请注意,您无法按照文档中的说明从DllMain调用任意代码.因此从DllMain调用CreateThread.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ARM cortex-M3 uint_fast32_t vs uint32_t
- .net-4.0 – 使用CurrentDomain.SetData(“APP_CONFIG_FILE
- flutter从零开始第一篇-环境搭建(Windows)
- windows – 为什么套接字connect()到它自己的短暂端口?
- windows – 我可以使用哪些工具来测量Active Directory对查
- windows-phone-7 – 在扩展程序视图中删除垂直行Windows Ph
- windows-7 – 通过Windows命令行连接到gmail pop服务器
- windows-phone-7 – 在桌面上运行Windows Phone 7应用程序
- windows7环境下的http-server的问题 排查
- windows 工具命令 cmd
推荐文章
站长推荐
热点阅读