{"id":13539757,"url":"https://github.com/yuanyuanxiang/simpleremoter","last_synced_at":"2026-02-01T13:02:07.423Z","repository":{"id":38153396,"uuid":"164212551","full_name":"yuanyuanxiang/SimpleRemoter","owner":"yuanyuanxiang","description":"基于gh0st的远程控制器：实现了终端管理、进程管理、窗口管理、远程桌面、文件管理、语音管理、视频管理、服务管理、注册表管理等功能，优化全部代码及整理排版，修复内存泄漏缺陷，程序运行稳定。项目代码仅限于学习和交流用途。","archived":false,"fork":false,"pushed_at":"2025-03-30T12:19:38.000Z","size":5636,"stargazers_count":998,"open_issues_count":10,"forks_count":349,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-03-30T12:29:07.570Z","etag":null,"topics":["management-system","monitoring-tool","remote","remote-control","remote-work"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuanyuanxiang.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-05T12:23:14.000Z","updated_at":"2025-03-30T12:19:41.000Z","dependencies_parsed_at":"2024-10-25T05:26:49.836Z","dependency_job_id":"d6fdbee1-81a4-427a-8ccb-b67e7784a160","html_url":"https://github.com/yuanyuanxiang/SimpleRemoter","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuanyuanxiang%2FSimpleRemoter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuanyuanxiang%2FSimpleRemoter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuanyuanxiang%2FSimpleRemoter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuanyuanxiang%2FSimpleRemoter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuanyuanxiang","download_url":"https://codeload.github.com/yuanyuanxiang/SimpleRemoter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246767962,"owners_count":20830581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["management-system","monitoring-tool","remote","remote-control","remote-work"],"created_at":"2024-08-01T09:01:31.502Z","updated_at":"2025-12-25T10:43:03.070Z","avatar_url":"https://github.com/yuanyuanxiang.png","language":"C++","funding_links":[],"categories":["\u003ca id=\"1233584261c0cd5224b6e90a98cc9a94\"\u003e\u003c/a\u003e渗透\u0026\u0026offensive\u0026\u0026渗透框架\u0026\u0026后渗透框架","\u003ca id=\"783f861b9f822127dba99acb55687cbb\"\u003e\u003c/a\u003e工具","\u003ca id=\"74d9131b5ad95c569c0afb9ee5a3c9b9\"\u003e\u003c/a\u003eGh0st"],"sub_categories":["\u003ca id=\"80301821d0f5d8ec2dd3754ebb1b4b10\"\u003e\u003c/a\u003ePayload\u0026\u0026远控\u0026\u0026RAT","\u003ca id=\"b318465d0d415e35fc0883e9894261d1\"\u003e\u003c/a\u003e远控\u0026\u0026RAT","\u003ca id=\"dcb10cc6813a25815201b36bacdef198\"\u003e\u003c/a\u003e工具"],"readme":"﻿[简介]\n\n基于gh0st的远程控制器：实现了终端管理、进程管理、窗口管理、桌面管理、文件管理、语音管理、视频管理、服务管理、注册表管理等功能。\n\n来源：https://github.com/zibility/Remote\n\n日期：2019.1.1\n\n[更新日志]\n\n2019.1.5\n\n1、整理垃圾排版，优化上线下线处理逻辑。\n2、修复部分内存泄漏问题，改善线程处理逻辑。\n3、修复客户端不停断线重连的缺陷。解决部分内存泄漏缺陷。\n4、解决几处缺陷。【遗留问题】文件管理对话框释放资源导致第2次打开崩溃。\n\n2019.1.6\n\n1、改用EnumDisplaySettings获取屏幕大小，原方法获取屏幕大小不准。\n\n2、将FileManagerDlg、InputDlg、FileTransferModeDlg、TrueColorToolBar还原到gh0st最初版本。\n\n3、新增项目\"ghost\"，不通过TestRun调用dll，而是直接生成可执行文件。\n\n4、修复开启视频，客户端产生的一处内存泄漏缺陷，m_pCapture需要释放。\n\n2019.1.7\n\n1、ghost单台电脑只允许启动唯一的实例。\n\n2、远程桌面反应迟钝，改用每秒传送8帧屏幕，后续有待优化。\n\n2019.1.8\n\n1、发现传屏的瓶颈在zlib压缩数据，更新zlib到版本V1.2.11，提高传送屏幕速度到每秒10帧。\n\n2、ghost的类CBuffer不需要临界区。\n\n2019.1.9\n\n1、服务端IOCPServer类的工作线程改为计算机核心个数的2倍。\n\n2、解决服务端主动退出的内存泄漏问题，泄漏源在OVERLAPPEDPLUS。\n\n2019.1.10\n\n1、服务端远程控制增加全屏（系统右键菜单）、退出全屏（F11）的功能。\n\n2、修复客户端机器屏幕缩放时远程桌面鼠标光标位置不准确的问题。（跟踪光标受影响）\n\n3、发现服务端需要采用默认英文输入法，才能在远程桌面输入中文（怀疑本地输入法截获消息）。\n\n4、添加崩溃时写dump文件的代码。\n\n2019.1.11\n\n1、修复文件管理对话框多次打开崩溃的问题（【遗留问题】）。\n\n2、遗留问题：远程cmd窗口总是将输入命令输出2次、文件对话框的菜单操作可能已失效。\n\n2019.1.12\n\n1、还原客户端的文件管理模块代码为gh0st的源码3.6版本.\n\n2、修复上述\"cmd窗口总是将输入命令输出2次\"遗留问题。\n\n3、打开注册表关闭后崩溃，参照按对文件管理窗口的修改进行处理。遗留问题：\n\t并无内存泄漏，但退出时报\"HEAP: Free Heap modified after it was freed\"问题。\n\n4、退出时睡眠一会，等待服务端清理，发现这样可以避免退出时崩溃的概率。\n\n5、发布稍微稳定的版本V1.0.0.1。\n\n2019.1.13\n\n1、在主对话框清理子窗口的资源（原先在各自的OnClose函数），通过CLOSE_DELETE_DLG控制。\n\n2、修正CFileManagerDlg的构造函数调用SHGetFileInfo和FromHandle方法，解决多次打开崩溃。\n\n3、更新服务端zlib版本为V1.2.11。（与客户端不同，因inflate_fast 崩溃，没有采用汇编）\n\n2019.1.15\n\n1、修复主控端CTalkDlg的内存泄漏问题，被控端即时消息对话框置于顶层。\n\n2、SAFE_DELETE(ContextObject-\u003eolps)有崩溃概率。改为主控端退出时先令被控端退出，就没有内存泄漏。\n\n3、开关音频时偶有内存泄漏，waveInCallBack线程不能正常退出。\n\n2019.1.16\n\n1、智能计时宏AUTO_TICK有问题，不应该用无名的局部变量auto_tick。\n\n2、采用由Facebook所开发的速度更快的压缩库zstd，提高程序运行效率。\n\t参看：https://github.com/facebook/zstd\n\n2019.1.17\n\n1、添加比zstd更快的压缩库（压缩率不如zstd和zlib）lz4 1.8.3，参看\n\thttps://github.com/lz4/lz4\n\n2、修复被控端屏幕被缩放显示时远程桌面跟踪鼠标的位置不准的问题。\n\n3、修复语音监听的问题，2个事件CAudio修改为非\"Manual Reset\"。\n\n2019.1.18\n\n1、整理部分垃圾代码。\n\n2、发布V1.0.0.2。\n\n2018.1.19\n\n1、发现使用lz4压缩库时监控端程序进行远程桌面操作时容易崩溃，原因不明。\n\n2、修复内存泄漏缺陷，在throw \"Bad Buffer\"的情况需要释放申请的内存。\n\n2019.1.20\n\n1、发现不管是采用zstd还是zlib，主控端在进行桌面控制时均有崩溃的几率（zlib较小）。\n\n2、改用zlib压缩解压库。\n\n3、完善追踪鼠标时鼠标形态变化时的展现效果。\n\n4、当退出远程桌面窗口全屏状态时，不再向远程被控端发送F11。\n\n5、发现在有线网络条件下主控端崩溃几率较小。\n\n6、禁用主控端输入法，解决使用远程桌面在被控端输入时的麻烦问题。\n\n2019.1.21\n\n减少远程桌面new缓冲区的频率，将部分从堆上new固定内存的操作改用从栈上分配内存。\n\n2019.1.22\n\n减少音频视频捕获过程中频繁申请内存。\n\n2019.1.25\n\n1、修复被控端消息提示对话框在消息换行时显示不完整的问题。\n\n2、添加/完善录制远程被控端视频的功能。\n\n3、修复语音监听对话框显示已收到数据不更新状态的问题。\n\n4、发现\"发送本地语音\"会导致主控端容易崩溃的问题，现象类似于操作远程桌面时的随机崩溃。\n\n5、设置视频监控对话框为可调整大小，为其设置图标。\n\n2019.1.26\n\n1、发布V1.0.0.3。\n\n2、修复Release模式打不开远程视频，或打开视频时画面卡住的问题，问题出在CCaptureVideo GetDIB。\n\n2019.2.4\n\n清理垃圾注释、整理不良排版，对代码略有改动。\n\n遗留问题：文件管理功能无效、主控端随机崩溃。因此有必要将文件管理的功能屏蔽。\n\n发布V1.0.0.4。\n\n2019.3.24\n\n1、将\"2015Remote.rc\"的一个光标文件\"4.cur\"的路径由绝对路径改为相对路径。\n\n2、新增Release模式编译后控制台运行时不可见，新增TestRun向注册表写入开机自启动项。\n\n2019.3.29\n\n1、主控端和受控端同时修改LOGIN_INFOR结构，修复了受控端上报的操作系统信息不准确的问题。\n\n2、发布V1.0.0.5。\n\n注意：此次更新后的主控端需要和受控端匹配使用，否则可能出现问题。\n\n2019.4.4\n\nghost项目采用VS2012 xp模式编译，以便支持在XP系统上运行。\n\n2019.4.14\n\n在2015RemoteDlg.h添加宏CLIENT_EXIT_WITH_SERVER，用于控制ghost是否随Yama退出。\n\n2019.4.15\n\n明确区分开退出被控端和退出主控端2个消息，只有发送退出被控端消息才会停止Socket客户端。\n\n2019.4.19\n1、TestRun读取配置文件改为setting.ini，配置项为 [settings] localIp 和 ghost。\n2、CAudio的线程waveInCallBack在while循环有一处return，已改为break.\n\n2019.4.20\nTestRun在写入开机自启动项时先提升权限，以防止因权限不足而写注册表失败。\n\n2019.4.30\n升级全部项目采用Visual Studio Community 2015编译。\n\n2019.5.6\n当TestRun、ClientDemo运行时若未成功加载ServerDll.dll，则给出提示。\n所有项目均采用平台工具集\"Visual Studio 2012 - Windows XP (v110_xp)\"，以支持在XP上运行。\n\n2019.5.7\n1、添加对远程IP使用域名时的支持，若IP为域名，先将域名进行解析后再连接。\n2、添加文档“使用花生壳.txt”，介绍了如何使用花生壳软件搭建远程监控系统。\n\n2019.5.8\n优化左键点击Yama托盘图标的效果。\n\n2019.5.11\n优化远程桌面发送屏幕的功能，可动态调整发送屏幕的速率。\n\n2019.8.25\n调整项目设置，解决采用VS2015编译时某些项目不通过的问题。\n\n2021.3.14\n修复了若干个问题。\n\n2024.9.6\n1.新增\"2019Remote.sln\"支持使用Visual Studio 2019编译项目。\n2.增加了使用VLD的操作方法，详见\"server\\2015Remote\\stdafx.h\"。\n注意：自VS2019开始，不支持XP系统了（微软已经声明这个变更）。如果有需要在XP系统进行监控的需求，推荐使用\"2015Remote.sln\"。\n如果使用VS2015编译，需将WindowsTargetPlatformVersion修改为8.1，将PlatformToolset修改为v140_xp。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuanyuanxiang%2Fsimpleremoter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuanyuanxiang%2Fsimpleremoter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuanyuanxiang%2Fsimpleremoter/lists"}