DLL为何注入失败

marcus2006 2015-09-07 08:47:51
环境:Win81 中文64bit, VS2014
参考文档:
Windows核心编程(第5版) 第22章
http://blog.chinaunix.net/uid-26275986-id-3141902.html
http://blog.chinaunix.net/uid-26275986-id-3141902.html

要求结果:注入自己写的dll,看见一个弹出框
 case DLL_PROCESS_ATTACH:  
// attach to process
// return FALSE to fail DLL load
MessageBoxA(0, "I am a dll!", "DLL Message", MB_OK | MB_ICONINFORMATION);
break;

实现结果:
我分别尝试了 1. 自身进程 2. notepad.exe 3. mspaint.exe 4. calc.exe 5. winlogon.exe 6. firefox.exe 7 Alipaybsm.exe
其中:1/2/3/4都成功了,能看见弹出框。
5在CreateRemoteThread()失败了,返回5.
6/7调用CreateRemoteThread()没失败,但是 WaitForSingleObject(hThread, INFINITE);这句立即返回WAIT_OBJECT_0。我没看见弹出框。
6/7运行在admin用户下

疑问:
1. 为何6/7不能成功?
2. 如何让5成功?

目前已无分可用,希望大家帮忙解答
...全文
785 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
marcus2006 2015-09-25
  • 打赏
  • 举报
回复
能给出方法如何知道谁在进程上创建远程堆么?网址也行
引用 2 楼 hlx_beat 的回复:
DLL注入那么就需要创建远程堆,既然有API创建远程堆,那么也就有相对应的方法知道在谁的进程上面创建远程堆,那么我就在这里做手脚你就没有办法注入了
hlx_beat 2015-09-08
  • 打赏
  • 举报
回复
DLL注入那么就需要创建远程堆,既然有API创建远程堆,那么也就有相对应的方法知道在谁的进程上面创建远程堆,那么我就在这里做手脚你就没有办法注入了
赵4老师 2015-09-07
  • 打赏
  • 举报
回复

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