使用文档

GUI 完整使用文档

按界面逐项说明登录、授权、应用保护、日志、设置与配置文件,含错误提示与批次操作细节。

最后更新于 2025-06-06预计阅读 10 分钟

1. 术语与概念

1.1 输入文件(待保护文件)

在“应用保护”页面选择或拖入的目标文件。工具会自动识别类型:

  • PE32 / PE64(Windows 原生程序)
  • .NET(x86 / x64 / AnyCPU)
  • ELF32 / ELF64(Linux 原生程序)
  • Android APK / AAB

1.2 输出文件(保护后文件)

保护完成后生成的新文件:

  • 默认命名:<原文件名>.protected.<原后缀>
  • 输出路径支持相对路径和绝对路径
  • 相对路径以输入文件所在目录为基准解析

1.3 配置文件(.sugo)

每个输入文件对应一份旁路配置:

  • 路径:<输入文件完整路径>.sugo
  • 用途:保存输出路径、保护选项开关、函数保护规则
  • 保存时机:
    • 当前已加载文件且配置存在时,按 Ctrl+S 保存
    • 点击“开始保护”前自动保存一次

配置中的输出路径按 UI 逻辑保存为字符串。输入相对路径时,执行保护会以“输入文件所在目录”为基准转换为绝对路径。

2. 界面总览

左侧侧边栏包含 5 个页面:

页面作用
首页公告与更新日志;无数据时显示“暂无公告 / 暂无更新日志”
应用保护选择文件、配置保护选项、配置函数保护、执行保护
日志查看、筛选、复制、导出操作日志
设置设置运行环境(如 JRE 路径)
关于官网、版权信息、创建错误转储

侧边栏顶部为用户区域:

  • 未登录:显示“未登录”,提供“点击登录”
  • 已登录:显示用户名,提供“授权管理”与“注销”

3. 登录

入口:侧边栏顶部 “点击登录”。

登录弹窗使用手机号 + 密码模式。

3.1 手机号登录

字段:

  • 手机号:提示“请输入手机号”
  • 密码:提示“请输入密码”
  • 保存密码:勾选后在本地保存账号密码,用于下次自动填充

按钮:

  • 登录:开始登录

快捷键:

  • 在手机号登录页按 Enter 触发登录

提示:

  • 手机号为空:提示“请输入手机号”
  • 密码为空:提示“请输入密码”
  • 登录中按钮显示“登录中...”
  • 登录失败:弹窗“登录失败: <原因>”

安全提示:启用“保存密码”会把密码保存到本地配置。建议只在受信任的个人设备使用。

4. 授权管理

入口:侧边栏顶部 “授权管理”。

窗口标题为“授权管理”,核心区域是“授权列表”表格。

4.1 刷新授权

按钮:刷新授权

  • 异步请求并更新当前账号可用授权

4.2 单个授权绑定 / 解绑

每一行授权在“操作”列提供:

  • 绑定:把授权绑定到本机
  • 解绑:把授权从本机解绑(二次确认)

解绑确认文案:

确定要解绑该授权吗?

解绑后将无法在此设备上使用该授权。

授权不可绑定时会给出原因,例如:

  • 许可证状态不正常,无法绑定
  • 已绑定到本机,无需重复绑定
  • 已绑定到其他设备且无可用激活次数
  • 此许可证不可绑定到本机
  • 无可用激活次数

授权不可解绑时提示:

  • 只能解绑已绑定到本机的许可证

4.3 批量绑定 / 批量解绑

授权列表左侧有复选框列,表头提供“全选 / 取消全选”。

按钮:

  • 批量绑定:当所选授权中存在可绑定项时可用,显示数量 批量绑定(n)
  • 批量解绑:当所选授权中存在可解绑项时可用,显示数量 批量解绑(n)

5. 应用保护(核心功能)

入口:侧边栏 “应用保护”。

页面从上到下:

  1. 标题“应用保护”
  2. 文件拖拽加载区
  3. 文件信息卡片(加载后显示)
  4. 保护功能:“保护选项”与“函数保护”
  5. “开始保护”按钮
  6. 右侧时间线(加载、解析、执行策略等进度)

