记录一次绕过文件防多开的思路

本文记录了如何绕过一个具有防多开限制的程序。通过分析程序行为,发现其创建特殊文件并占用,尝试使用条件断点进行调试。在遇到断点频繁触发的问题后,通过构建内存中的数据并比较,成功过滤无关断点,最终通过修改内存中文件名的方式实现了绕过防多开功能。
摘要由CSDN通过智能技术生成


此文章仅记录当时思路,不具备通用性。且本人所学甚浅,必有诸多不足,如若有误或更好的思路,希望能不吝指教。

目标需求

目标程序有防多开限制,需求绕过防多开。

初步分析

通过行为监控、分析,发现目标程序有可疑文件(某特殊文件后缀)的创建和锁文件(LockFile)的操作。
进一步分析,发现与锁文件的操作无关。
关注并分析创建的可疑文件:发现该文件在程序启动时被创建并占用,程序退出时删除,且处于公共目录下(C:\user\pubulic\…)

所遇问题

尝试通过相关API断点下断分析,但此程序创建文件诸多,断点触发频繁,需进一步过滤,遂尝试条件断点。

分析特征

在触发文件API(CreateFile)断点时,寄存器【RCX】存储的是文件的完整路径,可以通过参数比较来过滤无用的断点触发。

初步解决方案

构建条件断点:bp kernelbase!CreateFileW "j(poi(@rcx)='【文件路径】') '命令1' ;‘命令2’"
尝试执行命令,无法触发,遂分析:
1.CreateFileW为宽字符版,自己输入的文件路径不知被解析为什么样式
2.poi()解析ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值