Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
XenoScan — 用C++编写的开源内存扫描器 | Kitploit
工具/GitHubGitHub/nickcano/xenoscan
内存取证漏洞利用逆向工程调试器二进制分析
GitHubnickcano/xenoscan

XenoScan

用C++编写的开源内存扫描器

查看仓库
369705年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

XenoScan

XenoScan 是一个内存扫描器,可用于扫描进程的内存,以定位重要值的具体位置。这类工具通常用于破解电子游戏,因为它们能定位表示游戏状态在内存中的值。

XenoScan 使用 C++ 编写,带有 Lua 前端,我一直在开发超越我所见过的任何其他内存扫描器的先进功能。值得注意的是,它能够枚举并返回目标内存空间中所有复杂数据结构(例如 std::list 和 std::map)的实例,甚至能扫描所有类实例,并根据其底层类型对发现的实例进行分组。

联系方式

如果您需要联系我、想要一个聊天的地方或有疑问,我的 Discord 是最好的去处。

子项目

XenoLua

XenoLua 是 Lua 的一个封装,提供了大量功能。最值得注意的是,它提供了一个 LuaVariant 类,封装了在 C/C++ 和 Lua 类型之间转换的功能。此外,它还有 LuaPrimitive 类中的辅助函数,用于处理 Lua。

XenoScanEngine

XenoScanEngine 是项目的核心部分。它包含扫描、数据结构检测以及所有其他功能的代码。

XenoScanLua

XenoScanLua 将 XenoScanEngine 与 XenoLua 连接起来,为扫描器提供了一个 Lua 可脚本化的前端。目前,这是扫描器的唯一入口点。

此外,该项目还包含一些测试代码,以确保一切正常运行。一个测试由 .cpp、.h 和 .lua 文件组合而成。有关如何使用扫描器的示例,您可以查看 .lua 测试文件。

编译

XenoScan 使用 CMake,并已在 Visual Studio 2017 上测试通过。要使用此版本的 VS,只需从 32位开发者命令提示符 (VS) 中运行 buildmsvc2017.bat。例如,要为 Visual Studio 2017 构建项目,我运行:

root@kitploit:~
cd C:\path\to\XenoScan
buildmsvc2017.bat

这将在我的 build 目录(例如 C:\path\to\XenoScan\build)中创建一个名为 XenoScan.sln 的文件。然后我使用这个解决方案文件在 Visual Studio 中编译代码。构建 x64 版本类似,但从 x64 Native Tools 命令提示符 (VS) 运行。

root@kitploit:~
cd C:\path\to\XenoScan
buildmsvc2017x64.bat

在 32 位和 x64 构建之间切换时,应运行 buildclean.bat。这将删除生成的项目文件并移除已编译的 LuaJIT 二进制文件,因为它们需要为正确的架构重新构建(这会自动发生)。

注意:我不知道为什么这些命令提示符的名称如此不同。重要的是,这些提示符所设置的 vcvars 必须与正在构建的架构相对应。这对构建 LuaJIT 尤其重要。无论如何,构建脚本会告诉您是否在错误的地方运行它们。

理论上,只要您使用 CMake 生成项目文件,您应该可以使用任何现代编译器构建代码。在编译之前,您需要确保已检出子模块。完成后,您还需要 构建 luajit 子模块,以便 XenoScan 可以链接这些库。

所谓现代,我指的是任何支持 C++17 的编译器,因为代码使用了该标准。此外,您的 CMake 版本应至少为 3.10。

平台

该代码设计为平台无关的。理论上,要在任何其他平台上编译,您需要:

  1. 为目标 IDE/编译器创建项目/生成文件。
  2. 从项目中移除 ScannerTargetWindows.cpp 和 ScannerTargetWindows.h 文件。
  3. 为您的平台实现 ScannerTarget 接口。
  4. 将您的实现添加到项目中。
  5. ???? 获利

功能

基本扫描功能支持以下类型:

  • 整数类型*:
    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t
  • float
  • double
  • ascii 字符串
  • 宽字符串
  • 动态值(相对于某些当前状态搜索的值)
    • filetime64:64位时间戳(Windows 上的 GetSystemTimeAsFileTime())
    • ticktime32:32位滴答计数(Windows 上的 GetTickCount())

* Lua 前端可能在处理 64 位整数时出现问题,但扫描器库支持它们。

扫描支持以下匹配类型:

  • 等于
  • 大于
  • 大于或等于
  • 小于
  • 小于或等于
  • 范围(min <= check <= max)

此外,还有检测以下所有类型实例的功能:

  • std::map
  • std::list
  • 任何具有虚函数表的类
下载工具
  • 自定义数据结构(类似于 C++ struct)
    • 可以由任何整数和小数类型组合而成