Compare commits
2 Commits
9acd141cab
...
95946e0e6a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95946e0e6a | ||
|
|
ab7a16bec5 |
34
ReadMe.md
34
ReadMe.md
@@ -525,6 +525,40 @@ cd macos
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.3.3 (2026.5.10)
|
||||
|
||||
**Linux/macOS 客户端深化 & 双层认证安全 & 跨平台共享代码重构**
|
||||
|
||||
**新功能:**
|
||||
- **服务端身份校验(Layer 1)**:Linux/macOS 客户端 HMAC-SHA256 校验服务端身份,未授权服务端无法触发任何子连接
|
||||
- **子连接认证(Layer 2,TOKEN_CONN_AUTH)**:所有子连接首包签名 + clientID 钉死,解决 NAT/127.0.0.1 路由错位
|
||||
- **Linux 客户端**:H.264 硬件编码(动态加载 libx264)、XFixes 光标类型检测、UTF-8 协议能力位
|
||||
- **macOS 客户端**:文件管理器、远程终端(共享 PTYHandler)、剪贴板同步、守护进程模式 (-d)、电源管理、屏幕锁定/空闲检测、CGDisplayStream 推送模式优化
|
||||
- **主控**:屏幕预览缩略图、区域截图、远程桌面缩放、Web 用户按组过滤、嵌入式现代终端、自适应屏幕算法、外部资源覆盖、分组持久化、Build Dialog 支持生成 macOS 客户端
|
||||
|
||||
**重构:**
|
||||
- Linux/macOS 客户端共享代码抽到 `common/`(rtt_estimator / client_auth_state / posix_net_helpers / sub_conn_thread),减少 ~300 行重复
|
||||
|
||||
**改进:**
|
||||
- 现代终端 SYSTEM 兼容:自动回退到经典终端,信息列表给出精确原因
|
||||
- `build.ps1` 增加 `vswhere` 兜底(VS 装非默认盘也能找到)
|
||||
- 强制 `/source-charset:utf-8 /execution-charset:.936` 解决英语 Windows 编译中文乱码
|
||||
- macOS `install.sh` 源 binary 优先级优化(命令行 → 同目录 → build/bin),适配分发场景
|
||||
|
||||
**Bug 修复:**
|
||||
- V2 文件传输在文件管理器对话框双向均损坏(上传 IP 路由错乱 + 下载 chunk 未分发)
|
||||
- 现代终端在 SYSTEM 权限下空白(WebView2 不支持 LocalSystem)
|
||||
- Linux 客户端 UTF-8 路径/活动窗口在服务端乱码
|
||||
- 日志列表表头点击错排序到主机列表
|
||||
- LVM_SETUNICODEFORMAT 后表头排序失效(补充 HDN_ITEMCLICKW 映射)
|
||||
- 服务+代理 Release 模式托盘图标不显示
|
||||
- macOS/Linux 客户端分组变更后未重发 LOGIN_INFOR
|
||||
- 文件对话框 map 野指针崩溃
|
||||
- 重连时未清回调导致访问已销毁 handler 崩溃
|
||||
- MFC 与 Web 远程桌面会话未完全独立
|
||||
- macOS 锁屏状态远程桌面启动时未唤醒显示器
|
||||
- MFC 远程桌面触控板双指滚动失效
|
||||
|
||||
### v1.3.2 (2026.5.1)
|
||||
|
||||
**macOS 客户端 & Web 远程桌面增强**
|
||||
|
||||
34
ReadMe_EN.md
34
ReadMe_EN.md
@@ -510,6 +510,40 @@ cd macos
|
||||
|
||||
## Changelog
|
||||
|
||||
### v1.3.3 (2026.5.10)
|
||||
|
||||
**Linux/macOS Client Maturation & Two-Layer Auth & Cross-Platform Code Refactor**
|
||||
|
||||
**New Features:**
|
||||
- **Server Identity Verification (Layer 1)**: Linux/macOS clients verify server via HMAC-SHA256; unauthorized server cannot trigger any sub-connection
|
||||
- **Sub-Connection Auth (Layer 2, TOKEN_CONN_AUTH)**: All sub-connections sign first packet + clientID pinned, eliminates NAT/127.0.0.1 routing mismatches
|
||||
- **Linux Client**: H.264 hardware encoding (dynamic libx264 loading), XFixes cursor type detection, UTF-8 protocol capability bit
|
||||
- **macOS Client**: File manager, remote terminal (shared PTYHandler), clipboard sync, daemon mode (-d), power management, screen lock/idle detection, CGDisplayStream push-mode optimization
|
||||
- **Master**: Screen preview thumbnail, region screenshot, remote desktop zoom, Web user group filtering, embedded modern terminal, adaptive screen algorithm, external resource override, group name persistence, Build Dialog support for generating macOS client
|
||||
|
||||
**Refactor:**
|
||||
- Linux/macOS client shared code extracted to `common/` (rtt_estimator / client_auth_state / posix_net_helpers / sub_conn_thread), ~300 lines duplication removed
|
||||
|
||||
**Improvements:**
|
||||
- Modern Terminal SYSTEM compatibility: auto fallback to classic terminal with precise reason in info list
|
||||
- `build.ps1` adds `vswhere` fallback (finds VS installed on non-default drives)
|
||||
- Force `/source-charset:utf-8 /execution-charset:.936` to fix Chinese garbling when compiling on English Windows
|
||||
- macOS `install.sh` source binary priority optimized (command-line → script dir → build/bin), better suits distribution scenarios
|
||||
|
||||
**Bug Fixes:**
|
||||
- V2 file transfer broken in both directions in FileManager dialog (upload IP routing errors + download chunks not dispatched)
|
||||
- Modern Terminal blank under SYSTEM (WebView2 does not support LocalSystem)
|
||||
- Linux client UTF-8 path/active-window garbled on server
|
||||
- Log list header click incorrectly sorted host list
|
||||
- Header sort broken after LVM_SETUNICODEFORMAT (HDN_ITEMCLICKW mapping added)
|
||||
- Tray icon not showing in Release service+agent mode
|
||||
- macOS/Linux clients did not resend LOGIN_INFOR after group change
|
||||
- File dialog map dangling pointer crashes
|
||||
- Reconnect crash from not clearing callback before destruction
|
||||
- MFC and Web remote desktop sessions not fully independent
|
||||
- macOS locked screen: display not woken on remote desktop start
|
||||
- MFC remote desktop touchpad two-finger scroll not working
|
||||
|
||||
### v1.3.2 (2026.5.1)
|
||||
|
||||
**macOS Client & Web Remote Desktop Enhancement**
|
||||
|
||||
34
ReadMe_TW.md
34
ReadMe_TW.md
@@ -509,6 +509,40 @@ cd macos
|
||||
|
||||
## 更新日誌
|
||||
|
||||
### v1.3.3 (2026.5.10)
|
||||
|
||||
**Linux/macOS 用戶端深化 & 雙層認證安全 & 跨平台共享程式碼重構**
|
||||
|
||||
**新功能:**
|
||||
- **服務端身分校驗(Layer 1)**:Linux/macOS 用戶端 HMAC-SHA256 校驗服務端身分,未授權服務端無法觸發任何子連線
|
||||
- **子連線認證(Layer 2,TOKEN_CONN_AUTH)**:所有子連線首包簽章 + clientID 鎖定,解決 NAT/127.0.0.1 路由錯位
|
||||
- **Linux 用戶端**:H.264 硬體編碼(動態載入 libx264)、XFixes 游標類型偵測、UTF-8 協議能力位
|
||||
- **macOS 用戶端**:檔案管理員、遠端終端機(共享 PTYHandler)、剪貼簿同步、守護程序模式 (-d)、電源管理、螢幕鎖定/閒置偵測、CGDisplayStream 推送模式最佳化
|
||||
- **主控**:螢幕預覽縮圖、區域截圖、遠端桌面縮放、Web 使用者依群組過濾、嵌入式現代終端、自適應螢幕演算法、外部資源覆蓋、群組持久化、Build Dialog 支援產生 macOS 用戶端
|
||||
|
||||
**重構:**
|
||||
- Linux/macOS 用戶端共享程式碼抽到 `common/`(rtt_estimator / client_auth_state / posix_net_helpers / sub_conn_thread),減少約 300 行重複
|
||||
|
||||
**改進:**
|
||||
- 現代終端 SYSTEM 相容:自動回退到經典終端,資訊列表給出精確原因
|
||||
- `build.ps1` 新增 `vswhere` 兜底(VS 裝在非預設磁碟也能找到)
|
||||
- 強制 `/source-charset:utf-8 /execution-charset:.936` 解決英語 Windows 編譯中文亂碼
|
||||
- macOS `install.sh` 來源 binary 優先順序最佳化(命令列 → 同目錄 → build/bin),適配分發場景
|
||||
|
||||
**Bug 修復:**
|
||||
- V2 檔案傳輸在檔案管理器對話方塊雙向均損壞(上傳 IP 路由錯亂 + 下載 chunk 未分發)
|
||||
- 現代終端在 SYSTEM 權限下空白(WebView2 不支援 LocalSystem)
|
||||
- Linux 用戶端 UTF-8 路徑/作用視窗在服務端亂碼
|
||||
- 日誌列表表頭點擊錯誤排序到主機列表
|
||||
- LVM_SETUNICODEFORMAT 後表頭排序失效(補充 HDN_ITEMCLICKW 對應)
|
||||
- 服務+代理 Release 模式系統匣圖示不顯示
|
||||
- macOS/Linux 用戶端群組變更後未重發 LOGIN_INFOR
|
||||
- 檔案對話方塊 map 中野指標導致崩潰
|
||||
- 重連時未清回呼導致存取已銷毀 handler 崩潰
|
||||
- MFC 與 Web 遠端桌面工作階段未完全獨立
|
||||
- macOS 鎖屏狀態遠端桌面啟動時未喚醒顯示器
|
||||
- MFC 遠端桌面觸控板雙指捲動失效
|
||||
|
||||
### v1.3.2 (2026.5.1)
|
||||
|
||||
**macOS 用戶端 & Web 遠端桌面增強**
|
||||
|
||||
@@ -88,7 +88,7 @@ IDR_WAVE WAVE "Res\\msg.wav"
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,3,2
|
||||
FILEVERSION 1,0,3,3
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
@@ -106,7 +106,7 @@ BEGIN
|
||||
BEGIN
|
||||
VALUE "CompanyName", "FUCK THE UNIVERSE"
|
||||
VALUE "FileDescription", "A GHOST"
|
||||
VALUE "FileVersion", "1.0.3.2"
|
||||
VALUE "FileVersion", "1.0.3.3"
|
||||
VALUE "InternalName", "ServerDll.dll"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2019-2026"
|
||||
VALUE "OriginalFilename", "ServerDll.dll"
|
||||
|
||||
Binary file not shown.
BIN
linux/ghost
BIN
linux/ghost
Binary file not shown.
BIN
macos/ghost
Normal file
BIN
macos/ghost
Normal file
Binary file not shown.
@@ -3,18 +3,32 @@
|
||||
# 用法: ./install.sh [ghost路径]
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
GHOST_SRC="${1:-$SCRIPT_DIR/build/bin/ghost}"
|
||||
APP_DIR="/Applications/GhostClient.app"
|
||||
APP_BIN="$APP_DIR/Contents/MacOS/ghost"
|
||||
|
||||
# 源 binary 优先级:
|
||||
# 1) 命令行参数显式指定
|
||||
# 2) 脚本同目录的 ghost(拷贝分发场景,不带源码/不重编)
|
||||
# 3) build/bin/ghost(标准构建产物)
|
||||
if [ -n "$1" ]; then
|
||||
GHOST_SRC="$1"
|
||||
elif [ -f "$SCRIPT_DIR/ghost" ]; then
|
||||
GHOST_SRC="$SCRIPT_DIR/ghost"
|
||||
else
|
||||
GHOST_SRC="$SCRIPT_DIR/build/bin/ghost"
|
||||
fi
|
||||
|
||||
echo "=== GhostClient 安装程序 ==="
|
||||
echo ""
|
||||
|
||||
# 检查源文件
|
||||
if [ ! -f "$GHOST_SRC" ]; then
|
||||
echo "错误: 找不到 $GHOST_SRC"
|
||||
echo "错误: 找不到 ghost 二进制"
|
||||
echo " 尝试过: $SCRIPT_DIR/ghost"
|
||||
echo " 尝试过: $SCRIPT_DIR/build/bin/ghost"
|
||||
echo ""
|
||||
echo "请先编译: ./build.sh"
|
||||
echo "或将 ghost 二进制放到脚本同目录"
|
||||
echo "或指定路径: $0 <ghost可执行文件路径>"
|
||||
exit 1
|
||||
fi
|
||||
@@ -68,8 +82,12 @@ EOF
|
||||
echo "[4/7] 清除隔离属性..."
|
||||
sudo xattr -cr "$APP_DIR"
|
||||
|
||||
# 5. 签名应用
|
||||
echo "[5/7] 签名应用..."
|
||||
# 5. 签名应用(ad-hoc 重签)
|
||||
# 必须步骤:Apple Silicon 上未签 / 签名失效的 binary 会被 AMFI 直接 SIGKILL。
|
||||
# 常见破坏签名的场景:服务端 BuildDlg 在 Windows 端 patch 了 binary 里的服务器
|
||||
# 地址 → 那一页的 SHA-256 hash 跟原签名块对不上 → AMFI 拒绝运行。
|
||||
# --force 替换旧签名,--deep 覆盖 bundle 内所有可执行项,--sign - 是 ad-hoc。
|
||||
echo "[5/7] 签名应用 (ad-hoc, 修复 binary 修改后的签名失效)..."
|
||||
sudo codesign --force --deep --sign - "$APP_DIR"
|
||||
|
||||
# 6. 添加到登录项(开机自启)
|
||||
|
||||
Binary file not shown.
@@ -104,6 +104,7 @@
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalOptions>/source-charset:utf-8 /execution-charset:.936 %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -138,6 +139,7 @@
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalOptions>/source-charset:utf-8 /execution-charset:.936 %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -172,6 +174,7 @@
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalOptions>/source-charset:utf-8 /execution-charset:.936 %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -208,6 +211,7 @@
|
||||
<OpenMPSupport>false</OpenMPSupport>
|
||||
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalOptions>/source-charset:utf-8 /execution-charset:.936 %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -231,6 +235,7 @@
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\linux\ghost" />
|
||||
<None Include="..\..\macos\ghost" />
|
||||
<None Include="..\..\Release\ghost.exe" />
|
||||
<None Include="..\..\Release\SCLoader.exe" />
|
||||
<None Include="..\..\Release\ServerDll.dll" />
|
||||
|
||||
@@ -328,6 +328,7 @@
|
||||
<None Include="lang\en_US.ini" />
|
||||
<None Include="lang\zh_TW.ini" />
|
||||
<None Include="res\3rd\TerminalModule_x64.dll" />
|
||||
<None Include="..\..\macos\ghost" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\ReadMe.md" />
|
||||
|
||||
@@ -28,6 +28,7 @@ enum Index {
|
||||
IndexGhostMsc,
|
||||
IndexTestRunMsc,
|
||||
IndexLinuxGhost,
|
||||
IndexMacGhost,
|
||||
OTHER_ITEM
|
||||
};
|
||||
|
||||
@@ -417,7 +418,7 @@ void CBuildDlg::OnBnClickedOk()
|
||||
MessageBoxL("Shellcode 只能向64位电脑注入,注入器也只能是64位!", "提示", MB_ICONWARNING);
|
||||
return;
|
||||
}
|
||||
if (index == IndexLinuxGhost) {
|
||||
if (index == IndexLinuxGhost || index == IndexMacGhost) {
|
||||
m_ComboCompress.SetCurSel(CLIENT_COMPRESS_NONE);
|
||||
m_SliderClientSize.SetPos(0);
|
||||
}
|
||||
@@ -477,6 +478,11 @@ void CBuildDlg::OnBnClickedOk()
|
||||
typ = CLIENT_TYPE_LINUX;
|
||||
szBuffer = ReadResource(IDR_LINUX_GHOST, dwFileSize, ResFileName::GHOST_LINUX);
|
||||
break;
|
||||
case IndexMacGhost:
|
||||
file = "ghost";
|
||||
typ = CLIENT_TYPE_MACOS;
|
||||
szBuffer = ReadResource(IDR_MACOS_GHOST, dwFileSize, ResFileName::GHOST_MACOS);
|
||||
break;
|
||||
case OTHER_ITEM: {
|
||||
m_OtherItem.GetWindowTextA(file);
|
||||
typ = -1;
|
||||
@@ -699,7 +705,18 @@ void CBuildDlg::OnBnClickedOk()
|
||||
std::vector<char> padding(size, time(0)%256);
|
||||
WriteBinaryToFile(strSeverFile.GetString(), padding.data(), size, -1);
|
||||
}
|
||||
MessageBoxL(_TR("生成成功! 文件位于:") + "\r\n" + strSeverFile + tip, "提示", MB_ICONINFORMATION);
|
||||
CString successMsg = _TR("生成成功! 文件位于:") + "\r\n" + strSeverFile + tip;
|
||||
// macOS binary 被 patch 后签名失效,AMFI 会 SIGKILL。提醒走 install.sh
|
||||
// (内部会 ad-hoc 重签) 或手动 codesign。
|
||||
if (typ == CLIENT_TYPE_MACOS) {
|
||||
successMsg += "\r\n\r\n";
|
||||
successMsg += _TR("提示: macOS 端 binary 已被修改导致签名失效,直接运行会被系统强杀。");
|
||||
successMsg += "\r\n";
|
||||
successMsg += _TR("推荐: 拷贝到 macOS 后运行 install.sh 安装 (脚本会自动重签)。");
|
||||
successMsg += "\r\n";
|
||||
successMsg += _TR("或手动重签:") + " codesign --force --sign - ghost";
|
||||
}
|
||||
MessageBoxL(successMsg, "提示", MB_ICONINFORMATION);
|
||||
}
|
||||
SAFE_DELETE_ARRAY(szBuffer);
|
||||
if (index == IndexTestRun_DLL) return;
|
||||
@@ -763,6 +780,7 @@ BOOL CBuildDlg::OnInitDialog()
|
||||
m_ComboExe.InsertStringL(IndexGhostMsc, "ghost.exe - Windows 服务");
|
||||
m_ComboExe.InsertStringL(IndexTestRunMsc, "TestRun - Windows 服务");
|
||||
m_ComboExe.InsertStringL(IndexLinuxGhost, "ghost - Linux x64");
|
||||
m_ComboExe.InsertStringL(IndexMacGhost, "ghost - Apple MacOS");
|
||||
m_ComboExe.InsertStringL(OTHER_ITEM, CString("选择文件"));
|
||||
m_ComboExe.SetCurSel(IndexTestRun_MemDLL);
|
||||
|
||||
@@ -864,9 +882,34 @@ CString CBuildDlg::GetFilePath(CString type, CString filter, BOOL isOpen)
|
||||
return "";
|
||||
}
|
||||
|
||||
// 选 Linux / macOS 客户端时禁用对它们不适用的 Windows-only 选项:
|
||||
// - 架构 (m_ComboBits):Linux/macOS binary 是固定架构的预编译资源
|
||||
// - 加壳 (m_ComboCompress):UPX / ShellCode AES 等都是 Windows PE 概念
|
||||
// - 高级 group:安装目录 / 程序名称 / 载荷类型 / 增肥 / 下载服务,全是 Windows 安装/伪装相关
|
||||
void CBuildDlg::EnableWindowsOnlyControls(BOOL enable)
|
||||
{
|
||||
static const int ids[] = {
|
||||
// 架构
|
||||
IDC_COMBO_BITS, IDC_STATIC_BUILD_ARCH,
|
||||
// 加壳
|
||||
IDC_COMBO_COMPRESS, IDC_STATIC_BUILD_PACK,
|
||||
// 高级 group + 内部所有控件
|
||||
IDC_STATIC_BUILD_ADVANCED,
|
||||
IDC_STATIC_PAYLOAD, IDC_STATIC_PAYLOAD2, IDC_STATIC_PAYLOAD3,
|
||||
IDC_STATIC_BUILD_PADDING, IDC_STATIC_DOWNLOAD,
|
||||
IDC_EDIT_INSTALL_DIR, IDC_EDIT_INSTALL_NAME,
|
||||
IDC_COMBO_PAYLOAD, IDC_SLIDER_CLIENT_SIZE,
|
||||
IDC_CHECK_FILESERVER, IDC_EDIT_DOWNLOAD_URL,
|
||||
};
|
||||
for (int id : ids) {
|
||||
if (CWnd* p = GetDlgItem(id)) p->EnableWindow(enable);
|
||||
}
|
||||
}
|
||||
|
||||
void CBuildDlg::OnCbnSelchangeComboExe()
|
||||
{
|
||||
auto n = m_ComboExe.GetCurSel();
|
||||
EnableWindowsOnlyControls(!(n == IndexLinuxGhost || n == IndexMacGhost));
|
||||
if (n == OTHER_ITEM) {
|
||||
CString name = GetFilePath(_T("dll"), _T("All Files (*.*)|*.*|DLL Files (*.dll)|*.dll|EXE Files (*.exe)|*.exe|"));
|
||||
if (!name.IsEmpty()) {
|
||||
|
||||
@@ -104,4 +104,7 @@ public:
|
||||
CString m_sDownloadUrl;
|
||||
afx_msg void OnBnClickedCheckFileserver();
|
||||
afx_msg void OnCbnSelchangeComboPayload();
|
||||
|
||||
// 选 Linux / macOS 客户端时禁用 Windows-only 选项(架构 / 加壳 / 高级 group)
|
||||
void EnableWindowsOnlyControls(BOOL enable);
|
||||
};
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
// 程序版本号 [建议格式: X.Y.Z]
|
||||
// 影响:关于对话框、标题栏
|
||||
#define BRAND_VERSION "1.3.2"
|
||||
#define BRAND_VERSION "1.3.3"
|
||||
|
||||
// 启动画面名称 [建议大写,更有 Logo 感]
|
||||
// 影响:启动画面 Logo 文字(大号艺术字体渲染)
|
||||
|
||||
@@ -1824,3 +1824,10 @@ IOCP
|
||||
无法识别远程主机=Unknown remote machine
|
||||
没有远程历史记录=No remote history
|
||||
算法自适应=Algorithm Adaptive
|
||||
; Build Dialog - English Translation
|
||||
; Format: Simplified Chinese=English
|
||||
; 用途: 生成 macOS 客户端成功提示新增的 3 条文案
|
||||
|
||||
提示: macOS 端 binary 已被修改导致签名失效,直接运行会被系统强杀。=Note: The macOS binary has been modified, invalidating its code signature. Running it directly will be killed by the system.
|
||||
推荐: 拷贝到 macOS 后运行 install.sh 安装 (脚本会自动重签)。=Recommended: Copy to macOS and run install.sh (the script re-signs automatically).
|
||||
或手动重签:=Or re-sign manually:
|
||||
|
||||
@@ -1815,3 +1815,10 @@ IOCP
|
||||
无法识别远程主机=无法识别远程主机
|
||||
没有远程历史记录=没有远程历史记录
|
||||
算法自适应=算法自适应
|
||||
; Build Dialog - Traditional Chinese Translation
|
||||
; Format: Simplified Chinese=Traditional Chinese
|
||||
; 用途: 生成 macOS 客户端成功提示新增的 3 条文案
|
||||
|
||||
提示: macOS 端 binary 已被修改导致签名失效,直接运行会被系统强杀。=提示: macOS 端 binary 已被修改導致簽章失效,直接執行會被系統強制終止。
|
||||
推荐: 拷贝到 macOS 后运行 install.sh 安装 (脚本会自动重签)。=推薦: 複製到 macOS 後執行 install.sh 安裝 (腳本會自動重新簽章)。
|
||||
或手动重签:=或手動重新簽章:
|
||||
|
||||
@@ -249,9 +249,10 @@
|
||||
#define IDB_BITMAP_CANCELSHARE 369
|
||||
#define IDD_DIALOG_PLUGIN_SETTINGS 370
|
||||
#define IDD_DIALOG_TRIGGER_SETTINGS 371
|
||||
#define IDR_BINARY7 371
|
||||
#define IDR_MODERN_TERMINAL 371
|
||||
#define IDB_BITMAP_TRIGGER 372
|
||||
#define IDR_BINARY7 372
|
||||
#define IDR_MACOS_GHOST 372
|
||||
#define IDB_BITMAP_WEBDESKTOP 373
|
||||
#define IDB_BITMAP_PLUGINCONFIG 374
|
||||
#define IDR_LANG_EN_US 380
|
||||
@@ -976,7 +977,7 @@
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 372
|
||||
#define _APS_NEXT_RESOURCE_VALUE 373
|
||||
#define _APS_NEXT_COMMAND_VALUE 33048
|
||||
#define _APS_NEXT_CONTROL_VALUE 2539
|
||||
#define _APS_NEXT_SYMED_VALUE 105
|
||||
|
||||
Reference in New Issue
Block a user