如何让没有源码的exe程序加载自己的DLL?

lx624909677 2015-03-10 04:41:44
现在有个Detours 库写的API拦截的DLL,这里假设要拦截MessageBox,请问如何让其他的exe程序来加载这个DLL呢?也就是如何让DLL注入到exe里,谢谢!
...全文
539 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lougd 2015-03-11
  • 打赏
  • 举报
回复
引用 11 楼 lx624909677 的回复:
[quote=引用 10 楼 u011391040 的回复:] [quote=引用 9 楼 lx624909677 的回复:] [quote=引用 8 楼 u011391040 的回复:]
那请问在获取动态链接库函数地址那里的GetModuleHandle是获得哪个动态库的地址呢?[/quote] GetModuleHandle获取的是已加载的模块句柄,第一个参数是模块名。[/quote] 也就是说,是写我要注入的DLL的名字就可以是吗?[/quote] 不是,代码里的那个意思是获取系统dll kernel32模块的LoadLibrary作为远程线程的执行函数,这么做的意义在于在目标进程创建远程线程后调用LoadLibrary加载你想注入的dll。
lx624909677 2015-03-11
  • 打赏
  • 举报
回复
引用 10 楼 u011391040 的回复:
[quote=引用 9 楼 lx624909677 的回复:] [quote=引用 8 楼 u011391040 的回复:]
那请问在获取动态链接库函数地址那里的GetModuleHandle是获得哪个动态库的地址呢?[/quote] GetModuleHandle获取的是已加载的模块句柄,第一个参数是模块名。[/quote] 已经明白了,谢谢
lx624909677 2015-03-11
  • 打赏
  • 举报
回复
引用 10 楼 u011391040 的回复:
[quote=引用 9 楼 lx624909677 的回复:] [quote=引用 8 楼 u011391040 的回复:]
那请问在获取动态链接库函数地址那里的GetModuleHandle是获得哪个动态库的地址呢?[/quote] GetModuleHandle获取的是已加载的模块句柄,第一个参数是模块名。[/quote] 也就是说,是写我要注入的DLL的名字就可以是吗?
lougd 2015-03-11
  • 打赏
  • 举报
回复
引用 9 楼 lx624909677 的回复:
[quote=引用 8 楼 u011391040 的回复:]
那请问在获取动态链接库函数地址那里的GetModuleHandle是获得哪个动态库的地址呢?[/quote] GetModuleHandle获取的是已加载的模块句柄,第一个参数是模块名。
lx624909677 2015-03-11
  • 打赏
  • 举报
回复
引用 8 楼 u011391040 的回复:
那请问在获取动态链接库函数地址那里的GetModuleHandle是获得哪个动态库的地址呢?
lougd 2015-03-11
  • 打赏
  • 举报
回复
引用 7 楼 lx624909677 的回复:
[quote=引用 5 楼 u011391040 的回复:]
非常gan
引用 5 楼 u011391040 的回复:
[quote=引用 4 楼 lx624909677 的回复:] [quote=引用 2 楼 u011391040 的回复:] 目标进程如果有窗口的话可以通过在dll里通过SetWindowsHookEx创建消息钩子进行注入,目标进程没有窗口的话可以通过远程线程的方式进行注入。 dll注入代码:http://www.cnblogs.com/yincheng01/archive/2009/04/14/2213343.html
我是这样理解的,如果在DLL里通过SetWindowsHookEx来创建消息钩子,那么是需要有程序来调这个DLL的,这样的话,还需要再写个程序来让DLL完成创建消息钩子的动作吗?[/quote] 嗯。 对的。创建消息钩子之后如果目标进程有活动窗口就会自动加载上你的dll,你可以在dll的入口dllmain中判断是否是你想注入dll的进程,如果不是就返回FALSE,这样就能注入到目标进程了。[/quote] 再问下,“生成注入模块DLL的路径全名”,这句在WinMain里的注释是什么意思呢?那个链接里的程序,应该是调用已经写好的DLL时的程序吧? [/quote] 就是获取要加载dll的全路径,这里是通过GetCurrentDirectory获取当前exe所在文件夹的,这里不太严谨,因为CurrentDirectory是可变的,通过GetModuleFileName获取更好。
lx624909677 2015-03-11
  • 打赏
  • 举报
