# cvp **Repository Path**: git63enjoy/cvp ## Basic Information - **Project Name**: cvp - **Description**: cvp vs. (plants vs. zombies) - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-07-26 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cvp ### (将)掌控pvz的一切 ## qq群号 530737441 #### 介绍 cvp vs. (plants vs. zombies) 基于c++提供一套与pvz程序二进制兼容的接口 基于fltk允许额外构建ui #### 程序用法 1. 启动器应置于英文原版pvz同一目录下,启动后会运行pvz,并将同目录下所有基于cvp的dll依次运行 2. 核心加载器dll会将当前目录下所有插件.cvp全部装载并启动 #### 源码结构 0. 使用vs2019编译,运行时库选择/mt 1. 启动器.exe:负责将加载器装载至内存并启动,加载器会自动将自己的一个拷贝挂接至pvz进程 2. 加载器.dll:拥有pvz的类、全局变量等定义,重定位后可替换pvz源码的一部分运行,以此原理向插件提供Hook。允许用户以C++语言直接编辑已替换的部分。和pvz进程共享默认堆。 3. 插件.cvp:拥有pvz的类、全局变量等定义,重定位后可作为pvz源码的一部分运行,可向加载器递交申请,将指定函数挂接至其提供的Hook处,通过多文件的组合实现灵活的功能 #### Hook支持 1. 图形绘制 2. 按键消息 3. 游戏刷新 4。 游戏加载完毕 5. 窗口消息 6. 建立控制台ui #### 插件功能支持 1. 内存改写 2. 过程调用 3. 虚函数表改写 4. 建立ui