Winlogon远线程注入技术:屏蔽Ctrl+Alt+Delete

4星 · 超过85%的资源 需积分: 13 23 下载量 72 浏览量 更新于2024-08-01 收藏 99KB DOC 举报
"这篇文档详细介绍了如何实现远线程注入技术来屏蔽Ctrl+Alt+Delete键组合,同时提到了相关代码来源于DSKV1 Final,并进行了多次更新以优化功能和修复问题。作者创建了一个名为CRemoteInject的类,该类包含了注入和卸载DLL的函数,以及相关辅助功能。" 在Windows操作系统中,Ctrl+Alt+Delete键组合通常用于唤起任务管理器或安全选项,因此,屏蔽这个组合键通常被视为非正常操作。文中提到的技术涉及到了远程注入,这是一种将代码注入到另一个进程中的技术,通常用于监控、调试或者恶意软件活动中。在这个特定的情况下,目标进程是Winlogon,它是Windows系统中负责用户登录和会话管理的关键组件。 DSKV1 FinalUpdate的部分列出了几个关键改进点: 1. 处理主程序重复运行的情况,防止多个实例同时运行导致的问题。 2. 增加了对Ctrl+Alt+Delete键组合的屏蔽功能,使得用户无法通过这个组合键调出任务管理器或其他安全选项。 3. 修复了Ctrl+Shift的一个BUG,可能指的是之前版本中这个键组合没有被正确屏蔽的问题。 4. 添加了对Ctrl+Shift+Esc键组合的屏蔽,这是另一种打开任务管理器的方法。 文章中还提到,使用WH_KEYBOARD类型的钩子(HOOK)可以自动将DLL注入到Winlogon进程中,但作者选择了远线程注入的方式,可能是为了更灵活地控制注入过程。此外,DLL的实现方式从MFC的Dynamic-DLL改为了Windows-Standard-DLL,以提高兼容性,但这也导致了文件大小的增加。MFC(Microsoft Foundation Classes)是一种C++库,常用于开发Windows应用程序,而Dynamic-DLL和Standard-DLL分别是指动态链接库的不同实现方式。 CRemoteInject类是本文档的核心部分,它包含了以下成员函数: - 构造函数和析构函数:初始化和清理类的资源。 - Inject():负责将DLL注入到目标进程中。 - UnInject():卸载已经注入的DLL。 - IsDllExist():检查指定的DLL文件是否存在。 - IsDllFileExit():可能是检查DLL是否已加载到目标进程中。 - GetDllPath():获取DLL的路径。 - EnableDebugPrivilege():启用调试权限,这是进行远程注入的必要步骤。 - GetPIDFromName():根据进程名称获取其进程ID。 - GetPrevDllBaseAddr():可能用于获取之前DLL的基地址,这在某些情况下可能用于判断DLL是否已经被注入。 通过这些函数,开发者可以构建一个能够注入并控制其他进程的工具,尽管这样的行为在大多数情况下都需要非常谨慎,因为可能会违反系统的安全策略和法律法规。

C#程序 实现如下功能: 1. 读取注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\下shell的值保存为字符串strShell,strShell的字符串格式举例为"C:\2.4.7460\autostart.exe doctorold.exe"; 2. 将strShell识别字符串中路径(例如C:\2.4.7460\)并保存为strPath; 3. 读取当前目录下的DoctorOld.exe文件版本只保留前三段版本号(例:2.4.7460.12546保留2.4.7460)保存为字符串strNewVer; 4. 读取strPath目录下的DoctorOld.exe文件版本只保留前三段版本号(例:2.4.7460.12546保留2.4.7460)保存为字符串strOldVer; 5. 新建"C:\"+strNewVer文件夹,其中包括判断是否存在,进行提示“版本相同是否进行强制更新”,如果强制更新则将旧文件夹进行重命名,重命名规则为在文件夹后加当前时间,将新文件夹路径给strPath赋值; 6. 复制当前目录内所有文件和文件夹至"C:\"+strNewVer; 7. 复制strPath目录下的1.txt、2.txt、3.txt文件至"C:\"+strNewVer直接覆盖; 8. 查找strShell中是否含有“Doctorold.exe”、"Nurse.exe"、"USVoltDlg.exe"、"Water.exe",分别存布尔型变量; 9. 如果含有“Doctorold.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe doctorold.exe"; 10. 如果含有“Nurse.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe Nurse.exe"; 11. 如果含有“Water.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe Water.exe"; 12. 如果含有“USVoltDlg.exe”则修改注册表HKEY_LOCAL_MACHINE\System\Setup\下shell的值为"C:\"+strNewVer+"autostart.exe USVoltDlg.exe"; 13. 打开“C:\”路径下名为“UpdaterLog.txt”文本文档,在文件最后行添加:当前日期+时间+“:”+strOldVer+"-->"+strNewVer;

2023-05-25 上传