Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
Squalr — 一个从头开始用 Rust 编写的通用游戏/软件破解工具。 | Kitploit
工具/GitHubGitHub/squalr/squalr
动态分析 (沙盒)内存取证漏洞利用逆向工程调试器信息收集渗透测试二进制分析
GitHubsqualr/squalr

Squalr

一个从头开始用 Rust 编写的通用游戏/软件破解工具。

查看仓库
15120193个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Squalr

License: GPL v3

Squalr 官方网站

加入我们的 Discord 频道

Squalr 是一个用 Rust 编写的高性能动态分析逆向工程工具。

首先,Squalr 是一个极速的内存扫描器,允许用户搜索并修改运行中的进程内存。通过多线程与 SIMD 结合实现快速扫描,能够在数秒内处理数 GB 的数据。虽然所有 CPU 都支持,但为了获得最佳性能,你的 CPU 需要支持 SSE、AVX 或 AVX-512。

与大多数逆向工程工具不同,动态分析在 Squalr 中是核心功能。这使得可以通过分析程序随时间的行为,实现其他方式无法完成的工作流程。


Squalr 是 Squalr-Sharp 的精神继承者。正在寻找旧的 C# 仓库?请参见 Squalr-Sharp。请注意,Squalr-Sharp 已不再维护,Squalr 已成为开发重点。

本项目与我们团队成员的雇主无关,无论过去、现在还是将来。

SqualrGUI

使用方法

Squalr 可以作为桌面应用、终端工具、Android 应用或作为 Rust crate 用于自定义扫描工作流。

独立应用

当你需要完整的交互工作流时使用:进程选择、元素扫描、数组/字符串扫描、指针扫描、内存查看器、项目文件、符号布局以及插件支持的工具。

平台GUICLITUI远程(主机)远程(终端)
Windows✅✅✅✅✅
Linux✅✅✅✅✅
Mac✅✅✅✅✅
Android(已 Root)✅✅✅❌✅
iPhone(尚不可用)✅✅✅❌✅

插件与扩展

插件是扩展 Squalr 行为的途径。现有的插件 crate 覆盖了内置插件、24 位数据类型、指令提供程序、二进制符号和 Dolphin 内存视图路由。中期目标是让插件能够扩展数据类型、项目项类型、虚拟模块、中间件和工具,而无需修改核心应用。

脚本编写功能正在规划中,但目前尚无稳定的公共脚本接口。

将 Squalr 作为库使用

当你希望嵌入 Squalr 的组件而不是运行 Squalr 前端时,直接使用这些 crate。根据你希望 Squalr 负责的工作流部分选择合适的层级。

使用者你提供的内容Squalr 提供的内容Crates
字节扫描器你自己的字节、快照、文件、模拟器转储或捕获的内存缓冲区扫描计划、数据类型、快照结构、扫描执行和结果过滤squalr-engine-api, squalr-engine-scanning
自定义目标集成器你自己的目标实现,例如模拟器、调试器、远程代理、跟踪记录器或沙箱用于内存映射、读取、写入、模块和目标句柄的稳定目标特征squalr-engine-api, squalr-engine-targets, squalr-engine-scanning
原生进程扫描器一个本地进程,希望 Squalr 枚举、打开、读取、写入和扫描原生 Windows/macOS/Linux/Android 目标访问加上扫描 cratesqualr-engine-api, squalr-engine-targets, squalr-engine-targets-native, squalr-engine-scanning
Squalr 前端或自动化 shell一个 GUI、CLI、TUI、机器人或命令运行器,希望使用常规的 Squalr 工作流会话状态、命令调度、应用级编排、目标 I/O 协调、扫描、项目和响应squalr-engine-session, squalr-engine
命令行适配器一个 CLI、REPL、远程 shell 或脚本桥,希望将用户输入的命令转化为引擎命令命令语法、别名、帮助/版本处理以及转换为共享命令模型squalr-engine-api
项目与符号工具需要读取、写入、检查或转换 Squalr 项目的工具项目文件、符号目录、布局、定位器和共享数据模型squalr-engine-api, squalr-engine-projects

squalr-engine-api 是共享模型 crate。它包含其他层使用的公共数据类型:扫描计划、值、快照、结果、命令、符号和面向项目的结构。

如果你已经拥有字节,请停留在字节扫描器层:构造 SnapshotRegion 值,将它们包装为 Snapshot,然后调用 ElementScanner::scan_snapshot。此路径不需要进程句柄或原生目标后端。

