# windowsSecurityDesign
**Repository Path**: echo-hello/windows-security-design
## Basic Information
- **Project Name**: windowsSecurityDesign
- **Description**: Windows安全原理 IS405
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-07-19
- **Last Updated**: 2021-07-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# windows安全原理大作业
+ 目标:根据多种途径,查找开机启动项
+ 运行环境:win7 企业版 64bit / win10 专业版 64bit
+ 编程语言:c++
+ IDE&&UI:Qt
+ 软件发行版本:exeVersion压缩包,点击searchStart.exe即可运行。部分功能需要“以管理员身份运行”
+ 缺陷
> 1、win7查询sys文件时,无法查到数字签名内容。原因是:版本太老,我的程序只能查询2010年之后的证书
> 2、暂时无法根据schedule查询文件路径,但是我不想管了,就这样吧
> 3、查询数字证书的时间很长。如果你点了一个按钮没有反应,那是因为正在查询证书内容,并不是因为无穷递归、死循环。一般点击后,要3s左右才能查询完成
+ 运行结果(win7 win10 均可),如下图所示:
# 先看!!
+ 最有意义的的:learnIt文件夹
> 内含5个源程序,需要visual studio才能编译成功
> 这些源程序完成的功能:查询目标文件夹下的文件、查询目标位置的注册表项目、查询文件的数字证书及发布者、查询windows计划任务程序
+ 其他文件夹仅适用于Qt工程项目
+ 虽然我用的是Qt,但是我建议不要用Qt写UI。可以考虑微软家的MFC
# 若使用Qt
我的Qt版本是5.12.2,并且安装了全部组件(一共20GB),实际上不用全部安装。
如果使用Qt,编译器一定要选择**MSVC 64bit**(之前用过的mingW编译器是不能兼容win API的),否则程序无法正常访问win7 64bit的注册表
## 函数名称说明(我给自己看的)
+ viaRegistry1st HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
+ viaRegistry2nd HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
+ viaRegistry3rd HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
+ viaRegistry4th HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
+ viaRegistry5th HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
+ viaRegistry6th HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
+ viaRegistry7th HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
+ viaRegistry8th HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
+ viaRegistry9th HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
## 扩展功能
1、image hijack:
只需查询注册表项目:
HKEY_LOCAL_MACHINE
HKLM\SOFTWARE\Classes\htmlfile\shell\open\command
HKLM\SOFTWARE\Classes\htmlfile\shell\open\command\(default)
2、known dlls
只需查询注册表项目:
HKEY_LOCAL_MACHINE
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
## 计算器文件夹
%windir%\system32\calc.exe
# dll文件的路径
%SystemRoot%\SysWOW64