- 博客(309)
- 资源 (38)
- 收藏
- 关注
原创 神经网络视觉AI“后时代”自瞄实现与对抗
整套系统完全不在Windows上运行,也不需要截取游戏画面,也不需要读写游戏数据,甚至连一个多余的进程、文件都不需要;他的原理是彻底不接触物理游戏主机,而是直接从HDMI读取画面数据用FPGA开发板上的Python+OpenCV来识别出游戏人物位置,如果当前他了解神经网络方面的视觉AI,也许他会打开新世界的大门!
2023-05-25 22:25:07 4347 3
原创 C++反作弊对抗实战 (序言篇)
在ring3下面开发作弊器与反作弊,这两者之间的对抗,就好比老师在课堂上面讲课,而底下有一群七八岁的“小学生”在课桌底下互掐一样,虽然大家都觉得很“疼”,但彼此都很清楚的明白,当真正碰到那群初高中生或大学生的大神们,我这种“小学生”被攻破和吊打的话,只剩时间问题了......
2022-03-02 14:18:48 4489
原创 C++反作弊对抗实战 (目录篇)
在观看此专栏时,强烈推荐你需要有一定的C/C++基础,至少能看懂C++语法、结构体、类等基础概念,以及了解一定win32 api开发基础,否则不建议你强行介入以至于打击了学习热情
2022-03-02 14:18:24 1996 1
原创 Windows实现高精度定时器的三种方法
前段时间一个项目需要用到1/24s的高精度定时器,每秒的误差不能超过10ms,大约41.666666666毫秒的延时,普通Sleep肯定是没办法满足的了,可以用以下新的三种方法:/* // 1秒=1000毫秒(ms) // 1毫秒=1/1000秒(s) // 1秒=1000000 微秒(μs) // 1微秒=1/1000000秒(s) // 1秒=1000000000 ...
2018-08-25 14:42:57 24255 1
原创 Win32下VC++重置指定的USB端口/重新启动USB设备方法
是一个IO控制代码,用于控制USB集线器对特定端口执行重置操作,这有助于重新启动USB设备。在Windows操作系统中,这通常用于修复因为某些原因无法正常通信的USB设备。注意:这个代码需要管理员权限才能运行,并且可能会影响到正在使用的USB设备,因此请谨慎使用。在Windows中,你可以使用WinUSB(Windows USB Driver)库或者。API来发送这个IO控制代码。
2024-04-04 11:00:00 248
原创 WinSock Api connect超时函数实现方法
表示服务器同时处理的连接请求的最大数量。在这种情况下,服务器只能处理一个客户端连接请求。如果客户端尝试连接时,服务器正在处理一个连接请求,客户端将被阻塞(即死等)直到服务器接受连接或超时。为了解决这个问题,您可以使用多线程或异步编程模型,以便服务器能够同时处理多个连接请求。
2024-03-29 18:00:00 236
原创 用纯C语言实现空气压强和电压关系
用纯C语言实现空气压强和电压关系,已知P是真空度,U是电压,C是3.572(以PA为单位),P=10**(U-C)/1.286
2024-03-20 19:30:00 318
原创 绊了一脚,骨折了...
忙完到十点半,疼了两三小时仍没好转便脱下鞋袜,才发现淤青肿了,实在疼的不行先回去拍了片,医生诊断:轻微骨折,好在只是拿了一点药丸和喷雾......周一早上6点出门准备上班,将车停好准备坐楼巴到深圳,下车没几步被不知道什么东西绊了一下,也没摔倒,便没当回事;当听到这句时,我特么无了个大语,不得不服老了......
2024-01-30 14:38:59 146
原创 C/C++ makefile 支持多目录、多文件批量化模版
最近因工作需要,要尝试徒手撸一份makefile文件,这份模版支持批量化,也不针对某一个C/CPP文件指定规则.....
2023-12-16 09:00:00 119
原创 纯C语言实现解析单色位图文件获取颜色值
利用纯C语言解析单色位图文件获取颜色值,只需要你自己实现setPixel(int x, int y, int iColor)即可......
2023-10-26 22:44:11 387
原创 主流架构(gcc、msvc、x86、x64、arm)中double与float浮点数保留精度(末尾清零)
浮点会由于精度问题,导致无法直接做 != 比较,下面是一个主流架构下,优化处理浮点精度的函数, 保留精度(末尾清零)......
2023-10-23 20:32:43 965
原创 4. (C++)利用redis或MySQL实现射击游戏排名系统
假设我们要设计一款排名系统,那必然要涉及到两大类数据:武器数据和非武器的通用数据,它他通常有一个共用的属性:那就是主键唯一的,例如玩家的数字编号,通常在MySQL中是自增的无符号整数字段。
2023-10-14 11:19:11 310
原创 3. Windows下C++/MFC调用hiredis库操作redis示例
将之前下载和编译好的Redis目录拷贝到新建好的工程目录下面,再点击测试工程的右键/属性,点击C++/常规,附加包含目录添加以下路径,注意如果原先有多个路径,在末尾处添加分号后再粘贴:点击C++/常规,附加包含目录点击完成即可。
2023-10-13 11:00:00 1012 1
原创 2. redis常见数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
2023-10-12 10:00:00 183
原创 1. Windows平台下如何编译C++版本的Redis库hiredis
Windows平台下如何编译C++版本的Redis库hiredis,及编译错误解决办法
2023-10-10 22:18:16 1159
原创 三、C++反作弊对抗实战 (实战篇 —— 6.游戏CS1.6流程API:AddToFullPack 实现反透视)
通常,在FPS射击游戏中会射击到玩家的很多重要的数据,比如玩家移动的脚步声,这个数据由客户端发送至服务端,而服务端通常会转发至所有客户端并存储当前位置,最终来绘制玩家的模型(人物、武器等等)
2023-05-25 20:15:26 686
原创 纯C语言如何使用卡尔曼滤波器对测量数据进行滤波。在函数kalman_init中,初始化卡尔曼滤波器结构体,其中包含过程噪声协方差Q,测量噪声协方差R,状态估计值x,和误差协方差p
纯C语言如何使用卡尔曼滤波器对测量数据进行滤波。在函数kalman_init中,初始化卡尔曼滤波器结构体,其中包含过程噪声协方差Q,测量噪声协方差R,状态估计值x,和误差协方差p
2023-04-26 20:00:00 243
原创 Win7系统USB串口安装驱动出现“系统找不到指定的文件”或“inf中的服务安装段落无效”解决方案
Win7系统USB串口安装驱动出现“系统找不到指定的文件"解决方案
2023-04-21 20:30:00 2783
原创 #QT 字符编码集GB2312、GBK、BIG5、GB18030、Unicode、UTF-8、UTF-16
QT 字符编码集GB2312、GBK、BIG5、GB18030、Unicode、UTF-8、UTF-16
2023-02-21 10:00:00 1129
原创 用纯C语言实现3D空间中的点坐标转化为屏幕二维点坐标,包含主视图、侧视图、俯视图、正等轴投影
要实现3D空间中的点坐标转换为屏幕二维点坐标,需要进行透视变换和投影变换。以下是一些基本的思路和示例代码,可以用于实现主视图、侧视图、俯视图、正等轴投影。
2023-02-19 20:00:00 1313
转载 ChatGPT 在做什么… 以及它为何发挥作用?
ChatGPT 能够自动生成一些读起来甚至表面上像人类写的文字的东西,这很了不起,而且出乎意料。但它是如何做到的?为什么它能发挥作用?我在这里的目的是大致介绍一下 ChatGPT 内部的情况,然后探讨一下为什么它能很好地生成我们认为是有意义的文本。我应该在一开始就说,我将把重点放在正在发生的事情的大画面上,虽然我将提到一些工程细节,但我不会深入研究它们。(我所说的实质内容也同样适用于目前其他的 “大型语言模型” LLM 和 ChatGPT)。
2023-02-18 15:21:20 768
原创 QT启动时设定QDockWidget初始化窗口大小
这个功能是为了保留软件上一次的布局设置等信息,比如软件窗口上次的大小或坐标位置、停靠栏大小与位置、表格控件的行高列宽信息等等,从这些细节上优化易用性,在QT4与5中实现方法均不相同:
2022-12-21 20:15:00 1671
原创 三、C++反作弊对抗实战 (实战篇 —— 4.辅助工具开发:利用MFC、Freetype、ImGui在OpenGL绘制滚动文字、窗口、菜单、按钮等控件)
利用MFC、Freetype、ImGui在OpenGL绘制滚动文字、窗口、菜单、按钮等控件。这一章节将讲述如何在OpenGL/DirectX环境的游戏中使用第三方的ImGui绘制常见的窗口和控件,例如菜单、按钮、复选框、滑动条等等,这一章节需要有一定的C++基础和Win32相关开发经验
2022-10-13 21:30:27 1451 1
原创 三、C++反作弊对抗实战 (实战篇 —— 3.如何获取游戏中角色人物角色的名称坐标、血量、武器信息(非CE扫描))
在上一章节中《三、C++反作弊对抗实战 (实战篇 —— 2.认识CS1.6常见的数据结构与流程)》我们了解了一些常见的数据结构与一些接口函数,在这里将介绍如何获取游戏中角色人物角色的名称坐标、血量、武器信息(非CE扫描)的方法。...
2022-08-28 18:52:56 1982
原创 三、C++反作弊对抗实战 (实战篇 —— 2.认识CS1.6常见的数据结构与流程)
这份代码里用到轻量级的imgui界面库,非常适合这些WG的环境,支持OPENGL、DX等等,我们将在下一章节介绍如果在利用hlsdk + imgui编写游戏里的辅助工具界面.
2022-07-10 18:11:19 1176
原创 三、C++反作弊对抗实战 (实战篇 —— 1.如何搭建CS1.6与CSGO服务端环境)
在2013以前,Steam的游戏服务端需要使用HLDSUpdateTool更新下载,现在已经全部迁移至SteamCMD来下载与更新。这个工具的介绍参考下面的链接:SteamCMD - Valve Developer Community下载地址:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip在下载完毕后按照教程一步步操作即可!
2022-05-11 21:16:38 1157 1
原创 二、C++反作弊对抗实战 (进阶篇 —— 18.如何检测与对抗各种调试器)
如何检测与对抗各种调试器为了应对破解者调试我们的反作弊系统,所以我们需要检测各种调试器,以此来判断我们的游戏是否正在被调试。本文将非常详细的由浅入深的介绍ring3下面各种常见的检测方法(包括示例代码)
2022-04-16 21:06:00 1782
原创 二、C++反作弊对抗实战 (进阶篇 —— 17.如何内存校验保护代码段、对抗远程线程注入)
这一章节将重点介绍如何利用内存校验防止第三方模块或辅助软件恢复我们的HOOK或者篡改任意代码段,配套全程在2.17目录中,本专栏所有内容仅供学习参考,我们应当坚决抵制任何不非行为!
2022-03-05 00:26:38 1065
原创 二、C++反作弊对抗实战 (进阶篇 —— 16.如何实现游戏加速瞬移与对抗)
在早期的很多游戏中,相信很多人用过变速齿轮去实现游戏内的加速瞬移功能,它的原理就是针对QueryPerformanceCounter,GetTickCount,timeGetTime这几个API函数的HOOK。这里涉及到一个时钟的概念,当它们被HOOK API后,新的计算方法如下所示
2022-03-04 10:46:43 5855 1
原创 二、C++反作弊对抗实战 (进阶篇 —— 15.如何对抗OpenGL类型的透视作弊器)
在前面的章节中已经分析过OpenGL32类型作弊器的原理与代码片段,在这里将介绍如何其中一些对抗的方法......
2022-03-04 10:46:01 449
原创 二、C++反作弊对抗实战 (进阶篇 —— 14.利用内存加载+重定向绕过inline iat hook)
这一章节将详细的讲述《如何从一个DLL的资源中使用内存的方式加载另一个DLL》
2022-03-04 10:45:33 1319 1
原创 二、C++反作弊对抗实战 (进阶篇 —— 13.利用内联汇编实现多层深度检测非法call)
在上章节中介绍了利用ebp返回地址检测非法call函数调用、如何实现VS2010调试器的调用堆栈列表的方法,在这章节中,我们换另一种纯汇编实现的深度多层调用堆栈检测方法,示例代码如下:
2022-03-04 10:43:55 554
原创 二、C++反作弊对抗实战 (进阶篇 —— 12.如何实现VS2010调试器的调用堆栈列表)
如何实现VS2010调试器的调用堆栈列表显示效果:在ring3环境下,我们并不能信任任何dll模块,包括系统API函数,通常都是使用内存加载与重定向修复一下,以防止我们的API函数不“干净”,在下一章节将讲解不使用任何API函数遍历调用堆栈的方法!
2022-03-04 10:42:07 543
原创 二、C++反作弊对抗实战 (进阶篇 —— 11.利用ebp返回地址检测非法call函数调用)
这个示例代码已经介绍了如何利用ebp来检测上层的非法call调用,实际上在真正的反作弊场景上,我们肯定不会只检测一层的,会检测很深的层次,当然有个弊端就是检测层次越深,误报就极有可能越多,这里就特别需要配合游戏流程与架构......
2022-03-04 10:41:36 738
利用纯C语言解析单色位图文件获取颜色值的代码
2023-10-26
电子书 Introduction to Programming using Fortran 95/2003/2008
2023-10-10
电子书 MIPS Assembly Language Programming Using QtSpim By Ed Jorgen
2023-10-10
电子书《x86-64 Assembly Language Programming with Ubuntu 》
2023-10-10
c++ hiredis redis-3.0 vs2013 src
2023-10-09
EP952_DS_应用原理图全部资料包
2022-02-21
MFC42U-MFCS42U.zip
2021-01-30
VC6.0 NTP时间服务器同步代码
2016-10-10
[ring3反作弊篇] VC++基于EBP遍历调用栈及模块名
2015-03-23
VC手动解析PE文件调用DLL函数(资源+文件)
2013-03-25
调试技巧 —— 如何利用windbg + dump + map分析程序异常
2011-09-04
简单的单链表排序 —— 学生管理程序
2010-09-19
获取进程启动和结束时间的工具
2009-12-08
VC制作地图及公交查询系统
2009-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人