知识面拓展
文章平均质量分 58
(-: LYSM :-)
这个作者很懒,什么都没留下…
展开
-
[知识面拓展] 深度数据包检测(DPI)
介绍深度数据包检测(Deep packet inspection,缩写为 DPI)是一种特殊的网络技术,一般网络设备只会查看以太网头部、IP头部而不会分析TCP/UDP里面的内容这种被称为浅数据包检测;与之对应的DPI会检查TCP/UDP里面的内容,所以称为深度数据包检测。DPI一般是一个硬件或者软件,一般用“旁挂”的方式接入到网络。它会对网络中的每个数据包进行检查,识别出应用层协议,根据识别的协议采取一定的措施(比如记录HTTP访问行为)。对于TCP协议它可以识别完整的TCP交互过程(比如HTTP请求原创 2021-03-26 17:52:07 · 1010 阅读 · 0 评论 -
MSRPC(MicroSoft Remote Procedure Call,微软远程过程调用)
背景偶然发现普通管理员(非 Administrator),在右键管理员权限运行 A.exe 时,使用 ProcessMonistrator 观察这个进程被 explorer 创建,但是 hook explorer 的进程创建 api 却拦截不到 A.exe 的创建,之后尝试全局注入 dll ,发现创建 A.exe 的竟然是 svchost.exe !回头看 ProcessMonistrator 中 explorer 的创建进程时的调用栈,发现里面有很多 rpc 相关的函数,所以应该是 explorer原创 2021-03-04 11:28:03 · 9221 阅读 · 1 评论 -
Protected Process Light(PPL)微软系统进程保护机制
背景Protected Process Light(PPL) 可以将某些进程(一般是杀软和系统自身进程)提权到比超级管理员还要高,拥有一般的自我保护所达不到的效果:绕过 PPLhttps://github.com/Mattiwatti/PPLKiller原创 2021-03-04 10:50:11 · 2270 阅读 · 1 评论 -
IRP Hook
谈到irp拦截,基本上有三种方式在起点拦截在半路拦截在终点拦截下面我们会详细分析这几种方式哪些是有效的,哪种是无效的。 要理解这几种拦截,我们需要看看irp地传送过程。(注意并不是每种IRP都经过这些步骤,由于设备类型和IRP种类的不同某些步骤会改变或根本不存在。)一、IRP创建。由于IRP开始于某个实体调用I/O管理器函数创建它,可以使用下面任何一种函数创建IRP:IoBuildAsynchronousFsdRequest 创建异步IRP(不需要等待其完成)。该函数和下一个函数仅适转载 2021-03-02 11:26:22 · 909 阅读 · 0 评论 -
透视挂原理:透明窗口,画框,画线,绘制文字的实现(C++)
注意:需要开启透明壁纸效果先上效果图:新建一个空项目,根据自己的D3D库路径导入D3D库(这里是用DrectX9,手贱画了三根线,不用理):新建一个预编译.h头文件:#pragma once #include <d3d9.h>#include <d3dx9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#include <dwmapi.h>#pragma co转载 2020-11-09 16:43:48 · 1553 阅读 · 0 评论 -
断点的种类
CC 断点又叫 int3/F2 断点,软件执行 int3 指令时程序就会暂停,int3 指令的机器码就是CC。设置完 CC 断点后,原本位置的机器码会被调试器改成 0xCC(并对原来的数据备份),程序执行到 0xCC 时程序就会暂停(调试器所为)。所以也就是说如果在没有调试器的情况下如果我们程序里有 0xCC,程序也不会暂停。优点:可以设置无数个缺点:容易被检测到内存断点分为:(1)内存执行断点把机器码当成程序执行时被断下。(2)内存写入断点改写这部分机器码时被断下。(3)内存访问断点原创 2020-05-21 00:26:55 · 1570 阅读 · 0 评论 -
数据结构在游戏中的应用
链表链表主要的优点就是可以方便的进行插入,删除操作。雷电游戏中,飞机发射导弹时子弹是要频繁的出现和消失(飞离当前屏幕)的,其个数也是难以预料的,所以这种场景适合使用链表。// 子弹坐标struct CPOINT{ int x; // X轴坐标 int y; // Y轴坐标};// 子弹链表struct BULLET{ struct BULLE* next; // 指...转载 2020-05-05 00:12:33 · 1561 阅读 · 0 评论 -
简单绕过 DbgUiRemoteBreakin 反调试
调试器附加到游戏下断点后,会出现以下提示:(OllyDbg 和 x64dbg 的现象应该是游戏闪退)第一时间想到的就应该是游戏对有关下断的API进行了HOOK,DbgUiRemoteBreakin这个函数内部会调用DbgBreakPoint执行断点指令,以触发断点异常,强制把程序断了下来:我们用CE查看这个函数的头部,发现他跳转到了游戏检测模块的地址:来到这个后我们发现他调用了Exi...转载 2020-05-04 16:32:56 · 4504 阅读 · 1 评论 -
FPS 游戏飞天遁地原理
效果图:前提条件服务器为了游戏的流畅度和打击感而不做对坐标进行验证/修复。原理(1)修改引力达到飞天,(有的FPS游戏内包含不同引力的地图,例如地球引力,月球引力,把引力修改成0 自然飞天)。(2)锁定地面状态,人物是分下落状态和站立状态的,如果一直锁定站立的地面状态,一直按空格实现飞天。因为他根本不执行下落代码。(3)直接修改Z坐标,达到飞天效果。(4)通过发包实现飞天,检测的难...转载 2020-05-04 10:46:23 · 1491 阅读 · 0 评论 -
游戏寻路 call 分析
大部分网络游戏都是有寻路功能的,只有个别的暗黑系列游戏和FPS游戏没有寻路。而在这些有寻路的游戏中,还有一些是可以跨图寻路的,下面我们来分析一下《QQ仙侠传》的跨图寻路功能。其实跨图寻路和本图寻路的功能是相似的,唯一不同的是传入了一个目的地图的ID,所以我们想分析跨图寻路,也要从本地寻路入手进行分析,否则操作起来还是比较麻烦的。在我们进行寻路时,这个坐标会被改写,所以我们要在这个地址上下写入...转载 2020-05-04 10:34:22 · 1550 阅读 · 0 评论 -
什么是线程循环发包 ?
介绍有线程循环发包,就有非线循环程发包(也叫主线程发包)。在游戏中线程循环发包会导致调试器断下后查看调用栈拿不到有用数据(不同的操作触发的发包断点,调用栈都一样),而主线程发包则可以在调用栈中查看是谁调用了发包功能。相比线程发包,逆向主线程发包会更加容易。如何分辨是不是主线程发包首先肯定是跳转到3大发包函数,send , sendto ,WSASend 分别下段。 如果还没等你操作断点就马上...原创 2020-05-03 00:08:03 · 2278 阅读 · 1 评论 -
FPS 游戏自瞄原理
了解FPS游戏自瞄漏洞经常玩游戏的朋友,应该知道FPS游戏,例如:穿越火线,逆战等等,他们的特点就是以第一人称视角进行操作人物,屏幕中间会有一个准星,通过准星瞄准敌人进行攻击以达到击杀效果和游戏体验。由于FPS游戏的特殊游戏体验,所以使得很多不法分子利用逆向知识开发了很多自动瞄准的工具,破坏了游戏平衡。具体的原理如下:1.找到存放鼠标准星的坐标基地址2.找到人物数组基地址3.找到人物数组...转载 2020-05-02 17:30:16 · 20301 阅读 · 5 评论 -
游戏加速外挂的原理是什么 ?
加速类辅助会对游戏平衡造成极大的破坏,这类辅助会通过HOOK api的方式来达到修改游戏对时间判断的目的,一般情况下,在R3层,这类辅助会在· QueryPerformanceCounter· TimeGetTime· GettickCount这三个API上HOOK,修改他们的返回值。// 获取 cpu 性能计数BOOL QueryPerformanceCounter(LARGE_IN...原创 2020-05-02 10:31:41 · 5884 阅读 · 0 评论 -
游戏公司如何应对游戏黑产 ?
导语在手机游戏蓬勃发展之际,很多优秀的游戏在口碑和收入上都取得了耀眼的成绩。但是,另外一股暗流也在飞速发展,他们偷偷侵蚀着游戏的经济生态,并且给游戏造成了巨大的经济和口碑损失。他们利用各种手段获取游戏的资源,进而低价出售给玩家,我们将这些称为“游戏黑产”。据不完全统计,游戏黑产给游戏开发商每年带来数十亿元规模的损失。很多用户在玩游戏的时候,或多或少会与游戏黑产接触:有时候用户会主动找寻渠...转载 2020-05-01 22:40:45 · 942 阅读 · 0 评论 -
一条 QQ 消息为何导致程序卡死 ?
大量的 oo0.oo.OOO00.这种代码会消耗手机的 GPU,导致进程崩溃。隐藏的 Unicode 字符Unicode 控制字符就是特殊的 Unicode 字符,一般的应用程序的字符显示编码为 UTF-8,UTF-8 编码下无法显示这些Unicode 控制字符,像是隐藏了似的。看起来就一句话其实是字节很多的内容,通过大量的字节可以使处理字符的 API 发生延迟。...原创 2020-05-01 22:29:54 · 1629 阅读 · 1 评论