回复
引用 5 楼 u011391040 的回复:
非常gan
引用 5 楼 u011391040 的回复:
[quote=引用 4 楼 lx624909677 的回复:] [quote=引用 2 楼 u011391040 的回复:] 目标进程如果有窗口的话可以通过在dll里通过SetWindowsHookEx创建消息钩子进行注入,目标进程没有窗口的话可以通过远程线程的方式进行注入。 dll注入代码:http://www.cnblogs.com/yincheng01/archive/2009/04/14/2213343.html
我是这样理解的,如果在DLL里通过SetWindowsHookEx来创建消息钩子,那么是需要有程序来调这个DLL的,这样的话,还需要再写个程序来让DLL完成创建消息钩子的动作吗?[/quote] 嗯。 对的。创建消息钩子之后如果目标进程有活动窗口就会自动加载上你的dll,你可以在dll的入口dllmain中判断是否是你想注入dll的进程,如果不是就返回FALSE,这样就能注入到目标进程了。[/quote] 再问下,“生成注入模块DLL的路径全名”,这句在WinMain里的注释是什么意思呢?那个链接里的程序,应该是调用已经写好的DLL时的程序吧?
worldy 2015-03-11
  • 打赏
  • 举报
回复
做一个后台启动程序启动,开机的时候自己启动
oyljerry 2015-03-11
  • 打赏
  • 举报
回复
CreateRemoteThread注入目标进程,然后加载你的DLL
lougd 2015-03-10
  • 打赏
  • 举报
回复
引用 4 楼 lx624909677 的回复:
[quote=引用 2 楼 u011391040 的回复:] 目标进程如果有窗口的话可以通过在dll里通过SetWindowsHookEx创建消息钩子进行注入,目标进程没有窗口的话可以通过远程线程的方式进行注入。 dll注入代码:http://www.cnblogs.com/yincheng01/archive/2009/04/14/2213343.html
我是这样理解的,如果在DLL里通过SetWindowsHookEx来创建消息钩子,那么是需要有程序来调这个DLL的,这样的话,还需要再写个程序来让DLL完成创建消息钩子的动作吗?[/quote] 嗯。 对的。创建消息钩子之后如果目标进程有活动窗口就会自动加载上你的dll,你可以在dll的入口dllmain中判断是否是你想注入dll的进程,如果不是就返回FALSE,这样就能注入到目标进程了。
lx624909677 2015-03-10
  • 打赏
  • 举报
回复
引用 2 楼 u011391040 的回复:
目标进程如果有窗口的话可以通过在dll里通过SetWindowsHookEx创建消息钩子进行注入,目标进程没有窗口的话可以通过远程线程的方式进行注入。 dll注入代码:http://www.cnblogs.com/yincheng01/archive/2009/04/14/2213343.html
我是这样理解的,如果在DLL里通过SetWindowsHookEx来创建消息钩子,那么是需要有程序来调这个DLL的,这样的话,还需要再写个程序来让DLL完成创建消息钩子的动作吗?
lx624909677 2015-03-10
  • 打赏
  • 举报
回复
引用 1 楼 testcs_dn 的回复:
参考:http://blog.csdn.net/zhoujiaxq/article/details/18656951
谢谢提供的资料,但是这个文章对应的图片好像全没有?
lougd 2015-03-10
  • 打赏
  • 举报
回复
目标进程如果有窗口的话可以通过在dll里通过SetWindowsHookEx创建消息钩子进行注入,目标进程没有窗口的话可以通过远程线程的方式进行注入。 dll注入代码:http://www.cnblogs.com/yincheng01/archive/2009/04/14/2213343.html
微wx笑 2015-03-10
  • 打赏
  • 举报
回复
参考:http://blog.csdn.net/zhoujiaxq/article/details/18656951

15,465

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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