5.1 选择文件

支持拖拽文件到页面。

加载过程:

  • 页面显示“正在解析中...”,时间线显示加载步骤
  • 加载失败:提示“无法加载文件: <文件名>”
  • 检测到文件已被保护:提示“该文件已经被保护过”,并中止

加载成功后显示:

  • 文件名
  • 大小(B / KB / MB)
  • 类型,例如 .NET (x64)、PE64 (x64)、Android APK

5.2 移除已选择文件

文件信息卡片右侧有移除按钮(X)。点击后:

  • 清空当前文件
  • 清空函数保护列表
  • 卸载配置

5.3 输出路径

位置:保护选项标签页顶部,标签为“输出路径:”。

  • 可直接输入
  • 点击 浏览 选择保存路径
  • 如果选择的保存路径与输入文件在同一目录,会自动写入相对路径

默认值:<输入文件名>.protected.<后缀>

5.4 保护选项(按文件类型动态变化)

保护选项以“标题 + 描述 + 开关”呈现,并保存到 .sugo 配置。

5.4.1 Android APK

选项说明默认
Dex 加密加密 classes.dex 文件开
反调试检测并阻止调试器附加关
反注入检测并阻止注入关
Root 检测检测设备是否已 Root关
模拟器检测检测是否运行在模拟器中关
反截屏检测并阻止截屏关

5.4.2 Native - Windows PE(PE32 / PE64)

选项说明默认
压缩保护压缩可执行文件,减小体积开
导入表保护保护导入函数表关
反调试检测并阻止调试器附加关
虚拟机检测检测是否运行在虚拟机中关
内存校验检测内存修改关

5.4.3 .NET(x86 / x64 / AnyCPU)

选项说明默认
压缩保护压缩程序集开
JIT 加密加密方法体,运行时解密后 JIT 编译关
反调试检测并阻止调试器附加关
内存校验检测内存修改关

5.4.4 Native - Linux ELF(ELF32 / ELF64)

选项说明默认
压缩保护压缩 ELF 文件开
移除符号移除调试符号信息关
导入保护保护动态链接符号关
反调试检测并阻止调试器附加关
内存校验检测内存修改关

5.5 函数保护(按函数 / 方法粒度)

位置:“函数保护”标签页。

该页提供函数列表与三类保护类型的逐项勾选。

5.5.1 搜索

输入框提示:搜索函数/方法名...

  • 按显示名称模糊过滤,不区分大小写

5.5.2 表格列

表头:

列说明
名称函数或方法显示名
RVA显示为 imagebase + rva,例如 0x7FF66...
混淆控制流打乱
虚拟化转换为自定义虚拟指令
加密仅 .NET,方法体加密

支持性规则(由文件类型决定):

  • 混淆:默认允许
  • 虚拟化:.NET 类型不支持,其他原生类型支持
  • 加密:仅 .NET 类型支持

当某列不支持时,该列会被置为不可勾选状态。

5.5.3 右键菜单(批量勾选)

在表格内右键可打开菜单:

  • 全选
  • 取消选择
  • 混淆 → 勾选 / 取消
  • 虚拟化 → 勾选 / 取消
  • 加密 → 勾选 / 取消

5.5.4 快捷键

  • 在函数表格上按 Ctrl+A:全选
  • 搜索框会改变可见行范围,Ctrl+A 只选中当前可见行

5.5.5 失败回退

保护过程中如果某个函数的加密、混淆或虚拟化失败:

  • UI 自动取消该行对应列的勾选
  • 该行文本标红
  • 日志记录失败信息(Debug 模式下更详细)

5.6 开始保护

按钮:开始保护(快捷键 F5)。

开始前会检查:

  • 未选择文件:提示“请先选择要保护的文件”
  • 授权不可用:提示“没有可用授权,请先完成授权绑定后再保护。”或“当前类型的授权不可用...”
  • 文件不存在:提示“文件不存在”
  • 文件在加载后被外部修改:提示“文件已修改,请重新加载”

