# Jscm-Core-FrameWork **Repository Path**: d131412/Jscm-Core-FrameWork ## Basic Information - **Project Name**: Jscm-Core-FrameWork - **Description**: Jscm框架是一个基于Java JNI的Windows系统操作框架,提供了丰富的Windows API封装,包括窗口操作、进程线程管理、内存操作、注册表操作、热键驱动等功能。本框架集成了三大模块进行处理,参考了精易模块、超级模块、乐易模块的设计思想,为Java开发者提供了强大的Windows系统底层操作能力。 框架支持X86和X64平台,包含DD键鼠驱动、幽灵键鼠驱动等硬件抽象层功能,同时提供了 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.snailcatmall.com/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-05-29 - **Last Updated**: 2026-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Jscm-Core — Java 系统级原生操作框架 > **版本**: 1.0-SNAPSHOT > **JDK**: Java 8+ > **平台**: Windows 7+ (x86 / x64) > **构建**: Maven > **文件数**: 249 Java 源文件 > **代码量**: ~70,814 行 --- ## 一、项目概览 Jscm-Core 是一个基于 **JNI (Java Native Interface)** 的 Windows 系统级操作封装框架。通过配套的 `Jscm.dll` 原生动态链接库,将 Windows API、XCGUI 炫彩界面库、JadeView WebView2 引擎等底层能力,暴露为 Java 可调用的静态方法集合。 ### 核心能力矩阵 | 领域 | 能力描述 | 估算方法数 | |:---|:---|:---| | **Windows API** | 窗口 / 进程 / 线程 / 内存 / 注册表 / 句柄 | 400+ | | **XCGUI 炫彩界面** | 完整 UI 控件库封装(按钮、列表、表格、布局…) | 349+ | | **JadeView WebView2** | 嵌入式浏览器引擎(窗口创建、IPC、协议服务) | 85+ | | **Adobe Photoshop** | 通过 PowerShell COM 自动化 PS(图层/滤镜/通道…) | 582+ | | **AI 集成** | Ollama 本地大模型 / Coze 工作流 / RunningHub 平台 | 50+ | | **键鼠驱动** | DD / Ghost / Md 三种硬件级键鼠模拟方案 | 100+ | | **内存调试** | 内存读写 / 特征码搜索 / 硬件断点 / API Hook | 80+ | | **反汇编** | CapStone 反汇编引擎封装 | 10+ | | **UI 组件** | 流光边框引擎 / 图像编辑器 / 视频背景引擎 | 30+ | | **数据结构** | Tag 结构体 / 枚举常量 / 回调接口 | 150+ | --- ## 二、完整目录结构 ``` src/main/java/ │ ├── App.java # 应用入口 & 使用示例 ├── META-INF/MANIFEST.MF # JAR 清单文件 │ └── com/scm/ │ ├── all/ # ═══ 平台无关模块 ═══ │ │ │ ├── AI/ # ┌──────────────────┐ │ │ │ # │ AI 集成模块 │ │ │ ├── ClaudeCode/ # │ 27 个 Java 文件 │ │ │ │ ├── ClaudeCodeToolkit.java # │ 主工具入口类 │ │ │ │ ├── ClaudeCodeToolkitWithSkills.java # │ 技能增强版 │ │ │ │ ├── client/ # │ │ │ │ │ │ └── OllamaClient.java # │ Ollama HTTP 客户端│ │ │ │ ├── cloud/ # │ │ │ │ │ │ ├── CloudLLMClient.java # │ 云端 LLM 客户端 │ │ │ │ │ └── CloudLLMConfig.java # │ 云端配置 │ │ │ │ ├── config/ # │ │ │ │ │ │ ├── ConfigManager.java # │ 配置管理器 │ │ │ │ │ └── OllamaConfig.java # │ Ollama 配置 │ │ │ │ ├── model/ # │ │ │ │ │ │ ├── ChatRequest.java # │ 聊天请求模型 │ │ │ │ │ ├── ChatResponse.java # │ 聊天响应模型 │ │ │ │ │ └── Message.java # │ 消息模型 │ │ │ │ ├── skills/ # │ │ │ │ │ │ ├── Skill.java # │ 技能接口 │ │ │ │ │ ├── SkillManager.java # │ 技能管理器 │ │ │ │ │ └── CloudReviewSkill.java # │ 云审查技能 │ │ │ │ └── utils/ # │ │ │ │ │ ├── ImageProcessor.java # │ 图片处理器 │ │ │ │ └── UrlHandler.java # │ URL 处理器 │ │ │ │ # │ │ │ │ ├── CozeAI/ # │ Coze 工作流 │ │ │ │ ├── CoZeWorkflowClient.java # │ 主客户端 │ │ │ │ ├── pfunc/ # │ │ │ │ │ │ └── ProgressCallback.java # │ 进度回调接口 │ │ │ │ └── strutc/ # │ │ │ │ │ └── WorkflowProgress.java # │ 进度数据结构 │ │ │ │ # │ │ │ │ └── RunNingHubAI/ # │ RunningHub 平台 │ │ │ ├── RunningHubClient.java # │ 主客户端 │ │ │ ├── api/ # │ │ │ │ │ ├── WorkflowApi.java # │ 工作流 API │ │ │ │ ├── WebappApi.java # │ Web 应用 API │ │ │ │ ├── QuickAIAppApi.java # │ 快速 AI API │ │ │ │ ├── StandardModelApi.java # │ 标准模型 API │ │ │ │ └── ResourceApi.java # │ 资源管理 API │ │ │ ├── config/ # │ │ │ │ │ └── RunningHubConfig.java # │ 配置类 │ │ │ ├── exception/ # │ │ │ │ │ └── RunningHubException.java # │ 异常类 │ │ │ ├── model/ # │ │ │ │ │ ├── NodeInfo.java # │ 节点信息 │ │ │ │ ├── TaskCreateResponse.java # │ 创建任务响应 │ │ │ │ ├── TaskOutputResponse.java # │ 任务输出响应 │ │ │ │ ├── UploadResponse.java # │ 上传响应 │ │ │ │ ├── WebappDemoResponse.java # │ Webapp 响应 │ │ │ │ ├── WorkflowJsonResponse.java # │ 工作流 JSON │ │ │ │ └── enums/ # │ │ │ │ │ └── TaskStatus.java # │ 任务状态枚举 │ │ │ └── util/ # │ │ │ │ ├── HttpUtil.java # │ HTTP 工具 │ │ │ └── TaskPoller.java # │ 任务轮询器 │ │ │ # └──────────────────┘ │ │ │ ├── component/ # ┌──────────────────┐ │ │ ├── AnimatedBorderEngine.java # │ UI 组件引擎 │ │ │ ├── ImageEditorTool.java # │ 3 个 Java 文件 │ │ │ └── VideoBackgroundEngine.java # │ │ │ │ # │ 流光边框动画引擎 │ │ │ # │ 图像编辑工具 │ │ │ # │ 视频背景引擎 │ │ │ # └──────────────────┘ │ │ │ ├── export/ # ┌──────────────────┐ │ │ │ # │ 核心导出模块 │ │ │ │ # │ 26 个 Java 文件 │ │ │ ├── ModuleOperationUtilsJNI.java # │ │ │ │ │ # │ ★ JNI 总入口 │ │ │ │ # │ ~4,963 行代码 │ │ │ │ # │ 所有 native │ │ │ │ # │ 方法汇聚于此 │ │ │ │ # │ │ │ │ ├── WindowOperationUtils.java # │ 窗口操作封装 │ │ │ ├── ProcessAndThreadUtils.java # │ 进程线程操作 │ │ │ ├── SystemUtils.java # │ 系统工具集 │ │ │ ├── ByteUtils.java # │ 字节编码转换 │ │ │ ├── ColorUtils.java # │ 颜色处理工具 │ │ │ ├── IniConfigurationOperationUtils.java # │ INI 配置读写 │ │ │ ├── PathFileJSCM.java # │ DLL 路径管理 │ │ │ ├── URLDateTimeUtils.java # │ URL/日期时间 │ │ │ ├── WebDriverAutoJsonUtils.java # │ WebDriver 自动 │ │ │ ├── OverrideMethodUtils.java # │ 方法覆盖工具 │ │ │ │ # │ │ │ │ ├── EmailUtils/ # │ ── 邮件子系统 ──│ │ │ │ ├── EMailUtils.java # │ IMAP/SMTP 核心 │ │ │ │ └── CallBack.java # │ 邮件回调接口 │ │ │ │ # │ │ │ │ ├── VerificationCodeUtils/ # │ ── 验证码 ──────│ │ │ │ └── CaptchaGenerator.java # │ 验证码生成器 │ │ │ │ # │ │ │ │ ├── capstone/ # │ ── 反汇编 ──────│ │ │ │ ├── CapStone.java # │ CapStone 封装 │ │ │ │ └── constant/ # │ │ │ │ │ ├── TAG_CS_ARCH.java # │ 架构常量 │ │ │ │ ├── TAG_CS_ERR.java # │ 错误码常量 │ │ │ │ ├── TAG_CS_MODE.java # │ 模式常量 │ │ │ │ ├── TAG_CS_OPT_TYPE.java # │ 选项类型 │ │ │ │ └── TAG_CS_OPT_VALUE.java # │ 选项值 │ │ │ │ # │ │ │ │ ├── hotkey/ # │ ── 键鼠驱动 ────│ │ │ │ ├── DdDriver.java # │ DD 驱动 │ │ │ │ ├── GhostDriver.java # │ 幽灵驱动 │ │ │ │ ├── MdDriver.java # │ Md 驱动 │ │ │ │ └── install/ # │ │ │ │ │ ├── InstallDDDriver.java # │ DD 驱动安装 │ │ │ │ ├── InstallGhostDriver.java # │ 幽灵驱动安装 │ │ │ │ └── InstallMdDriver.java # │ Md 驱动安装 │ │ │ │ # │ │ │ │ └── powerUtils/ # │ ── 高级工具 ────│ │ │ ├── PowerShell.java # │ PowerShell 脚本│ │ │ ├── CommandShell.java # │ CMD 命令执行 │ │ │ └── adobe/ # │ │ │ │ ├── PhotoshopTool.java # │ ★ PS 582+ 方法│ │ │ ├── PhotoshopJS.java # │ PS JS 执行器 │ │ │ └── Tools/ # │ │ │ │ ├── PhotoshopSocket.java # │ PS Socket 通信 │ │ │ ├── Protocol.java # │ 通信协议 │ │ │ └── encryptDecrypt.java # │ 加解密工具 │ │ │ # └──────────────────┘ │ │ │ ├── pfunc/ # ┌──────────────────┐ │ │ │ # │ 回调函数接口 │ │ │ │ # │ 37 + 10 文件 │ │ │ ├── JscmCallBack.java # │ 通用回调 │ │ │ ├── IpcCallback.java # │ JadeView IPC │ │ │ ├── IpcHandlerCallback.java # │ IPC 处理器 │ │ │ ├── MemoryCallBack.java # │ 内存搜索回调 │ │ │ ├── ModuleCallBack.java # │ 模块枚举回调 │ │ │ ├── WindowEventCallBack.java # │ 窗口事件回调 │ │ │ ├── XEleEventCallBack.java # │ XC 元素事件 │ │ │ ├── ThreadUICallBack.java # │ 线程 UI 回调 │ │ │ ├── BreakpointCallBackX64.java # │ 64 位断点回调 │ │ │ ├── BreakpointCallBackX86.java # │ 32 位断点回调 │ │ │ ├── WebChromeDriverCallBack.java # │ Chrome 驱动 │ │ │ ├── KeyCodeCallBack.java # │ 键码回调 │ │ │ ├── ResponseEventCallBack.java # │ 响应事件回调 │ │ │ ├── ResponseEventCallBackRunnable.java # │ 响应事件(Run) │ │ │ ├── ResponseEventCallTowBackRunnable.java # │ 响应事件2(Run) │ │ │ ├── TokenCall.java # │ 令牌回调 │ │ │ ├── PstyleCall.java # │ 样式回调 │ │ │ ├── pItemCall.java # │ 项回调 │ │ │ ├── pArrayCallBack.java # │ 数组回调 │ │ │ ├── pCallfunLoadFileCallBack.java # │ 文件加载回调 │ │ │ ├── TagFunAnimationItem.java # │ 动画项 │ │ │ ├── TagPFunAnimation.java # │ 动画函数 │ │ │ ├── TagThreadInfo.java # │ 线程信息 │ │ │ ├── ByteIndexCallBack.java # │ 字节索引回调 │ │ │ ├── ByteArraysToByte.java # │ 字节数组合并 │ │ │ ├── SwingJFrameInfo.java # │ Swing 窗口信息 │ │ │ ├── JadeViewMsgBox.java # │ JadeView 对话框│ │ │ ├── ServerBreakpointJniFunction.java # │ 服务端断点 JNI │ │ │ ├── XC_LoadLayoutCallBack.java # │ XC 布局加载 │ │ │ ├── XC_SetThreadCode.java # │ XC 线程代码 │ │ │ ├── WindowSetGraduallyHideShowCallBack.java # │ 渐变显隐回调 │ │ │ ├── Tag_cs_insnCallBack.java # │ 反汇编指令回调 │ │ │ ├── CGridppReportEventHandler.java # │ Grid++ 报表 │ │ │ ├── CGRDesignerEventHandler.java # │ Grid++ 设计器 │ │ │ ├── CGRDisplayViewerEventHandler.java # │ Grid++ 显示器 │ │ │ ├── CGRPrintViewerEventHandler.java # │ Grid++ 打印 │ │ │ ├── NtQueryAllProcessInfoCallBackProcess.java # │ NtQuery 进程 │ │ │ ├── NtQueryAllProcessInfoCallBackThread.java # │ NtQuery 线程 │ │ │ │ # │ │ │ │ └── Nonvirtual/ # │ ── 非虚回调 ────│ │ │ ├── PstyleCall_Nonvirtual.java # │ (避免 JNI 虚 │ │ │ ├── TagListBoxItemInfo_Nonvirtual.java # │ 函数调用开销 │ │ │ ├── TagFunAnimationItem_Nonvirtual.java # │ 的变体接口) │ │ │ ├── pItemCall_Nonvirtual.java # │ │ │ │ ├── TagPFunAnimation_Nonvirtual.java # │ │ │ │ ├── pArrayCallBack_Nonvirtual.java # │ │ │ │ ├── ThreadUICallBack_Nonvirtual.java # │ │ │ │ ├── pCallfunLoadFileCallBack_Nonvirtual.java │ │ │ │ ├── XEleEventCallBack_Nonvirtual.java # │ │ │ │ └── WindowEventCallBack_Nonvirtual.java # │ │ │ │ # └──────────────────┘ │ │ │ └── struct/ # ┌──────────────────┐ │ │ # │ 数据结构模块 │ │ ├── Enum/ # │ 80+ 枚举常量 │ │ │ ├── JadeView_Enum/ # │ 40+ Tag 结构 │ │ │ │ ├── JadeViewCrashCode.java # │ 6 JadeView 结构│ │ │ │ └── JadeViewEvent_Enum.java # │ │ │ │ ├── ReportGrid_Enum/ # │ │ │ │ │ └── GREnums.java # │ │ │ │ └── XC_Enum/ (70+ 枚举文件) # │ │ │ │ ├── WindowStyle.java # │ 窗口样式 │ │ │ ├── WindowStateFlag.java # │ 窗口状态标志 │ │ │ ├── ButtonState.java # │ 按钮状态 │ │ │ ├── EditType.java # │ 编辑框类型 │ │ │ ├── ComboBoxState.java # │ 组合框状态 │ │ │ ├── LayoutAlign.java # │ 布局对齐 │ │ │ ├── D2D1AlphaMode.java # │ D2D1 透明度 │ │ │ ├── DXGIFormat.java # │ DXGI 格式 │ │ │ ├── XcObjectType.java # │ XC 对象类型 │ │ │ └── ... (60+ 更多) # │ │ │ │ # │ │ │ ├── JadeView_struct/ # │ ── JadeView ────│ │ │ ├── WebViewWindowOptions.java # │ 窗口选项 │ │ │ ├── WebViewSettings.java # │ WebView 设置 │ │ │ ├── FileDialogParams.java # │ 文件对话框 │ │ │ ├── MessageBoxParams.java # │ 消息框参数 │ │ │ ├── NotificationParams.java # │ 通知参数 │ │ │ └── TrayMenuItemDesc.java # │ 托盘菜单描述 │ │ │ # │ │ │ └── Tag*.java (38 个结构体文件) # │ ── 基础结构 ────│ │ ├── TagPoint.java (x, y 整数坐标) # │ │ │ ├── TagPointF.java (float 坐标) # │ │ │ ├── TagPointD.java (double 坐标) # │ │ │ ├── TagRect.java (矩形区域) # │ │ │ ├── TagRectF.java (float 矩形) # │ │ │ ├── TagRectSize.java (矩形尺寸) # │ │ │ ├── TagSize.java (宽高) # │ │ │ ├── TagPosition.java (位置) # │ │ │ ├── TagBorderSize.java (边框尺寸) # │ │ │ ├── TagPadDingSize.java(内边距) # │ │ │ ├── TagMarginSize_.java(外边距) # │ │ │ ├── TagWinInfo.java (窗口信息) # │ │ │ ├── TagMyWindwInfo.java(自定义窗口信息) # │ │ │ ├── TagProcessenTry32.java (进程快照) # │ │ │ ├── TagThreadEntry32.java (线程快照) # │ │ │ ├── TagModuleenTry32.java (模块快照) # │ │ │ ├── TagModuleenTryX64.java (64 位模块) # │ │ │ ├── TagModuleenTryX86.java (32 位模块) # │ │ │ ├── TagMemoryDataX64.java (64 位内存) # │ │ │ ├── TagMemoryDataX86.java (32 位内存) # │ │ │ ├── TagPmemory_Basic_InfoRmationX64.java # │ 64 位内存页信息 │ │ ├── TagPmemory_Basic_InfoRmationX86.java # │ 32 位内存页信息 │ │ ├── TagINPUT.java (输入事件) # │ │ │ ├── TagFontInfo.java (字体信息) # │ │ │ ├── TagLOGFONTW.java (逻辑字体) # │ │ │ ├── TagHotKeyInfoTow.java (热键信息 2) # │ │ │ ├── TagHotKeyInfoThree.java(热键信息 3) # │ │ │ ├── TagTokenPrivileges.java(令牌权限) # │ │ │ ├── TagLuid.java (LUID) # │ │ │ ├── TagRegisTryGroupInfo.java(注册表组) # │ │ │ ├── TagListBoxItemInfo.java (列表框项) # │ │ │ ├── TagListViewItemId.java (列表视图项) # │ │ │ ├── TagEditStyleInfo.java (编辑框样式) # │ │ │ ├── TagEditor_color_.java (编辑器颜色) # │ │ │ ├── TagMonthCalItem.java (月历项) # │ │ │ ├── TagNotifyMsgSkin.java (通知皮肤) # │ │ │ ├── TagIntTable.java (整数表) # │ │ │ ├── Tag_edit_data_copy.java (编辑数据) # │ │ │ └── Tag_edit_data_copy_style.java(样式) # │ │ │ # └──────────────────┘ │ ├── x64/ # ┌──────────────────┐ │ └── export/ # │ 64 位专用模块 │ │ ├── MemoryOperationUtilsX64.java # │ 4 个 Java 文件 │ │ ├── RegistryOperationUtilsX64.java # │ │ │ ├── DebugBreakPointX64.java # │ 64 位内存操作 │ │ └── ApiHookOperationUtilsX64.java # │ 64 位注册表 │ │ # │ 64 位硬件断点 │ │ # │ 64 位 API Hook │ │ # └──────────────────┘ │ └── x86/ # ┌──────────────────┐ └── export/ # │ 32 位专用模块 │ ├── MemoryOperationUtilsX86.java # │ 4 个 Java 文件 │ ├── RegistryOperationUtilsX86.java # │ │ ├── DebugBreakPointX86.java # │ 32 位内存操作 │ └── ApiHookOperationUtilsX86.java # │ 32 位注册表 │ # │ 32 位硬件断点 │ # │ 32 位 API Hook │ # └──────────────────┘ ``` --- ## 三、架构总览 ``` ┌─────────────────────────┐ │ App.java (入口层) │ └────────────┬────────────┘ │ 调用 ┌──────────────────────────┼──────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌───────────────────┐ ┌──────────────────┐ │ AI 集成层 │ │ 业务组件层 │ │ 高级工具层 │ │ ───────── │ │ ───────── │ │ ───────── │ │ ClaudeCode │ │ AnimatedBorder │ │ PhotoshopTool │ │ CozeAI │ │ ImageEditorTool │ │ PhotoshopJS │ │ RunNingHubAI │ │ VideoBackground │ │ PowerShell │ └────────┬────────┘ └────────┬───────────┘ │ CommandShell │ │ │ │ EMailUtils │ │ │ │ CaptchaGenerator│ │ │ │ CapStone │ ▼ ▼ └────────┬─────────┘ ┌──────────────────────────────────────────────────────────────────────┐ │ 工具封装层 (export) │ │ ────────────────────────────────────── │ │ WindowOperationUtils │ ProcessAndThreadUtils │ SystemUtils │ │ ByteUtils │ ColorUtils │ IniConfig │ PathFileJSCM │ URLDateTime │ │ DdDriver │ GhostDriver │ MdDriver │ WebDriverAutoJson │ └─────────────────────────────────┬────────────────────────────────────┘ │ 调用 ▼ ┌──────────────────────────────────────────────────────────────────────┐ │ 基础设施层 (Infrastructure) │ │ │ │ ┌──────────────────────┐ ┌──────────┐ ┌──────────────────────┐ │ │ │ ModuleOperationUtils │ │ pfunc │ │ struct │ │ │ │ JNI.java │ │ 回调接口 │ │ 数据结构 & 枚举 │ │ │ │ (~4963行, native方法)│ │ (47接口) │ │ (80+枚举, 40+结构) │ │ │ └──────────┬───────────┘ └──────────┘ └──────────────────────┘ │ │ │ │ │ ┌────────┴────────┬──────────────┬──────────────┐ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ XCGUI 349+ JadeView 85+ Win32 API 键鼠驱动 DLL │ │ 炫彩界面库 WebView2引擎 原生调用 DD/Ghost/Md │ └──────────────────────────────────────────────────────────────────────┘ │ ▼ System.load("Jscm.dll") ┌──────────────────────────────────────────────────────────────────────┐ │ Jscm.dll (原生 C/C++ 动态链接库) │ │ x86 (32位) / x64 (64位) │ └──────────────────────────────────────────────────────────────────────┘ ``` --- ## 四、模块详解 --- ### 4.1 ModuleOperationUtilsJNI — JNI 总入口 > **文件**: `com/scm/all/export/ModuleOperationUtilsJNI.java` > **规模**: ~4,963 行 · 包含全部 `native` 方法声明 > **职责**: DLL 加载、系统架构检测、所有原生 API 的 Java 侧入口 #### DLL 加载机制 ```java static { if (systemIs32()) { System.load(tileDir() + "Jscm.dll"); } if (systemIs64()) { System.load(tileDir() + "Jscm.dll"); } } ``` - 通过 `PathFileJSCM` 配置 DLL 搜索路径(开发模式 / 发布模式) - 自动检测 `sun.arch.data.model` 判断 32/64 位 #### 主要 native 方法分类 | 分类 | 代表方法 | 说明 | |:---|:---|:---| | **窗口操作** | `FindWindowW`, `ShowWindow`, `SetWindowPos`, `SendMessageW` | Win32 窗口 API | | **进程线程** | `CreateToolhelp32Snapshot`, `OpenProcess`, `CreateRemoteThread` | 进程/线程管理 | | **内存操作** | `ReadProcessMemory`, `WriteProcessMemory`, `VirtualQueryEx` | 跨进程内存读写 | | **XCGUI** | `XInitXCGUI`, `XWnd_Create`, `XBtn_Create`, `XRunXCGUI` | 炫彩 UI 全量封装 | | **JadeView** | `JadeView_Init`, `JadeView_Create_Webview_Window_`, `JadeView_Subscribe_On` | WebView2 引擎 | | **键鼠驱动** | `DDBtn`, `DDMov`, `M_Delay`, `GetDeviceListByModel` | DD/Ghost/Md 驱动 | | **反汇编** | `CapStone_cs_open`, `CapStone_cs_disasm`, `CapStone_cs_free` | CapStone 引擎 | | **硬件断点** | `RunHardwareBreakpointX86/X64`, `CallBack_DataX86/X64` | 硬件调试断点 | | **模块枚举** | `Module32FirstW`, `Module32NextW`, `GetModuleHandleW` | DLL 模块遍历 | | **注册表** | `RegOpenKeyExW`, `RegSetValueExW`, `RegDeleteKeyW` | 注册表 CRUD | --- ### 4.2 WindowOperationUtils — 窗口操作封装 > **文件**: `com/scm/all/export/WindowOperationUtils.java` > **职责**: 对 `ModuleOperationUtilsJNI` 中窗口相关 native 方法的二次封装,提供更友好的 API ```java // 查找并关闭窗口 WindowOperationUtils.enumWindowClose("Notepad", null); // 嵌入桌面(隐藏任务栏按钮) WindowOperationUtils.windowEmbeddedDesktop(hwnd); // 窗口置顶 WindowOperationUtils.windowTop(hwnd, true, 0); // 获取 Swing JFrame 的 HWND int hwnd = WindowOperationUtils.GetSwingWindowHandle(jframe); // 坐标转换 TagPoint screen = WindowOperationUtils.ClientToScreenPos(hwnd, 100, 200); TagPoint client = WindowOperationUtils.ScreenToClientPos(hwnd, 100, 200); // 设置圆角 WindowOperationUtils.windowSetRoundedCorners(hwnd, 800, 600); ``` | 方法 | 说明 | |:---|:---| | `windowInvalidateRect(hwnd, repaint)` | 重绘窗口区域 | | `windowSetWindowLongW(hwnd)` | 隐藏任务栏按钮 | | `windowGetDesktopWindow()` | 获取桌面窗口句柄 | | `enumWindowClose(className, title)` | 枚举并关闭窗口 | | `windowEmbeddedDesktop(hwnd)` | 将窗口嵌入桌面 | | `windowSetAlpha(hwnd, alpha)` | 设置窗口透明度 | | `windowTop(hwnd, activate, flag)` | 窗口置顶 | | `windowGetRootHwnd(hwnd)` | 获取顶级父窗口 | | `windowGetFatherHwnd(hwnd)` | 获取直接父窗口 | | `windowSetLocationSize(hwnd, x, y, w, h)` | 设置位置与大小 | | `ClientToScreenPos(hwnd, x, y)` | 客户区坐标→屏幕坐标 | | `ScreenToClientPos(hwnd, x, y)` | 屏幕坐标→客户区坐标 | --- ### 4.3 ProcessAndThreadUtils — 进程线程操作 > **文件**: `com/scm/all/export/ProcessAndThreadUtils.java` > **职责**: 进程枚举、线程管理、权限提升 ```java // 枚举所有进程 List procs = ProcessAndThreadUtils.processEnumInfo(); // 通过进程名获取 PID int pid = ProcessAndThreadUtils.processNameGetPid("chrome.exe"); // 获取当前进程 PID(纯 Java 实现) int myPid = ProcessAndThreadUtils.getCurrentProcessPID(); // 提升权限(调试权限) ProcessAndThreadUtils.elevatePrivileges(pid, 4); ``` | 方法 | 说明 | |:---|:---| | `processEnumInfo()` | 枚举所有进程(快照方式) | | `processNameGetPid(name)` | 按名称查找 PID | | `getCurrentProcessPID()` | 获取当前 JVM 进程 PID | | `elevatePrivileges(pid, level)` | 提升进程权限 | | `getProcessThreads(pid)` | 获取进程的所有线程 | --- ### 4.4 EmailUtils — 邮件收发子系统 > **包**: `com.scm.all.export.EmailUtils` > **依赖**: `javax.mail:1.6.2` > **协议**: SMTP (发信) / IMAP (收信) ```java // 1. 配置 IMAP 连接 Properties props = EMailUtils.addProperties( "imap.139.com", 993, "imap", true, true, true, 6000, 5000, false ); // 2. 创建会话并连接 Session session = EMailUtils.getSession(props, "user@139.com", "password"); Store store = EMailUtils.getStoreTow(session, "imap.139.com", "user@139.com", "password", "imap"); // 3. 安全获取邮件(自动重连 + FetchProfile 预取) EMailUtils.getEmailDataSafe(session, host, user, pass, "imap", "INBOX", store, (messages, folder, s) -> { EMailUtils.listSort(messages); // 最新在前 for (Message msg : messages) { if (!EMailUtils.isReadMall(msg)) { EMailUtils.setReadMall(msg, true); // 标记已读 } } } ); // 4. 发送邮件 EMailUtils.send("to@qq.com", "主题", "