如果你希望扫描真实进程,请将目标 I/O 和扫描保持为独立阶段。使用 squalr-engine-targets 作为抽象,当你需要 Squalr 的原生后端时使用 squalr-engine-targets-native,然后将收集到的内存送入 squalr-engine-scanning。

如果你希望获得完整的 Squalr 应用工作流,请使用会话/命令 crate,而不是自行组装较低层级。该路径适用于希望 Squalr 协调目标访问、扫描、项目和响应的使用者。

开发理念

系统级工作需要用系统级语言。选择 Rust 是因为它消除了整个类别的 bug,并且非常适合这项任务。

在评估了几个前端框架后,我们最终选择了 egui。Egui 为我们提供了较小的二进制文件大小、原生速度、跨平台性以及易于访问应用程序数据进行显示。

中期来看,Squalr 的目标是使用现代插件系统实现可扩展性。不再需要将插件解压到特殊位置并在每次发布时手动升级。这意味着一个真正的市场,包括大量免费且易于安装的插件。虽然目前尚未实现,但 Squalr 的开发已考虑到开发者希望扩展类型系统、项目系统、注册自定义工具以及注册中间件以支持扫描模拟器内存或其他特定场景的需求。

此外,我们很快将支持脚本编写。我们尚未决定使用哪种语言。虽然大多数人会立刻想到 Lua 或 Python,但这些语言缺乏健壮的数据类型,导致需要笨拙的变通方法。因此,我们尚不清楚将使用什么替代方案,或者是否存在可行的替代选择。

最终,Squalr 将在静态分析方面展开竞争,但初期不会。目前,Squalr 刻意不构建 ASM 到 C++ 的反编译器、代码图或调试器。

长期来看,我们确实希望融入 AI 领域,并以切实为用户创造价值的方式进行。以下是我们打算尝试的几个想法:

  • 纯文本破解。只需在正常对话中告诉代理你想要破解什么,让它调度低级命令来完成繁重的工作。这可能在视频游戏逆向工程等领域非常有效。
  • 自动数据符号发现。通过分析值随时间快照的变化、分析屏幕截图等,我们相信代理可以帮助你构建进程中所有数据和函数的完整地图。
  • 低延迟本地模型。我们希望开发者能够创建机器人,这些机器人可以接收屏幕数据、内存数据,并在足够快的循环中运行,从而完成从玩游戏到导航桌面软件的各种任务,而不会有过度的延迟。

功能特性

构建版本

  • 桌面 GUI 版本。
  • Android GUI 版本。
  • CLI 版本。
  • TUI 版本。

面向开发者功能

  • 命令/事件钩子
  • 插件系统:数据类型
  • 插件系统:中间件(用于模拟器支持的过滤器,通过自定义逻辑过滤虚拟内存)
  • 插件系统:虚拟模块(自定义定义的静态基址——可以是线程栈、特殊模拟器内存区域等)
  • 插件系统:项目项类型
  • 脚本系统(具体语言待定)

面向用户功能

  • 原始类型扫描
  • 数组扫描,包括原始类型数组(如 u8[]、i32[]、string_utf8[])
  • 字符串扫描
  • 结构查看器
  • 可停靠窗口系统
  • 结构扫描
  • 指针扫描
  • 项目系统

Linux 构建

Linux 构建通过以下入口点验证:

  • cargo build -p squalr-cli --locked
  • cargo build -p squalr-tui --locked
  • cargo build -p squalr --locked

构建前安装原生依赖:

  • pkg-config
  • libasound2-dev
  • libudev-dev
  • libxkbcommon-dev
  • libwayland-dev
  • libx11-dev
  • libxcursor-dev
  • libxi-dev
  • libxrandr-dev
  • libxinerama-dev

Android 构建

Android 构建目前已在目标 aarch64-linux-android 上验证,API 级别为 30。

快速开始:设备上的 APK(特权 GUI 路径)

目标:安装 GUI APK,推送特权工作进程,并在 Rooted IPC 模式下运行 GUI。

先决条件:

  • 已安装 Android SDK + NDK。
  • 设置 ANDROID_HOME。
  • 设置 ANDROID_NDK_ROOT。
  • 已安装 Rust Android 目标:rustup target add aarch64-linux-android。
  • 已安装 Cargo 辅助工具:
    • cargo install cargo-ndk
  • 通过 adb 连接的已 Root 设备。

