使用Detours库完成一个安全检测小工具

该项目利用Detours库动态拦截API调用,包括弹窗、文件操作、堆管理、注册表和网络通信等关键API,以进行安全监控。通过图形界面程序PFSafetyGuard展示和分析异常行为,如文件篡改、自我复制、堆重复释放和注册表开机启动项修改等。
摘要由CSDN通过智能技术生成

使用Detours库完成一个安全检测小工具

Detours库可以拦截任意的API调用,拦截代码是在动态运行时加载的。github链接:PFSafetyGuard🌻

1. Get start

1.1 项目介绍

项目主要有四个部分:

  • testCode:测试程序,主要包含一些我们需要抓取的API和异常操作
  • PFDLL:定义了需要HOOK的winAPI和替换的函数
  • syringe:注射器程序,主要将PFDLL程序中的替换函数替换测试程序testCode中的API
  • PFSafetyGuard:图形界面程序,接收PFDLL程序勾取的信息,然后做一些行为异常分析

1.2 run it

项目运行环境:

然后需要修改程序中硬编码的一些路径(懒得改了😆)

then run it

2. 简要展示

6xfftf.png

3. 详细说明

3.1 整体思路

系统整体设计思路

6xf59S.png

3.2 HOOK API

主要完成了以下18个winAPI的HOOK,主要涉及弹窗API、文件打开读写API、堆操作API、注册表操作API、网络通信API(socket)

DetourAttach(&(PVOID&)OldMessageBoxW, NewMessageBoxW);
DetourAttach(&(PVOID&)OldMessageBoxA, NewMessageBoxA);
DetourAttach(&(PVOID&)OldCreateFile, NewCreateFile);
DetourAttach(&(PVOID&)OldWriteFile, NewWriteFile);
DetourAttach(&(PVOID&)OldReadFile, NewReadFile);
DetourAttach(&(PVOID&)OldHeapCreate, NewHeapCreate);
DetourAttach(&(PVOID&)OldHeapDestory, NewHeapDestory);
DetourAttach(&(PVOID&)OldHeapFree, NewHeapFree);
DetourAttach(&(PVOID&)OldRegCreateKeyEx, NewRegCreateKeyEx);
DetourAttach(&(PVOID&)OldRegSetValueEx, NewRegSetValueEx);
DetourAttach(&(PVOID&)OldRegDeleteValue, NewRegDeleteValue);
DetourAttach(&(PVOID&)OldRegCloseKey, NewRegCloseKey);
DetourAttach(&(PVOID&)OldRegOpenKeyEx, NewRegOpenKeyEx);
DetourAttach(&(PVOID&)Oldsocket, Newsocket);
DetourAttach(&(PVOID&)Oldbind, Newbind);
DetourAttach(&(PVOID&)Oldsend, Newsend);
DetourAttach(&(PVOID&)Oldconnect, Newconnect);
DetourAttach(&(PVOID&)Oldrecv, Newrecv);

举个栗子,比如成功勾取一次socket通信过程:

6xfocQ.png

3.3 异常行为分析

主要完成了五种软件行为分析

  • 修改可执行文件(.exe .dll .ocx)
  • 自我复制
  • 对多个文件夹下的文件进行读写
  • 堆重复释放
  • 修改注册表开机启动项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值