华中科技大学网安学院2020级软件安全课设
-softwaresecurity\ 根目录
|-question\ 任务书
| |-软件安全 课程设计 实验指导书2022(整合)v1.9_plain.docx
| |-软件安全 课程设计 实验指导书2022(整合)v1.9_plain.pdf
|-README.md README
|-script\ 构建脚本
| |-build.py 将编译好的defender、dllmain、syringe、MFCtest移动到test目录下
|-src\ 源代码
| |-defender\ 可视化界面
| | |-app.go 主app
| | |-build\
| | |-frontend\ 前端
| | |-go.mod
| | |-go.sum
| | |-main.go
| | |-processInfo\ 进程相关函数
| | |-README.md
| | |-wails.json
| |-DllMain\ DllMain
| | |-.vs\
| | |-base64.cpp base64 C++实现
| | |-base64.h
| | |-Debug\
| | |-dllmain.cpp dllmain
| | |-lock.h 锁实现
| | |-msg.h Msg类实现
| | |-pch.cpp
| | |-pch.h
| | |-utils.h 工具头文件
| | |-winudp.h windows udp实现
| |-MFCtest\ MFCtest
| | |-MFCtest.cpp
| | |-MFCtestDlg.cpp Dlg实现
| | |-MFCtestDlg.h
| | |-windup.h windows下udp实现
| |-syringe\ 注射器
| | |-syringe.cpp
|-test\
| |-defender.exe defender
| |-DllMain.dll
| |-ez.exe
| |-MFCApplication2.exe
| |-MFCApplication2_64.exe
| |-MFCtest.exe
| |-syringe.exe
DllMain: C++ C
defender: go Vue 基于wails的桌面应用 element-plus组件
syringe: C++ C
DllMain 使用detours开源库 hook 对应的winAPI,将参数信息截取、加密后转为字符串通过udp发送至4000端口。
syringe 将dll注入目标程序
defender 图形化界面共有三个线程,一个线程负责前端数据展示,一个线程负责调用后端函数,另一个线程打开4000端口接收数据并存入数组中。
测试样例说明
-
Messagexbox
- MessageboxA 弹窗Hello World!
- MessageboxW 弹窗Hello World!
-
文件操作
- 打开文件并写入 打开test.txt,写入Hello World!
- 打开文件并读取 打开test.txt, 读取Hello World!
- 操作多个文件夹 分别打开test1/test.txt, test2/test.txt, test3/test.txt, 写入Hello World!
- 自我复制 打开自己,读取内容,写入test/MFCtest.exe
- 读取文件并发送 打开test.txt,udp发送至127.0.0.1:7777
-
堆操作
- 正常堆操作 heapcreate heapalloc heapfree heapdestroy
- 异常堆操作 heapcreate heapalloc heapfree heapfree heapdestroy
-
注册表操作
- 注册表打开并设置 打开HKEY_CURRENT_USER\SOFTWARE\test,设置键test值为hello world,关闭键
- 注册表打开并读取 打开HKEY_CURRENT_USER\SOFTWARE\test,读取键test值,关闭键
- 注册表打开并删除 打开HKEY_CURRENT_USER\SOFTWARE\test,删除键test值 删除键test值
- 注册表自启动 获取程序路径与名称,打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,设置键程序名称值为程序路径
- 删除自启动 获取程序路径与名称,打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,删除键程序名称, 删除值程序路径
-
网络操作
- http请求 创建套接字,connect cse.hust.edu.cn,将请求内容send到cse.hust.edu.cn的80端口,循环多次接受响应内容
- udp请求 创建套接字,将Hello World sendto 127.0.0.1:7777