- 博客(340)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 【UE基础】01.环境与引擎心智模型
本文介绍了从C++开发者转向UE4开发的学习路径,重点讲解如何运行官方示例项目ActionRPG。文章分为三个阶段:编译、编辑器操作和概念理解。 主要内容包括: UE4项目结构特点,特别是蓝图与C++的分工 生成VS工程文件的方法和注意事项 编译编辑器目标的具体步骤 编辑器启动和PIE模式的使用 两个Target(编辑器和游戏)的区别 模块系统设计,特别是加载屏模块的特殊处理 UE特有的C++特性:UObject、反射和垃圾回收机制 文章强调UE开发与常规C++开发的核心差异,建议开发者先通过实际操作建立感
2026-06-15 21:53:27
358
原创 【frida】 00_简单介绍和使用
文章目录导读安装实战一、枚举进程模块二、frida-trace直接hook函数recv*三、hook Qt应用程序打印日志总结参考资料导读frida是Greasemonkey公司(该公司的网红产品网络神器油猴子,可以通过“油猴脚本”,自由定制网页,实现你想要的各种功能)开发的一款跨平台逆向全家桶动态代码检测工具。它允许您将JavaScript或您自己的库的片段注入Windows,macOS,GNU / Linux,iOS,Android和QNX上的原生应用程序。 Frida还为您提供了一些基于Fri
2022-03-02 11:30:01
4812
原创 【高效】开发过程中常见配置(pip、npm、maven、git等各种国内源)
piplinux位置:~/.pip/pip.confwindows位置: %HOMEPATH%\pip\pip.ini[global]trusted-host = mirrors.aliyun.comindex-url = https://mirrors.aliyun.com/pypi/simplenpmwindows位置: %HOMEPATH%\.npmrcnpm config set registry https://registry.npm.taobao.org
2022-01-10 08:00:00
7879
原创 Windows 进程创建审计(事件 ID 4688):技术解析与实战
本文详细介绍了Windows系统中实时查看进程与历史审计进程创建的两种方法。实时查看可通过任务管理器、资源监视器或命令行工具(如Get-Process)实现,而历史审计需提前开启"审核进程创建"策略(Event ID 4688)。文章重点解析了4688日志的关键字段(如镜像路径、父进程关系、完整性级别等),并提供了安全研判Checklist,帮助区分正常进程与可疑行为。最后强调审计日志不具备追溯性,必须提前配置,并对不确定来源的进程建议结合数字签名和信誉检查验证。
2026-08-17 23:04:18
370
原创 【UE源码精读-ActionRPG】蓝图角色实践与UI事件驱动
本文分析了ActionRPG项目中的关键架构设计: C++与蓝图分工明确:C++负责核心逻辑计算,蓝图处理表现效果。通过BlueprintCallable和BlueprintImplementableEvent建立清晰边界。 蓝图角色实现了攻击输入处理、武器切换等游戏逻辑,与C++层的能力系统通过槽位机制解耦。 UI采用事件驱动设计,通过委托机制实现精准刷新,避免每帧轮询。 蓝图函数库作为跨模块桥梁,提供了通用工具方法,特别是将GAS功能开放给非Ability场景使用。 这种架构体现了数据与表现分离、事件驱
2026-07-11 09:00:00
348
原创 【UE源码精读-ActionRPG】GAS整合:物品授予能力与增量同步
本文剖析了《ActionRPG》中基于装备授予游戏能力的实现机制。核心在于通过武器槽位与游戏能力系统(GAS)的动态联动:装备武器时授予能力(GiveAbility),攻击时激活能力(TryActivateAbility)。系统通过三张表(背包数据、运行时状态、默认配置)和委托链驱动,采用增量同步策略:先构建期望能力列表,再通过比较SourceObject差异移除冗余能力,最后授予新增能力。这种设计实现了装备与能力的动态绑定,确保能力切换的高效与准确。(149字)
2026-07-10 14:01:45
356
原创 【UE源码精读-ActionRPG】GAS进阶:目标选择与AbilityTask
本文摘要探讨了《ActionRPG》中技能目标选择与命中结算的实现机制。通过策略模式URPGTargetType解决目标选择问题,提供UseOwner(自我目标)和UseEventData(从事件数据取目标)两种策略,支持灵活扩展。命中时机由动画驱动的AnimNotifyState触发碰撞检测,并通过GameplayEvent传递命中数据。最后,自定义RPGAbilityTask_PlayMontageAndWaitForEvent整合动画播放与事件监听,实现动画帧精确的异步技能结算。该设计通过解耦目标策略
2026-07-10 14:01:20
470
原创 【UE源码精读-ActionRPG】GAS基础:能力与效果容器
GAS效果传递机制解析:EffectContainerMap与运行时处理 摘要: 本文剖析了GameplayAbilitySystem(GAS)中效果传递的核心机制,重点解读了ActionRPG项目中EffectContainerMap的实现原理。该系统通过分离效果配置与运行时执行,实现了攻击动作到目标效果的高效流转。关键设计包括: 静态-动态分离:使用FRPGGameplayEffectContainer存储蓝图配置(目标类型+效果类),运行时转换为FRPGGameplayEffectContainerS
2026-07-07 20:29:58
345
原创 【UE源码精读-ActionRPG】伤害管线:从捕获到扣血
本文详细解析了ActionRPG项目中伤害计算链路的运作机制,重点剖析了从GameplayEffect执行到最终血量扣除的完整流程。系统采用六层架构设计: 能力激活层(GA_Melee_Base蓝图)发起攻击 GameplayEffect应用层通过URPGDamageExecution执行计算 伤害公式计算层实现属性捕获和伤害运算(攻击力/防御力动态比值计算) 属性后处理层(PostGameplayEffectExecute)处理Damage到Health的转换 逻辑中间层(HandleDamage)组装事
2026-07-07 20:28:27
433
原创 【UE源码精读-ActionRPG】属性系统:AttributeSet 精读
本文深入解析了 GAS 中的 AttributeSet 系统,以 ActionRPG 的 URPGAttributeSet 为例。属性集作为集中管理角色数值的容器,通过 FGameplayAttributeData 类型区分基础值(BaseValue)和当前值(CurrentValue),前者存储永久性改变,后者叠加临时修饰效果。文章详解了属性声明规范、ATTRIBUTE_ACCESSORS 宏的代码生成机制,以及最大生命值变化时的等比缩放逻辑,同时区分了属性定义与伤害处理的边界,为后续理解伤害管线奠定基础
2026-06-22 10:29:10
766
原创 【VS】VS 2022 内置终端默认 x86 环境导致 CMake x64 项目构建失败的排查与修复
摘要:在使用Visual Studio 2022内置终端编译CMake+vcpkg项目时,出现大量链接错误(LNK2001和LNK4272),原因是终端默认以x86架构初始化,导致链接器错误使用x86库文件。根本问题是VS 2022内置终端的Developer PowerShell默认配置为x86架构,且vcvarsall.bat检测到已有环境后拒绝重新初始化。解决方案包括:1)修改VS终端默认架构为x64(推荐);2)从外部启动构建环境;3)在构建脚本中手动覆盖x64路径。第一种方案通过修改VS配置可一劳
2026-06-22 10:02:44
555
原创 【UE源码精读-ActionRPG】角色基类与武器系统
本文介绍了ARPG角色基类ARPGCharacterBase的核心架构与生命周期管理。作为游戏枢纽,它整合了GAS能力系统、背包系统和武器系统: 角色定位:继承ACharacter并实现两个关键接口(能力系统接口和阵营接口),作为背包与GAS的交汇点。 核心组件: 构造函数创建ASC(能力组件)和属性集 通过友元关系实现属性到蓝图的回调链 管理装备槽位与能力的映射关系 生命周期: PossessedBy初始化背包接口和GAS系统 UnPossessed负责清理委托绑定 采用守卫标志控制能力初始化流程 设计特
2026-06-20 12:00:00
321
原创 【UE源码精读-ActionRPG】存档系统03:版本兼容与GVAS解析
本文介绍了游戏存档系统中的版本兼容性和存档文件查看方法。在版本兼容方面,通过枚举值LatestVersion = VersionPlusOne - 1自动维护最新版本号,并在Serialize方法中实现"读时升级"策略,确保旧存档在新版本中仍可读取。对于存档文件查看,.sav文件采用标准的GVAS格式,可通过游戏内控制台命令DumpSaveGame或十六进制工具查看其内容。GVAS文件包含元数据和属性数据,头部信息记录了引擎版本等关键信息,确保跨版本兼容性。
2026-06-20 09:00:00
653
原创 【UE源码精读-ActionRPG】存档系统02:异步写盘与读档链路
摘要 本文分析了游戏存档系统的异步读写机制。写盘采用异步操作避免主线程卡顿,通过bSavingEnabled、bCurrentlySaving和bPendingSaveRequested三态状态机实现"节流",确保连续修改背包时最多只触发2次磁盘写入。读档过程将存档数据转换为运行时数据,包括清空缓存、预建空槽、货号转指针等步骤,并通过事件机制处理存档重载。文章还解答了异步写盘的必要性、状态机工作原理以及读档时空槽处理等关键问题。
2026-06-19 12:00:00
350
原创 【UE源码精读-ActionRPG】背包系统01:数据结构与增删
本文解析了UE4 ActionRPG项目中背包系统的核心设计,主要围绕两个关键数据结构展开:InventoryData记录物品数量与等级,SlottedItems管理装备槽位。背包数据挂在PlayerController而非Character上,确保角色死亡/重生时物品不丢失。重点分析了AddInventoryItem的实现逻辑,包括物品堆叠更新、事件广播等细节,并解答了为何采用双Map结构——通过分离"拥有"与"装备"状态,使查询和一致性维护更清晰。全文以150字浓缩了背包系统的架构思路与关键实现。
2026-06-19 09:00:00
460
原创 【UE源码精读-ActionRPG】背包系统02:委托广播与接口解耦
本文拆解了《背包系统》中的通知机制,主要围绕三个核心问题: 双委托设计:每个背包事件都声明了Dynamic(蓝图可绑)和Native(C++专用)两套委托,前者通过反射支持UI响应,后者保证核心系统优先处理。 广播顺序:通知时严格遵循"Native→Dynamic→BlueprintImplementableEvent"的顺序,确保C++逻辑(如角色技能更新)先于UI刷新执行,避免中间状态。 接口隔离:IRPGInventoryInterface通过U类+I类分离,并禁用蓝图实现,强制要求角色必须通过C++
2026-06-18 20:15:47
361
原创 【UE源码精读-ActionRPG】存档系统01:运行时态与存档态
文章摘要 本文探讨了游戏存档系统的核心机制,重点分析了运行时数据与存档数据的形态差异及转换方式。关键点包括: 数据形态差异: 运行时使用对象指针(URPGItem*)标识物品 存档使用稳定字符串标识(FPrimaryAssetId)替代指针 相同数据结构(TMap)在不同形态下保持"骨架"一致 存档原理: 存档本质是"指针↔货号"的双向转换 通过URPGSaveGame类存储可序列化数据 采用全量覆盖而非增量更新确保数据一致性 数据流向: PlayerController(运行时数据)→GameInstan
2026-06-18 20:08:12
629
原创 【UE基础】四-03-实战篇-加类型与验证接口
本文是UE4物品系统实战指南,通过两个动手练习深入理解Asset Manager机制: 添加新物品类型(护甲Armor) 需同步修改三处:创建C++子类RPGArmorItem、在AssetManager添加类型常量、配置DefaultGame.ini扫描路径 验证"三处缺一不可":故意遗漏配置会导致资产无法被扫描加载 在编辑器中创建数据资产,观察ItemType自动锁定为Armor 验证Asset Manager查询接口 使用控制台命令直接测试核心功能: DumpTypeSummary查看类型统计 Dum
2026-06-17 11:45:00
404
原创 【UE基础】四-02-源码篇-从启动到加载
本文通过源码分析详细拆解了虚幻引擎中 UAssetManager 和 UPrimaryDataAsset 的协作机制,核心流程如下: 关键握手点:通过三层 GetPrimaryAssetId() 虚函数重写实现资产标识注册,URPGItem 采用业务类型(如"Potion")而非类名作为分类依据。 配置映射:通过 DefaultGame.ini 的 PrimaryAssetTypesToScan 配置资产类型与磁盘路径的映射关系,注意类型名必须与代码严格一致。 两阶段加载: 启动时扫描阶段(阶段A):仅建立
2026-06-17 08:30:00
305
原创 【UE基础】03.蓝图与编辑器工作流
接上后会自动把 float 转成 string)。像这样: 第五步,运行验证。 点蓝图编辑器左上角的 Compile 按钮(别漏这步),关掉蓝图窗口,在编辑器里点 Play 运行。如果一切正常,游戏启动时你会在左上角看到一个 0~1 之间的数字打印出来,这就是当前血量百分比。 如果没看到,检查这几步: 编译 C++ 时有没有报错?编辑器可能自动弹到了 Output Log 窗口,切回去看。 蓝图里连上 GetHealthPercent 了吗?右键菜单里搜不到的话,大概率是 C++ 编译没成功。 蓝图编译了吗
2026-06-16 18:57:48
1033
原创 【UE基础】02.基类与蓝图子类的分工
摘要:本文揭示了Unreal Engine中C++基类与蓝图子类的核心关系。UE项目通常采用"C++基类+蓝图子类"的两层结构,引擎实际运行的是蓝图子类(如BP_GameMode_C),而非直接使用C++基类(如ARPGGameModeBase)。这种设计让非程序员可以通过蓝图配置参数和事件流,而C++类则提供基础功能。文章详细解析了UE配置路径的语法规则(/Game表示内容资产,/Script表示C++类),解释了BP_前缀的命名约定和_C后缀的编译机制(蓝图资产生成运行时类),并以ActionRPG项目
2026-06-15 21:58:56
536
原创 [开发经验] DLL注入中控制台窗口无法关闭的排查与修复
摘要: DLL注入项目中控制台窗口无法关闭的问题源于多重句柄引用。排查发现FreeConsole()失效不仅因spdlog的console sink持有句柄,更关键的是freopen_s重定向的C标准流(stdout/stderr/stdin)未被释放。完整解决方案需三步:移除spdlog sink→调用FreeConsole()→关闭标准流句柄。这揭示了Windows控制台窗口的生命周期由多层引用共同决定,任何一层未清理都会阻止窗口销毁。最终通过系统API层、框架层和C运行时层的协同处理解决了问题。
2026-05-04 22:19:41
398
原创 【逆向经验】一篇文章讲透为什么CE搜不到Python游戏的内存值
在逆向某游戏(Cocos + Python 2.7)时遇到一个现象:游戏中"当前年剩余时间"()是一个不断变化的 float 值(从120倒计时到0),但用 Cheat Engine 无论怎么搜都搜不到。值没有加密,问题出在Python 的对象内存模型与 CE 的搜索假设根本不兼容。这个问题对所有内嵌 Python/Lua/JS 等脚本引擎的游戏都适用。C/C++ 游戏: 地址固定 → 值原地变化 → CE 完美匹配。
2026-05-04 21:47:50
606
原创 【Dumper-7】入门指南 - 带你领略不一样的UE世界
摘要: Dumper-7是一款用于分析UE4/UE5游戏的逆向工具,可自动生成游戏内部结构的C++ SDK。支持Visual Studio、CMake和Xmake三种构建方式,通过DLL注入目标游戏后,自动识别引擎结构并输出C++ SDK文件(默认保存在C:\Dumper-7目录)。该工具适用于游戏Mod开发、安全研究和机制分析,提供完整的类层次映射、属性/函数识别功能。使用时需注意x64平台配置,生成SDK后可集成到自定义DLL项目中,通过示例代码展示如何查找游戏对象、访问世界状态和调用引擎函数。
2026-04-11 21:30:24
340
原创 Windows 平台下 Claude Code 实战指南(结合国内智谱GML模型)
本文介绍了在Windows系统下使用Claude Code AI编码助手的方法。主要内容包括:Claude Code的基本概念(支持本地代码仓库对话式开发、项目结构理解和代码生成);Windows环境下的三种安装方式(PowerShell、CMD和npm);接入智谱GLM大模型的步骤(注册账号、创建API Key、使用自动化工具);常用命令操作(启动、查看模型状态、上下文状况);以及模型配置与切换方法。文章为开发者提供了从安装到使用的完整指南,帮助用户高效搭建AI开发环境,提升编码效率。
2026-04-09 23:49:43
1888
原创 【AI】Ollama本地部署Gemma4:e4b实战指南
本文详细介绍了在Windows系统上使用Ollama部署Gemma4:e4b模型的方法。首先下载安装Ollama Windows版,然后通过命令行或窗口方式下载Gemma4:e4b模型。文章提供了模型运行测试示例,并对比分析了Gemma4系列不同模型的参数及适用场景,推荐RTX 4060 Ti 8G用户选择Gemma4:e4b以获得性能与资源占用的平衡。最后针对常见问题给出解决方案,帮助用户充分利用本地硬件实现高效AI体验。
2026-04-09 18:30:00
2389
原创 Android应用调试指南:从准备到实践与避坑
本文围绕Android应用调试展开,介绍了前期准备工作、不再适用的旧资料、调试过程中的常见问题及解决办法,同时规划了未来关于Android studio调试APK的学习方向,旨在帮助开发者逐步掌握Android应用的调试技巧,为实际开发和逆向工程提供支持。解决方法是在任务管理器中结束模拟器自带的adb进程,确保外部adb正常连接。旨在为新手提供一份全面且详细的Android应用调试指南,涵盖从环境搭建到实际调试操作以及常见问题解决等方面的内容,帮助开发者顺利实现对Android应用的动态调试。
2026-04-08 19:58:33
398
原创 【AI】TDD、DDD、SDD开发及AI时代下的发展
本文系统介绍了SDD、TDD、DDD三种软件工程方法论在AI编程时代的应用。TDD通过"红-绿-重构"循环确保代码质量;DDD以业务领域为中心实现业务与技术的深度契合;SDD作为AI时代新兴方法,强调规范先行驱动全流程开发。三者形成互补体系:DDD解决业务建模,SDD实现规范定义,TDD保障代码质量,共同构建AI编程工程化闭环。文中列举了各方法的代表项目和实践案例,展示了三种方法在企业级系统和开源项目中的成功应用,为AI编程提供了质量保障和效率提升的有效路径。
2026-04-08 07:30:00
1949
原创 Bun:JavaScript 世界的新兴高性能工具
Bun是一款颠覆性的JavaScript/TypeScript一体化开发工具,集运行时、包管理器和转译器于一身。相比传统工具链(Node.js+npm+Webpack等),Bun凭借Zig语言和JavaScriptCore引擎实现显著性能提升:安装依赖快20-100倍,冷启动速度快10倍,并提供零配置的TS/JSX支持。其核心优势包括智能缓存、并行安装和内置构建工具,特别适合追求效率的项目。虽然对复杂项目生态支持尚在完善,但Bun已展现出替代传统工具链的潜力,为开发者提供更轻量、高效的开发体验。
2026-04-07 10:47:28
645
原创 Windows 包管理利器:Chocolatey 与 ChocolateyGUI 详解(从安装到实战)
Windows 包管理利器:Chocolatey 与 ChocolateyGUI 详解(从安装到实战)
2025-09-30 19:00:00
1791
原创 【lua】Windows环境下cffi-lua使用指南:编译、安装与测试
▒ 目录 ▒🛫 导读环境需求1️⃣ Windows下cffi-lua基础认知1.1 核心特性(Windows适配)1.2 必备依赖(Windows环境)2️⃣ Windows下编译指南(MSVC环境)2.1 步骤1:准备依赖文件(关键!步骤2:配置 meson 编译参数步骤3:执行编译3️⃣ Windows下安装与测试3.1 安装:让Lua找到cffi模块3.2 测试:验证cffi-lua功能3.3 批量测试:运行官方测试用例4️⃣ Windows特有注意事项与避坑指南。
2025-09-17 11:38:54
1077
原创 【Lua】Windows 下编写 C 扩展模块:VS 编译与 Lua 调用全流程
Windows 下编写 Lua C 扩展模块:MinGW/VS 编译与 Lua 调用全流程
2025-09-13 23:25:48
1733
4
AI Claude Code 源码泄露:一场关于安全与学习的风波 示例资源
2026-04-11
FridaAndroid 09-爬虫之WebSocket协议分析
2024-04-07
FridaAndroid08-爬虫之网络通信库okhttp3 示例文件 okhttp3logging.dex
2024-04-01
FridaAndroid08-爬虫之网络通信库okhttp3 示例程序Okhttp3Demo 不带拦截器!!!
2024-04-01
扫雷 winmine.exe
2024-03-17
2023-6-1,儿童节最新编译NetHookAnalyzer2.exe和NetHook2.dll
2023-06-01
文章《Android小米手机 Root全攻略:轻松获取手机最高权限》对应资源
2023-05-11
文章《【CE实战-生化危机4重置版】实现角色瞬移、飞翔》对应资源
2023-04-25
dinput8.dll
2023-04-17
【CE实战-Raft】对应的CT文件
2023-04-14
electron改-64位版本(web应用秒变客户端软件)
2022-01-27
electron改-32位版本(web应用秒变客户端软件)
2022-01-27
python学习目的何在,如何提高自己
2016-12-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