执行时:

  • 按钮变为“保护中...”并禁用
  • 时间线追加“开始保护”并显示后续阶段

成功:

  • 弹窗“保护成功!”
  • 日志输出“保护成功”

失败:

  • 弹窗“保护失败,请检查日志!”
  • 时间线标记失败
  • 到“日志”页面查询详情

5.7 时间线(Timeline)

时间线显示以下关键阶段:

  • 加载文件
  • 检查文件状态
  • 分析文件类型
  • 解析文件
  • 执行保护策略
  • 保护完成 / 失败

6. 日志

入口:侧边栏 “日志”。

标题:“操作日志”。

6.1 筛选

筛选下拉框:

  • 全部
  • 信息
  • 成功
  • 警告
  • 错误

6.2 复制 / 导出 / 清空

  • 复制:把当前所有日志行复制到剪贴板,完成后提示“已复制 N 条日志到剪贴板”
  • 导出:保存为 logs.txt(可自选路径),完成后提示“日志已导出到: <路径>”
  • 清空:清空当前表格

提交问题时,请附带“错误”级别日志和客户端版本号。

7. 设置

入口:侧边栏 “设置”。

当前实现包含:

  • JRE 路径:选择 Java 可执行文件(默认过滤 java.exe)
  • 选择后立即保存并记录日志:“JRE路径已更新: <路径>”

该路径预留给 Android 签名等功能,当前版本尚未启用自动签名。需要重签名时请使用外部工具完成。

8. 关于

入口:侧边栏 “关于”。

页面包含:

  • 简介:Sugo Protector
  • 官网链接:https://sugo.meowstack.com
  • 版权信息

8.1 创建错误转储

按钮:创建错误转储。

行为:

  • 当保护后产物存在问题,或保护过程中出现错误时,可生成转储提交给技术人员
  • Windows 平台生成 .dmp 文件(保存对话框标题“保存错误转储”)
  • 成功提示“错误转储已生成”,失败提示“创建错误转储失败”

9. 快捷键与配置

操作快捷键
开始保护F5
保存配置Ctrl+S
函数列表全选Ctrl+A
登录Enter(登录弹窗内)

.sugo 配置可以手工删除。删除后再次加载同一输入文件,会重新创建并填充默认值。

建议把验证过的 .sugo 与构建脚本一起归档,便于复现问题。

10. FAQ

10.1 为什么“开始保护”不可用或提示没有授权?

需要:

  • 先登录
  • 在“授权管理”中至少有一条“已激活”且已绑定到本机的授权
  • 授权覆盖当前文件类型

10.2 保护前提示“文件已修改,请重新加载”

加载文件后,外部程序改动了该文件(大小或修改时间变化)。处理:

  • 移除并重新加载该文件
  • 或确保保护期间没有其他程序写入

10.3 输出路径写了相对路径,最终文件在哪里?

相对路径以输入文件所在目录为基准。例如:

  • 输入:D:\work\a.exe
  • 输出填写:out\a.protected.exe
  • 最终:D:\work\out\a.protected.exe

10.4 保护后程序无法启动

按顺序排查:

  1. 用原始未保护文件确认程序本身可运行。
  2. 关闭反调试、虚拟机检测、内存校验,只保留压缩,重新保护。
  3. 检查是否与其他加壳工具、代码签名或完整性校验冲突。
  4. 检查依赖项和运行库版本是否变化。
  5. 生成错误转储并联系技术支持。

10.5 可以同时打开多个客户端实例吗?

不建议。多个实例同时写同一份 .sugo 或输出目录时可能互相覆盖。需要并行保护时,使用 CLI 并为每个任务指定独立输出路径。

10.6 Android 包保护后如何安装?

如果包内容被修改,需要用原签名证书重新签名。AAB 不能直接安装,请用 bundletool 生成 APK 后再测试。

这份文档有帮助吗?欢迎反馈文档问题或补充场景。提交文档反馈