正文

", "from@139.com", "password"); // 5. 心跳保活线程(60秒间隔 NOOP) Thread heartbeat = EMailUtils.createHeartbeatThread(store, "INBOX"); ``` | 方法 | 说明 | |:---|:---| | `addProperties(host, port, store, ssl, auth, starttls, ...)` | 创建邮件会话配置 | | `getSession(props, user, pass)` | 创建认证会话 | | `getStoreTow(session, host, user, pass, store)` | 连接 IMAP 并发送 ID 命令 | | `isStoreConnected(store)` | 检查连接有效性 | | `reconnect(session, host, user, pass, store)` | 指数退避自动重连 | | `getEmailDataSafe(...)` | 安全获取邮件(含自动重连) | | `getFolderRead / getFolderWrite` | 打开文件夹(带空值检查) | | `heartbeat(store, folder)` | NOOP 心跳保活 | | `listSort(messages)` | 按时间倒序排列 | | `isReadMall / setReadMall` | 已读状态管理 | | `getTextContent(message)` | 提取纯文本正文 | | `send / sendWithAttachment` | 发送邮件 | --- ### 4.5 hotkey — 键鼠驱动子系统 > **包**: `com.scm.all.export.hotkey` > **方案**: DD / Ghost / Md 三种硬件级键鼠模拟 #### DdDriver — DD 键鼠驱动 ```java DdDriver.btn(1); // 左键按下 DdDriver.btn(2); // 左键放开 DdDriver.mov(500, 300); // 鼠标绝对移动 DdDriver.movR(10, -5); // 鼠标相对移动 DdDriver.whl(1); // 滚轮向前 DdDriver.key(30, 1); // 按键按下 (虚拟键码30) DdDriver.key(30, 2); // 按键放开 DdDriver.str("Hello"); // 输入文本 ``` #### GhostDriver — 幽灵键鼠驱动(硬件设备) ```java String devices = GhostDriver.getDeviceListByModel(); GhostDriver.selectDeviceBySerialNumber("SN12345"); GhostDriver.isDeviceConnected(); GhostDriver.getModel(); // 设备型号 GhostDriver.getSerialNumber(); // 序列号 ``` #### MdDriver — Md 键鼠驱动 ```java MdDriver.m_Delay(100); // 延时 100ms MdDriver.m_DelayRandom(50, 200); // 随机延时 MdDriver.m_RandDomNbr(1, 100); // 随机数 MdDriver.m_GetDevSn(); // 获取设备序列号 MdDriver.m_GetAbsCfg(); // 读取绝对移动状态 ``` --- ### 4.6 Adobe Photoshop 自动化 > **包**: `com.scm.all.export.powerUtils.adobe` > **原理**: 通过 PowerShell 执行 COM 对象调用 Photoshop JavaScript > **规模**: 582+ 公开静态方法 #### PhotoshopTool — 全功能 PS 工具 ```java PhotoshopTool.setSilentMode(true); // 静默模式 PhotoshopTool.openDocument("C:\\photo.psd"); // 打开文档 PhotoshopTool.resizeImage(1920, 1080); // 调整图像大小 PhotoshopTool.applyGaussianBlurFilter(5.0); // 高斯模糊 PhotoshopTool.saveDocumentAs("C:\\out.jpg", "JPEG"); // 另存为 ``` | 功能分类 | 方法数 | 代表操作 | |:---|:---|:---| | 应用级别 (app.*) | 30+ | 版本信息、首选项、文件操作 | | 文档操作 (document.*) | 50+ | 新建/打开/保存/关闭/导出 | | 图层操作 (layer.*) | 80+ | 创建/删除/复制/合并/编组 | | 选区操作 (selection.*) | 40+ | 矩形/椭圆/套索/魔棒 | | 滤镜效果 (filter.*) | 100+ | 模糊/锐化/扭曲/渲染 | | 颜色调整 (adjustment.*) | 60+ | 色阶/曲线/色相/亮度 | | 通道操作 (channel.*) | 40+ | 创建/删除/计算 | | 图层样式 (layerStyle.*) | 70+ | 投影/发光/斜面/描边 | | 文本操作 (text.*) | 60+ | 创建/编辑/格式化 | | 变换操作 (transform.*) | 25+ | 缩放/旋转/斜切 | #### PhotoshopJS — 底层 JS 执行器 ```java PhotoshopJS.DoJavaScriptBool("app.activeDocument.saved"); // → boolean PhotoshopJS.DoJavaScriptString("app.activeDocument.name"); // → String PhotoshopJS.DoJavaScriptInt("app.activeDocument.width"); // → int ``` --- ### 4.7 AI 集成模块 > **包**: `com.scm.all.AI` > **三个独立子模块**: ClaudeCode / CozeAI / RunNingHubAI #### ClaudeCode — Ollama 本地大模型工具包 ```java // 最简用法 ClaudeCodeToolkit toolkit = new ClaudeCodeToolkit(); String response = toolkit.chat("你好"); // 指定模型 ClaudeCodeToolkit toolkit = new ClaudeCodeToolkit("qwen3:8b"); // 流式输出 toolkit.chatStream(resp -> System.out.print(resp.getContent())); // 多轮对话 toolkit.addSystemMessage("你是一个代码助手"); toolkit.addUserMessage("解释快速排序"); String reply = toolkit.chat(); // 底层客户端 OllamaClient client = new OllamaClient(); ChatResponse resp = client.chat("Hello"); client.chatWithImage("描述图片", base64Image); ``` | 子模块 | 文件 | 职责 | |:---|:---|:---| | `ClaudeCodeToolkit` | 主入口 | 聊天、流式输出、多轮对话 | | `OllamaClient` | client/ | Ollama HTTP API 客户端 | | `ConfigManager` | config/ | 配置管理(.env / 环境变量) | | `CloudLLMClient` | cloud/ | 云端 LLM 客户端 | | `SkillManager` | skills/ | 技能注册与调度 | #### CozeAI — Coze 工作流客户端 ```java CoZeWorkflowClient.setAccessToken("your-token"); String fileId = CoZeWorkflowClient.uploadFile("C:\\data.csv"); ``` | 功能 | 说明 | |:---|:---| | 文件上传 | multipart/form-data 上传到 Coze 服务器 | | 工作流执行 | 调用 Coze API 执行工作流 | | 进度回调 | `ProgressCallback` 接口实时获取进度 | #### RunNingHubAI — RunningHub 平台客户端 ```java RunningHubClient client = new RunningHubClient("your-api-key"); WorkflowApi workflow = client.workflow(); WebappApi webapp = client.webapp(); QuickAIAppApi quickAI = client.quickAIApp(); StandardModelApi model = client.standardModel(); ResourceApi resource = client.resource(); ``` | API | 能力 | |:---|:---| | `WorkflowApi` | 创建/查询/取消工作流任务 | | `WebappApi` | Web 应用调用 | | `QuickAIAppApi` | 快速 AI 应用 | | `StandardModelApi` | 标准模型对话(含多模态) | | `ResourceApi` | 资源上传/下载/管理 | --- ### 4.8 component — UI 组件引擎 > **包**: `com.scm.all.component` > **设计**: 无 GUI 纯后台引擎,输出 `byte[]` / `BufferedImage` 供外部渲染 #### AnimatedBorderEngine — 流光边框动画 ```java AnimatedBorderEngine.Instance engine = AnimatedBorderEngine.create(800, 600); engine.setBorderWidth(3); engine.setCornerRadius(12); engine.setSpeed(2.0f); engine.setColors(Color.RED, Color.BLUE, Color.GREEN); engine.setEnableBreath(true); // 呼吸灯效果 engine.start(); byte[] png = engine.renderToBytes(); // 输出 PNG 字节 engine.destroy(); ``` #### ImageEditorTool — 图像编辑器 - 背景图像管理、贴纸系统、鼠标事件处理 - 输出 `byte[]` 供外部渲染,不包含 Swing/AWT 界面 #### VideoBackgroundEngine — 视频背景引擎 ```java VideoBackgroundEngine.setFFmpegPath("D:/ffmpeg/bin/ffmpeg.exe", "D:/ffmpeg/bin/ffprobe.exe"); VideoBackgroundEngine.Instance engine = VideoBackgroundEngine.create(800, 600); engine.loadVideo("C:/video.mp4"); // 支持 MP4/AVI/MOV/MKV engine.start(); // 渲染循环中: engine.update() → engine.draw(graphics) ``` --- ### 4.9 capstone — 反汇编引擎 > **包**: `com.scm.all.export.capstone` > **注意**: 不适合循环使用 ```java // 初始化 CapStone.CapStone_cs_open(TAG_CS_ARCH.CS_ARCH_X86, TAG_CS_MODE.CS_MODE_32); // 反汇编 byte[] opcode = {(byte)0x90, (byte)0xCC}; CapStone.CapStone_cs_disasm(opcode, 0x401000, new Tag_cs_insnCallBack() { public void callback(String mnemonic, String opStr, int size) { System.out.println(mnemonic + " " + opStr); } }); // 释放 CapStone.CapStone_cs_free(); ``` --- ### 4.10 powerUtils — 系统脚本工具 > **包**: `com.scm.all.export.powerUtils` | 类 | 职责 | |:---|:---| | `PowerShell` | 系统命令执行(`certutil` 下载等) | | `CommandShell` | CMD 命令执行(`netsh` 获取 MAC 等) | --- ### 4.11 x64/x86 — 平台专用模块 > **包**: `com.scm.x64.export` / `com.scm.x86.export` > **区别**: 地址类型不同(`long` vs `int`),API 签名对称 #### MemoryOperationUtils — 内存操作 ```java // 64 位内存操作 TagPmemory_Basic_InfoRmationX64 info = MemoryOperationUtilsX64.selectMemoryAddressAttribute(hProcess, 0x7FF600000000L); MemoryOperationUtilsX64.updateMemoryAddressAttribute(hProcess, addr, size, protect); byte[] data = MemoryOperationUtilsX64.readMemoryBytes(hProcess, addr, 256); MemoryOperationUtilsX64.writeMemoryInt(hProcess, addr, 0xDEADBEEF); MemoryOperationUtilsX64.searchMemory(hProcess, start, end, pattern, callback); ``` #### DebugBreakPoint — 硬件断点 ```java // 设置硬件断点(x86 示例) int threadId = ModuleOperationUtilsJNI.RunHardwareBreakpointX86(pid, 0x017478C0, 4, 3); // 断点回调 ModuleOperationUtilsJNI.CallBack_DataX86(pid, new BreakpointCallBackX86() { public void callback(int ExceptionAddress, int Eip, int Eax, ...) { System.out.println("断点命中: " + Integer.toHexString(ExceptionAddress)); } }); ``` #### ApiHookOperation — API Hook | 方法 | 说明 | |:---|:---| | `hookApi(module, func, newAddr)` | 挂钩指定 API | | `unhookApi(module, func)` | 取消挂钩 | | `getOriginalAddress(module, func)` | 获取原始地址 | --- ### 4.12 struct — 数据结构模块 > **包**: `com.scm.all.struct` #### 基础几何结构 | 结构体 | 字段 | 说明 | |:---|:---|:---| | `TagPoint` | `int x, y` | 整数坐标 | | `TagPointF` | `float x, y` | 单精度坐标 | | `TagPointD` | `double x, y` | 双精度坐标 | | `TagRect` | `int left, top, right, bottom` | 矩形区域 | | `TagRectF` | `float left, top, right, bottom` | 浮点矩形 | | `TagSize` | `int width, height` | 尺寸 | | `TagPosition` | `int x, y` | 位置 | | `TagBorderSize` | `int top, right, bottom, left` | 边框尺寸 | | `TagPadDingSize` | `int top, right, bottom, left` | 内边距 | | `TagMarginSize_` | `int top, right, bottom, left` | 外边距 | #### 系统结构 | 结构体 | 说明 | |:---|:---| | `TagProcessenTry32` | 进程快照信息(PID、线程数、名称) | | `TagThreadEntry32` | 线程快照信息(TID、PID、优先级) | | `TagModuleenTry32/X64/X86` | 模块快照信息(基址、大小、路径) | | `TagMemoryDataX64/X86` | 内存数据块 | | `TagPmemory_Basic_InfoRmationX64/X86` | 内存页基本信息 | | `TagINPUT` | Windows INPUT 结构(鼠标/键盘事件) | | `TagWinInfo` | 窗口信息 | | `TagTokenPrivileges` | 令牌权限信息 | #### JadeView 结构 | 结构体 | 说明 | |:---|:---| | `WebViewWindowOptions` | WebView 窗口选项(标题/大小/样式/主题) | | `WebViewSettings` | WebView 运行设置(UA/预加载/白名单) | | `FileDialogParams` | 文件对话框参数 | | `MessageBoxParams` | 消息框参数 | | `NotificationParams` | 系统通知参数 | | `TrayMenuItemDesc` | 托盘菜单项描述 | #### XC_Enum 枚举常量(70+ 文件) | 分类 | 代表枚举 | |:---|:---| | 窗口 | `WindowStyle` / `WindowStateFlag` / `WindowTransparent` / `WindowID` / `ZOrder` | | 控件 | `ButtonState` / `EditType` / `ComboBoxState` / `ListBoxStateFlag` / `ListViewStateFlag` | | 布局 | `LayoutAlign` / `LayoutSize` / `PaneAlign` / `PaneState` / `AdjustLayout` | | 渲染 | `D2D1AlphaMode` / `D2D1RenderTargetType` / `DXGIFormat` / `ImageDrawType` | | 其他 | `FontStyle` / `WindowsCursor` / `AnimationMove` / `EaseType` / `BreakpointType` | --- ### 4.13 pfunc — 回调接口模块 > **包**: `com.scm.all.pfunc` > **总计**: 37 个标准回调 + 10 个 Nonvirtual 变体 | 接口 | 签名 | 用途 | |:---|:---|:---| | `JscmCallBack` | `callback(int, int)` | 窗口枚举等通用回调 | | `IpcCallback` | `app_ready_callback(int, String)` | JadeView IPC 通信 | | `IpcHandlerCallback` | `handler(int, String)` | IPC 处理器 | | `MemoryCallBack` | `callback(int, byte[])` | 内存搜索结果 | | `ModuleCallBack` | `callback(int, TagModuleenTry*)` | 模块枚举 | | `WindowEventCallBack` | `callback(int, int)` | 窗口事件 | | `XEleEventCallBack` | `callback(int, int)` | XC 元素事件 | | `ThreadUICallBack` | - | 线程 UI 更新 | | `BreakpointCallBackX64` | - | 64 位断点命中(含完整寄存器上下文) | | `BreakpointCallBackX86` | - | 32 位断点命中 | | `CGridppReportEventHandler` | - | Grid++ 报表事件 | **Nonvirtual 变体**: 避免 JNI 虚函数调用开销的优化版本,与原接口功能一致。 --- ## 五、Maven 依赖 | 依赖 | 版本 | 用途 | |:---|:---|:---| | `commons-lang3` | 3.12.0 | Apache 通用工具类(StringUtils 等) | | `javax.mail` | 1.6.2 | JavaMail 邮件收发(IMAP/SMTP) | | `jackson-annotations` | 2.19.2 | JSON 序列化注解 | | `jackson-databind` | 2.19.2 | JSON 对象映射 | | `okhttp` | 3.8.1 | HTTP 客户端(AI 模块使用) | | `ffmpeg` | 0.8.0 | FFmpeg Java 封装(视频背景引擎) | | `junit` | 4.13.2 | 单元测试框架(test scope) | --- ## 六、构建与运行 ### 环境要求 | 项目 | 要求 | |:---|:---| | 操作系统 | Windows 7 及以上 | | JDK | 8 或更高版本 | | 构建工具 | Maven 3.x | | 原生依赖 | `Jscm.dll`(必须区分 x86/x64 版本) | ### DLL 路径配置 ```java // 方式一:开发模式 — 指定绝对路径 PathFileJSCM.setDebugFile32("C:\\path\\to\\x86\\"); PathFileJSCM.setDebugFile64("C:\\path\\to\\x64\\"); PathFileJSCM.setIsDebug(false); // 方式二:发布模式 — DLL 放在 JAR 同级目录的 x86/ 或 x64/ 子目录下 // 无需手动配置,框架自动从 java.class.path 推断 ``` ### 构建命令 ```bash mvn compile # 编译 mvn package # 打包 JAR mvn test # 运行测试 ``` --- ## 七、快速开始示例 ### 示例 1: JadeView WebView2 窗口 ```java // 1. 订阅 app-ready 全局事件 ModuleOperationUtilsJNI.JadeView_Subscribe_On(-1, "app-ready", new IpcCallback() { @Override public int app_ready_callback(int windowId, String eventData) { String path = ModuleOperationUtilsJNI.JadeView_Set_Protocol_Service_Path_("E:\\web\\"); WebViewWindowOptions options = WebViewWindowOptions.createDefault(); WebViewSettings settings = WebViewSettings.createDefault(); ModuleOperationUtilsJNI.JadeView_Create_Webview_Window_(path, 0, options, settings); return 0; } }); // 2. 初始化 JadeView int windowId = ModuleOperationUtilsJNI.JadeView_Init(1, "E:\\web\\1.txt", "", "Theme", "com.jadeview.layer", 0); // 3. 订阅 crash 事件 ModuleOperationUtilsJNI.JadeView_Subscribe_On(windowId, "crash", new IpcCallback() { @Override public int crash_callback(int windowId, String eventData) { System.err.println("Crash: " + eventData); return 0; } }); ``` ### 示例 2: XCGUI 炫彩界面 ```java ModuleOperationUtilsJNI.XInitXCGUI(true); ModuleOperationUtilsJNI.XC_EnableResMonitor(true); ModuleOperationUtilsJNI.XC_EnableAutoRedrawUI(true); int hWindow = ModuleOperationUtilsJNI.XWnd_Create(0, 0, 600, 400, "我的窗口", 0, WindowStyle.window_style_default.getValue()); ModuleOperationUtilsJNI.XWnd_Show(hWindow, true); ModuleOperationUtilsJNI.XWnd_AdjustLayout(hWindow); ModuleOperationUtilsJNI.XRunXCGUI(); // 消息循环(阻塞) ModuleOperationUtilsJNI.XExitXCGUI(); ``` ### 示例 3: AI 对话 (Ollama) ```java ClaudeCodeToolkit toolkit = new ClaudeCodeToolkit("qwen3:8b"); String response = toolkit.chat("用 Java 写一个快速排序"); System.out.println(response); ``` ### 示例 4: 进程内存读取 ```java // 提升调试权限 ProcessAndThreadUtils.elevatePrivileges(ProcessAndThreadUtils.getCurrentProcess(), 4); // 查找目标进程 int pid = ProcessAndThreadUtils.processNameGetPid("target.exe"); int hProcess = ModuleOperationUtilsJNI.OpenProcess(0x1F0FFF, false, pid); // 读取内存 byte[] buffer = new byte[256]; ModuleOperationUtilsJNI.ReadProcessMemory(hProcess, 0x00400000L, buffer, buffer.length, 0); // 关闭句柄 ModuleOperationUtilsJNI.CloseHandle(hProcess); ``` ### 示例 5: 键鼠模拟 (DD 驱动) ```java DdDriver.mov(960, 540); // 移动鼠标到屏幕中央 DdDriver.btn(1); // 左键按下 DdDriver.btn(2); // 左键放开 DdDriver.str("Hello"); // 输入文本 ``` --- ## 八、文件统计 | 模块 | 文件数 | 说明 | |:---|:---|:---| | `com.scm.all.AI` | 27 | AI 集成(3 个子平台) | | `com.scm.all.component` | 3 | UI 组件引擎 | | `com.scm.all.export` | 26 | 核心导出工具类 | | `com.scm.all.export.EmailUtils` | 2 | 邮件子系统 | | `com.scm.all.export.VerificationCodeUtils` | 1 | 验证码 | | `com.scm.all.export.capstone` | 6 | 反汇编引擎 | | `com.scm.all.export.hotkey` | 6 | 键鼠驱动 | | `com.scm.all.export.powerUtils` | 7 | 高级工具/PS 自动化 | | `com.scm.all.pfunc` | 37 | 回调接口 | | `com.scm.all.pfunc.Nonvirtual` | 10 | 非虚回调变体 | | `com.scm.all.struct.Enum.XC_Enum` | 70+ | XC 枚举常量 | | `com.scm.all.struct.Enum.JadeView_Enum` | 2 | JadeView 枚举 | | `com.scm.all.struct.Enum.ReportGrid_Enum` | 1 | 报表枚举 | | `com.scm.all.struct.JadeView_struct` | 6 | JadeView 结构体 | | `com.scm.all.struct.Tag*` | 38 | 基础数据结构 | | `com.scm.x64.export` | 4 | 64 位专用 | | `com.scm.x86.export` | 4 | 32 位专用 | | 根目录 | 1 | App.java 入口 | | **总计** | **249** | **~70,814 行代码** |