windows操作系统允许将用户提供的dll加载到所有的进程的内存空间中。该功能可以用来做后门持久化。有点类似于linux的ld_preload环境变量。在进程启动的时候,操作系统会将用户提供的dll加载。在设置该功能时,需要administrator权限。设置方法为修改注册表中两个选项


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows

微软默认阻止用户通过appinit功能去加载未知的dll。不过,可以通过修改注册表键值LoadAppInit_DLLs为1去关闭该功能。将待加载的dll保存在Program Files文件夹,并且将AppInit_DLLs键值修改为待加载dll的路径,即可让所有windows进程都加载该dll。

这是因为在“ AppInit_DLLs”注册表项中指定的DLL是由user32.dll加载的,几乎所有应用程序都使用该user32.dll。

Enable LoadAppInit_DLLs - 32bit and 64bit

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs - 0x1
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs - 0x1 Registry Key for Arbitrary DLL via AppInit - 32bit and 64bit HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WindowsAppInit_DLLs
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

当然,每个进程都加载dll,并反弹shell的话,会很杂乱。所以,有人开发了一个dll工具https://www.didierstevens.com/files/software/LoadDLLViaAppInit_V0_0_0_1.zip,通过

LoadDLLViaAppInit.bl.txt文件来决定哪些应用程序去加载用户指定的appinit dll。

windows 通过AppInit加载任意dll的更多相关文章

  1. Windows Phone 8加载外部动态链接库DLL(非安装包内的)

    Windows Phone 8加载外部动态链接库DLL(非安装包内的) 在<动态加载与插件化>中大概介绍了下,wp8加载非安装包的下动态链接库,这次详细梳理下. 加载外部DLL主要的原理: ...

  2. 加载php_curl.dll和php_openssl.dll出错原因及解决办法

    今天在XP下安装PHP开发环境时,需要加载php_curl.dll这个动态库,自己想当然的在php.ini里把extension=php_curl.dll打开以为就可以了.可以在apache的logs ...

  3. vs2015启动崩溃,wpfgfx_v0400.dll加载D3DCompiler_47.dll失败

    有一段时间没有用vs2015,今天一启动就crash,尝试了以下办法: 1. 卸载掉这段时间安装的一些软件和vs插件 2. 修复安装 3. 卸载.重新安装vs2015 sp2版本 4. devenv. ...

  4. 疑问:VS在调试的过程中,总是会提示正在加载picface.dll的符号,然后卡死在那

    环境: 硬件环境: PC 软件环境: Windows7 VS2012 MFC程序调试 现象: 调试的过程中,提示“正在从以下目录加载picface.dll的符号:C:\windows\dll”,然后就 ...

  5. win8和win7下解决php5.3和5.4、5.5等不能加载php_curl.dll的终极解决办法 收藏

    win8和win7下解决php5.3和5.4.5.5等不能加载php_curl.dll的终极解决办法 收藏2015年01月11日 最近分别在WIN7和Windows8 上分别安装php 高版本!都遇到 ...

  6. win7/8系统中php5.3和5.4、5.5不能加载php_curl.dll解决办法

    win7/8系统中php5.3和5.4.5.5不能加载php_curl.dll解决办法   作者:用户 来源:互联网 时间:2016-06-23 18:54:33 php变量注释系统模块 摘要: 本文 ...

  7. Windows 运行时加载动态库

    下面是一个运行时加载nvcuda.dll,并检测当前驱动版本最大支持的CUDA版本的例子. #include "cuda.h" #include <stdio.h> # ...

  8. R3抹掉加载的DLL

    R3抹掉加载的DLL 原理类似于获取Kernel32.dll加载地址,知道这个东西也是在看获取Kernel32.dll地址的时候在网上搜索学习资料,无意中看到的这个东西.这个挺有用,结合着HiJack ...

  9. 应用SqlGeometry无法加载sqlserverspatial.dll

    最近需要完成一个API,通过用户上传的经纬度判断用户的所在县市省,数据量相对不是很大所以把相关数据全部扔到了内存里知行,主要用到了SqlGeometry, 代码写完后运行本地没问题,扔到服务器上开始报 ...

随机推荐

  1. $CH0601\ Genius\ ACM$ 倍增优化DP

    ACWing Description 给定一个长度为N的数列A以及一个整数T.我们要把A分成若干段,使得每一段的'校验值'都不超过N.求最少需要分成几段. Sol 首先是校验值的求法: 要使得'每对数 ...

  2. Word List 1 part 1

    inter- 在....之间 intermediate adj. 中间的 pro- 向前,在前;很多;赞同;亲... proportion n. 比例;部分 prim- 第一,主要的 prime ad ...

  3. golang编译之vendor机制

    Go 1.5引入了vendor 机制,但是需要手动设置环境变量 GO15VENDOREXPERIMENT= 1,Go编译器才能启用.从Go1.6起,,默认开启 vendor 目录查找,vendor 机 ...

  4. nginx介绍及相关实验

    一.nginx介绍 1.nginx简介 Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP 服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 R ...

  5. MyBatis项目实战 快速将MySQL转换成Oracle语句

    一.前言 因项目需求,小编要将项目从mysql迁移到oracle中 ~ 之前已经完成 数据迁移 (https://zhengqing.blog.csdn.net/article/details/103 ...

  6. C# DataTable数据类型判断

    当我们从数据中获取到数据,一般会使用 DataTable 接收,然后会遍历每行数据.由于从数据库中读取的数据可能为空,比如我们的编译代码如下: foreach (DataRow datarow in ...

  7. 2018 东北地区大学生程序设计竞赛(ABEHIK)

    HDU6500:Problem A. Game with string 题意: 给你一个字符串s以及它的m个子串的首尾位置,现在Alice和 Bob两个人轮流在任一子串的前面或者后面加1个字符,要求加 ...

  8. Python自带HTTP文件传输服务

    一行命令搭建一个基于python的http文件传输服务 由于今天朋友想要一个文件,而我恰好有,因为这个文件比较大,网速不是很给力,所以想到了python自己有这么一个功能,这样不仅不需要下载其他软件, ...

  9. js css html加载顺序

    1.js放在head中会立即执行,阻塞后续的资源下载与执行.因为js有可能会修改dom,如果不阻塞后续的资源下载,dom的操作顺序不可控.正常的网页加载流程是这样的.浏览器一边下载HTML网页,一边开 ...

  10. 盘一盘Tidyverse| 筛行选列之select,玩转列操作

    原文链接:https://mp.weixin.qq.com/s/ldO0rm3UM_rqlFnU3euYaA 2020年,开封 <R 数据科学>R for data science,系统学 ...