
防多开
文章平均质量分 69
(-: LYSM :-)
这个作者很懒,什么都没留下…
展开
-
全面分析游戏限制多开原理
转载一篇他人的优秀文章,另外加入了一些自己的见解 _(´ཀ`」∠)_加班1,进程现象:游戏通过探测游戏客户端进程是否已经存在来防止重复打开。破解方法:(1)隐藏进程。可以用工具 HideToolz,也可以自己写驱动简单的做个摘链隐藏。(2)hook 游戏遍历进程的 api。CreateToolhelp32Snapshot()、Process32First()和Process32Next()EnumProcesses()、EnumProcessModules()、GetModuleBase原创 2021-01-30 12:04:52 · 3907 阅读 · 1 评论 -
[防多开] data_seg 共享内存
背景#pragma data_seg() 一般用在 dll 中,用来在不同进程间共享一段数据(两个进程对应不同的 exe ),如果是相同文件的多个进程间共享,就不需要 dll。这里我们只做防多开功能,所以不需要 dll。另外,这种防多开技术必须在程序关闭时将数据恢复,否则会出现逻辑错误。(恢复功能在代码中没有体现)。代码#include <iostream>#include <Windows.h>using namespace std;#pragma data_se原创 2020-09-30 14:20:37 · 520 阅读 · 0 评论 -
[防多开] 内存映射文件
原理参考我的这篇文章内存文件映射是比较正规的进程间互相通信的方式。其实从原理上讲,只要能实现进程间通信,就能实现防多开。验证方法原创 2020-09-27 20:39:12 · 340 阅读 · 0 评论 -
[防多开] 同步对象
原理首先要了解什么是内核同步对象。在多线程的情况下,如果存在多个线程要使用同一个资源的情况时,则需要在线程之间进行协调(同步)才能使程序完成预定的工作,而不会出现灾难性的冲突。总结,同步对象的目的是解决多线程同时访问资源问题,功能是在一段时间内独占资源。下面是同步对象的种类:HANDLE CreateEventA( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL原创 2020-09-27 11:12:13 · 314 阅读 · 0 评论 -
[防多开] 自身进程标识
原理在进程启动时,或进程启动前的 TLS 函数中,遍历所有进程(一般使用 CreateToolhelp32Snapshot),记录下同名进程(PROCESSENTRY32.szExeFile)的个数,遍历结束后如果同名进程数大于预期,则退出程序。类似的标识还有:窗口标题和窗口类名(使用 FindWindow 查找 )窗口的其他属性(使用 GetWindowLong 获取)其他(具体参考 WinUser.h)验证思路隐藏进程(或修改进程名)关闭窗口(不关闭进程)...原创 2020-09-27 10:46:48 · 194 阅读 · 0 评论 -
[防多开] CreateFile
原理程序开始运行时先用(可能是 TLS 函数中)CreateFile 在某个位置创建一个文件 "lockfile" ,并锁定这个文件防止它被恶意删除。当第二个实例启动时因为 "lockfile" 已经存在所以失败,从而判断出有多开行为,程序退出。当第一个实例退出时,解除锁定 "lockfile" 并删除 "lockfile"。代码...原创 2020-09-26 12:38:33 · 249 阅读 · 0 评论