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)
**发布 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**
本版本主要增强远程桌面设置持久化、文件管理功能,并改进授权和键盘转发。

View File

@@ -206,6 +206,31 @@ For cross-network, cross-border, or international remote control system deployme
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):**
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>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>zlib\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -159,7 +159,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>zlib\zlib_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>

View File

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

View File

@@ -7,7 +7,7 @@
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
#include <winres.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
@@ -88,7 +88,7 @@ IDR_WAVE WAVE "Res\\msg.wav"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,2,2
FILEVERSION 1,0,2,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.2.2"
VALUE "FileVersion", "1.0.2.3"
VALUE "InternalName", "ServerDll.dll"
VALUE "LegalCopyright", "Copyright (C) 2019-2026"
VALUE "OriginalFilename", "ServerDll.dll"

View File

@@ -5,6 +5,10 @@
#include <iostream>
#include <tlhelp32.h>
#ifndef IMAGE_FILE_MACHINE_ARM64
#define IMAGE_FILE_MACHINE_ARM64 0xAA64
#endif
DWORD HashFunctionName(LPSTR name);
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>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<SubSystem>Windows</SubSystem>
@@ -155,7 +155,7 @@
<DisableSpecificWarnings>4018;4244;4267;4819;4838</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<SubSystem>Windows</SubSystem>

View File

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

View File

@@ -2,6 +2,13 @@
#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
enum PkgMaskType {

View File

@@ -556,6 +556,34 @@ Release v1.1.4
* 功能: 文件管理对话框支持压缩文件
* 改进: 添加 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]
@@ -875,3 +903,30 @@ This release enhances remote desktop settings persistence, file management featu
* Improve: Showing file transmit progress dialog
* Feature: Support compress files in file management dialog
* 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
{
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);
#endif
return client_ip;
}
virtual int GetPort() const override

View File

@@ -731,7 +731,12 @@ public:
virtual std::string GetPeerName() const override
{
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);
#endif
return client_ip;
}
virtual int GetPort() const override

View File

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

View File

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