然后在工作区根目录运行以下任一命令:

  • python ./scripts/build_and_deploy.py(完整冒烟验证:预检 + 构建 + 安装 + 启动 + IPC 工作进程检查)
  • python ./scripts/build_and_deploy.py --compile-check(自动只编译路径:预检 + Android Rust 构建 + GameActivity APK 打包,无需设备)
  • 要启动已安装的 APK 而不重新构建:python ./scripts/run_apk.py
  • 要手动运行特权工作进程 shell 进行调试:python ./scripts/debug_run_privileged_shell.py

注意:

  • 部署脚本会运行主机预检检查(ANDROID_HOME、ANDROID_NDK_ROOT、目标安装以及 aarch64-linux-android-clang 的可访问性),然后运行:
    • cargo ndk --target aarch64-linux-android build -p squalr-cli
    • cargo ndk --target aarch64-linux-android build -p squalr
  • GUI APK 被打包为生成在 target/android-gameactivity-gradle 下的 Gradle 项目,使用 androidx.games:games-activity,因此 Android 软输入状态由 GameActivity 而非 NativeActivity 处理。
  • GUI 使用 third_party/winit-0.30.13 下的工作区补丁,用于 winit 0.30.13。该补丁保持上游 Android 按键事件处理,将 GameActivity 的文本提交转发到 egui 的正常键盘文本路径,在 IME 激活时抑制重复的可打印按键事件,并在每次提交后清除隐藏的 GameActivity 文本缓冲区。
  • 部署脚本使用 target/android-gradle 下固定的本地 Gradle 发行版进行 GameActivity 打包。要覆盖此设置,请将 SQUALR_ANDROID_GRADLE 设置为兼容的 Gradle 可执行文件。
  • 在完整冒烟模式下,脚本会安装 APK,推送 /data/local/tmp/squalr-cli,运行 su -c chmod +x,启动应用,并验证特权工作进程启动。
  • 无标志运行时提示:Build in release mode? (y/n [default])。
  • 非交互环境应传递 --release 或 --debug 以避免提示。
  • --release 优先使用发布构件;如果未配置发布签名([package.metadata.android.signing.release]),APK 构建会自动回退到调试。
  • 如果 adb install 在已有安装上失败,请先卸载:
    • adb uninstall com.squalr.android

无头 HTTP IPC

squalr-cli 可以暴露一个 JSON HTTP 控制接口,用于自动化和集成测试:```text squalr-cli --http-ipc 127.0.0.1:49321

在Android上,以root身份运行它,并从主机转发端口:```text
adb shell su 0 sh -c "/data/local/tmp/squalr-cli --http-ipc 127.0.0.1:49321"
adb forward tcp:49321 tcp:49321

初始端点有:

  • GET /health
  • POST /command 使用序列化的 PrivilegedCommand JSON 主体,返回 PrivilegedCommandResult
  • GET /events?after=<event_id> 用于轮询引擎事件

为了通过 HTTP IPC 端到端验证 Android 调试器路径,请运行:```text python ./scripts/android_http_debugger_smoke.py

烟雾构建发布Android产物,推送一个原生watch目标进程,该进程广告一个静态计数器地址,通过HTTP驱动`Process.Open`以及读/写/访问调试器跟踪,并验证目标在每个跟踪停止并分离后持续发送心跳。

常见的预检失败示例:```text
> rustup target list --installed
aarch64-linux-android
wasm32-unknown-unknown
x86_64-pc-windows-msvc
ANDROID_NDK_ROOT is not set.

如果出现此情况,请将 ANDROID_NDK_ROOT 设置为您的 Android NDK 路径,然后重新运行脚本。

macOS 构建

macOS 构建通过以下入口点进行验证:

  • cargo build -p squalr-cli --locked
  • cargo build -p squalr-tui --locked
  • cargo build -p squalr --locked

运行目标:

  • CLI:cargo run -p squalr-cli -- process list -w -l 20
  • TUI:cargo run -p squalr-tui
  • GUI:cargo run -p squalr

macOS 安全白名单/禁用指南

Squalr 在 macOS 上使用 Mach API(task_for_pid、mach_vm_read_overwrite、mach_vm_write)来打开和检查目标进程。如果这些调用被阻止,进程的打开/读取/写入操作将失败。

要启用这些功能,必须禁用系统沙箱安全功能。请注意,这会影响您的整个系统,并使您的系统更容易受到恶意软件的攻击!除非您知道自己在做什么,否则不建议这样做。

下载工具