Windows注入与拦截(3)-窗口挂载

本文主要介绍如何通过 DLL 注入的方式来实现在指定窗口的控件上挂载一个自定义窗口。 何谓挂载?和舰载机挂载导弹类似,将我们自己的窗口挂到原有程序的窗口之上,可以实现对原有窗口功能的覆盖和扩展。

HOOK

Windows注入与拦截(2)-注入方式

一、注册表方式1.1 注入方法如题,通过注册表的方式来实现 DLL 注入,我们只需要针对特定的注册表项进行修改即可,有一点需要注意的是:如果被注入的进程是 64 位进程,则注入的 DLL 也需要是 64 位的。同理,注入到 32 位的进程也需要是 32 位的 DLL。 另外,根据被注入目标进程的位数(32 或 64)不同,注册表的位置也不同。

HOOK

Windows注入与拦截(1)-注入基础

一、注入技术的用途从Windows内存体系(1)--虚拟地址空间文章中我们可以知道: 在 Windows 系统中,每个进程都有自己私有的地址空间。当我们用指针来引用内存时,指针的值表示的是进程自己的地址空间的一个虚拟的内存地址。进程不能通过指针来引用其他进程地址空间的内存。 这种设计提升了操作系统的健壮性和安全性,比如一个进程存在缺陷,可能会引用和覆盖随机地址处的内存数据,那么我们就不用担心这个缺陷会影响到操作系统及其他进程。 独立的地址空间有利于系统的稳定性。但也带来了诸多不便,下面列举了需要跨越进程的边界来访问另一个进程地址空间的情况: 我们要从另一个进程创建的窗口来派生子类窗口,比如附着在 Windows 资源管理器上的一些小插件等。 我们需要假借其他进程之名做某些事情。 我们需要获取其他进程的更多详细信息,如加载了哪些 dll 等。 我们需要对其他进程的某些函数进行HOOK。 以及干一些羞羞的事情… 为了满足上述需求,我们可以使用 DLL 注入的技术,将我们自己开发的 DLL 注入到另一个进程的地址空间中,这样 DLL 中的代码就可以在该进程地址空间中执行。

HOOK