自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 如何尽可能的申请高位内存

之前忘了是在那个位置看到这个问题的了 当时看需求应该是要伪装成loadlibrary加载起来的dll 当时不知道如何申请高位内存 现在看了windows的内存分配所以尝试了下 发现申请的内存地址确实可以控制在高位 特此记录 typedef NTSTATUS (NTAPI *pfnNtAllocateVirtualMemory)(HANDLE,PVOID*,ULONG_PTR,PSIZE_T,ULONG,ULONG); int main() { HMODULE ntDll = LoadLibra

2021-08-12 17:02:48 615 1

原创 对页表自映射的理解

在当前进程环境下页表被安排到一段连续的虚存空间内 此时页表1对应0~4kb 页表2对应4kb~8kb ..... 是一个顺序存放的4mb空间(虚存的页表占用大小) 由于需要页表自映射 所以我们可以知道在1024个页表当中有那么一张页表 刚好存放的数据和PDT数据相同(指向其他的1023个页表 也就是页目录表) 那么如何计算该页表(页目录表)在4mb空间内的那个地方呢? 前文得知由于页表的存放和内存有一定关系(页表1 ==>0~4096 页表2 ==>4096~8192 ....)

2021-08-09 16:50:55 619

原创 更快理解KMP算法

一般的字符串比较算法是暴力匹配 当被比较字符串和比较字符串失配时 比较字符串的当前比较字符转到0 被比较字符串也转到上个开始匹配的位置+1 这样比较效率通常是极低的 KMP算法便是更快速高效的字符串比较算法 KMP算法关键是一个模式串的最长公共前后缀 明白了这个含义KMP算法算是理解了大半 ** 最长公共前后缀 ** 倘若有这样一个字符串"ABCBCA" 该字符串的前缀集合: A,AB,ABC,ABCB,ABCBC 高字符串的后缀集合: A,CA,BCA,CBCA,BCBCA 看的出该字符串的最长前后缀为

2020-10-28 17:36:50 630

原创 FPS三角函数Z轴转换

世界坐标转屏幕x坐标还好 网上有大把教程 但是对y坐标要么是讲的笼统 要么是没讲 苦苦琢磨 算是搞懂了Y坐标的转换: 上图中∠a为玩家仰视角 (该图中假设该角为0°) OB为视线 ∠BOA(coe) 为玩家仰角 D点为敌人 Z为敌人与玩家的Z轴差距 OD为敌人与玩家的二维距离(可由玩家和敌人的三维坐标xy相减 计算求得) 上图假设∠a为0° 那么ce的距离通过tan便可求得 ce:oe=tan(∠a) oe可以通过fov角 和屏幕宽度计算求得 有tan(∠a) = ce\oe = ce = tan(.

2020-08-28 18:05:34 546

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除