少年恃险若平地,独倚长剑凌清秋。这篇文章主要讲述DLL注入之Appinit_Dlls相关的知识,希望能为你提供帮助。
AppInit_DLLs is a mechanism that allows an arbitrary list of DLLs to be loaded into each user mode process on the system. Microsoft is modifying the AppInit DLLs facility in Windows 7 and Windows Server 2008 R2 to add a new code-signing requirement. This will help improve the system reliability and
performance, as well as improve visibility into the origin of software.
简单的说就是:AppInit_DLLs用来全局注入dll模块,凡是导入了user32.dll的程序都会 主动加载这个键值下的模块。
相比XP,Win7下多了两个值:
LoadAppInit_DLLs
为1开启,为0关闭,(Win7默认为0)
RequireSignedAppInit_DLLs 值为1表明模块需要签名才能加载,反之。
AppInit_DLLs键值介绍(Win7系统)
http://msdn.microsoft.com/en-us/library/dd744762(v=vs.85).aspx
64位系统:
AppInit_Dlls(64位程序读取)
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows [AppInit_DLLs]
AppInit_Dlls(32位程序读取)
HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Windows [AppInit_DLLs]
32位系统:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows [AppInit_DLLs]
如何调试:
下USER32!LoadAppInitDlls断点,后面NtOpenKey 和NtQueryValueKey 读取AppInit_Dlls键值,得到模块名,接着LoadLibrary该模块。
【DLL注入之Appinit_Dlls】jpg改rar
文章图片
推荐阅读
- ubuntu上Android开发环境及依赖项
- qt 在windows 以及android 运用资源时的路径使用用限制
- 安卓handle运行机制,泛型,事件分发机制
- 安卓项目里用到的全面屏方法
- Android Studio 代码混淆(你真的会混淆吗)
- eclipse修改android项目的apk包名类名
- 带你彻底明白 Android Studio 打包混淆
- 梦想Android版CAD控件2018.7.26更新
- call()apply()bind()