View Code? Open in Web Editor
NEW
This project forked from yuanyuanxiang/simpleremoter
基于gh0st的远程控制器:实现了终端管理、进程管理、窗口管理、远程桌面、文件管理、语音管理、视频管理、服务管理、注册表管理等功能,优化全部代码及整理排版,修复内存泄漏缺陷,程序运行稳定。此项目初版见:https://github.com/zibility/Remote
simpleremoter's Introduction
[简介]
基于gh0st的远程控制器:实现了终端管理、进程管理、窗口管理、桌面管理、文件管理、语音管理、视频管理、服务管理、注册表管理等功能。
来源:https://github.com/zibility/Remote
日期:2019.1.1
[更新日志]
2019.1.5
1、整理垃圾排版,优化上线下线处理逻辑。
2、修复部分内存泄漏问题,改善线程处理逻辑。
3、修复客户端不停断线重连的缺陷。解决部分内存泄漏缺陷。
4、解决几处缺陷。【遗留问题】文件管理对话框释放资源导致第2次打开崩溃。
2019.1.6
1、改用EnumDisplaySettings获取屏幕大小,原方法获取屏幕大小不准。
2、将FileManagerDlg、InputDlg、FileTransferModeDlg、TrueColorToolBar还原到gh0st最初版本。
3、新增项目"ghost",不通过TestRun调用dll,而是直接生成可执行文件。
4、修复开启视频,客户端产生的一处内存泄漏缺陷,m_pCapture需要释放。
2019.1.7
1、ghost单台电脑只允许启动唯一的实例。
2、远程桌面反应迟钝,改用每秒传送8帧屏幕,后续有待优化。
2019.1.8
1、发现传屏的瓶颈在zlib压缩数据,更新zlib到版本V1.2.11,提高传送屏幕速度到每秒10帧。
2、ghost的类CBuffer不需要临界区。
2019.1.9
1、服务端IOCPServer类的工作线程改为计算机核心个数的2倍。
2、解决服务端主动退出的内存泄漏问题,泄漏源在OVERLAPPEDPLUS。
2019.1.10
1、服务端远程控制增加全屏(系统右键菜单)、退出全屏(F11)的功能。
2、修复客户端机器屏幕缩放时远程桌面鼠标光标位置不准确的问题。(跟踪光标受影响)
3、发现服务端需要采用默认英文输入法,才能在远程桌面输入中文(怀疑本地输入法截获消息)。
4、添加崩溃时写dump文件的代码。
2019.1.11
1、修复文件管理对话框多次打开崩溃的问题(【遗留问题】)。
2、遗留问题:远程cmd窗口总是将输入命令输出2次、文件对话框的菜单操作可能已失效。
2019.1.12
1、还原客户端的文件管理模块代码为gh0st的源码3.6版本.
2、修复上述"cmd窗口总是将输入命令输出2次"遗留问题。
3、打开注册表关闭后崩溃,参照按对文件管理窗口的修改进行处理。遗留问题:
并无内存泄漏,但退出时报"HEAP: Free Heap modified after it was freed"问题。
4、退出时睡眠一会,等待服务端清理,发现这样可以避免退出时崩溃的概率。
5、发布稍微稳定的版本V1.0.0.1。
2019.1.13
1、在主对话框清理子窗口的资源(原先在各自的OnClose函数),通过CLOSE_DELETE_DLG控制。
2、修正CFileManagerDlg的构造函数调用SHGetFileInfo和FromHandle方法,解决多次打开崩溃。
3、更新服务端zlib版本为V1.2.11。(与客户端不同,因inflate_fast 崩溃,没有采用汇编)
2019.1.15
1、修复主控端CTalkDlg的内存泄漏问题,被控端即时消息对话框置于顶层。
2、SAFE_DELETE(ContextObject->olps)有崩溃概率。改为主控端退出时先令被控端退出,就没有内存泄漏。
3、开关音频时偶有内存泄漏,waveInCallBack线程不能正常退出。
2019.1.16
1、智能计时宏AUTO_TICK有问题,不应该用无名的局部变量auto_tick。
2、采用由Facebook所开发的速度更快的压缩库zstd,提高程序运行效率。
参看:https://github.com/facebook/zstd
2019.1.17
1、添加比zstd更快的压缩库(压缩率不如zstd和zlib)lz4 1.8.3,参看
https://github.com/lz4/lz4
2、修复被控端屏幕被缩放显示时远程桌面跟踪鼠标的位置不准的问题。
3、修复语音监听的问题,2个事件CAudio修改为非"Manual Reset"。
2019.1.18
1、整理部分垃圾代码。
2、发布V1.0.0.2。
2018.1.19
1、发现使用lz4压缩库时监控端程序进行远程桌面操作时容易崩溃,原因不明。
2、修复内存泄漏缺陷,在throw "Bad Buffer"的情况需要释放申请的内存。
2019.1.20
1、发现不管是采用zstd还是zlib,主控端在进行桌面控制时均有崩溃的几率(zlib较小)。
2、改用zlib压缩解压库。
3、完善追踪鼠标时鼠标形态变化时的展现效果。
4、当退出远程桌面窗口全屏状态时,不再向远程被控端发送F11。
5、发现在有线网络条件下主控端崩溃几率较小。
6、禁用主控端输入法,解决使用远程桌面在被控端输入时的麻烦问题。
2019.1.21
减少远程桌面new缓冲区的频率,将部分从堆上new固定内存的操作改用从栈上分配内存。
2019.1.22
减少音频视频捕获过程中频繁申请内存。
2019.1.25
1、修复被控端消息提示对话框在消息换行时显示不完整的问题。
2、添加/完善录制远程被控端视频的功能。
3、修复语音监听对话框显示已收到数据不更新状态的问题。
4、发现"发送本地语音"会导致主控端容易崩溃的问题,现象类似于操作远程桌面时的随机崩溃。
5、设置视频监控对话框为可调整大小,为其设置图标。
2019.1.26
1、发布V1.0.0.3。
2、修复Release模式打不开远程视频,或打开视频时画面卡住的问题,问题出在CCaptureVideo GetDIB。
2019.2.4
清理垃圾注释、整理不良排版,对代码略有改动。
遗留问题:文件管理功能无效、主控端随机崩溃。因此有必要将文件管理的功能屏蔽。
发布V1.0.0.4。
2019.3.24
1、将"2015Remote.rc"的一个光标文件"4.cur"的路径由绝对路径改为相对路径。
2、新增Release模式编译后控制台运行时不可见,新增TestRun向注册表写入开机自启动项。
2019.3.29
1、主控端和受控端同时修改LOGIN_INFOR结构,修复了受控端上报的操作系统信息不准确的问题。
2、发布V1.0.0.5。
注意:此次更新后的主控端需要和受控端匹配使用,否则可能出现问题。
2019.4.4
ghost项目采用VS2012 xp模式编译,以便支持在XP系统上运行。
2019.4.14
在2015RemoteDlg.h添加宏CLIENT_EXIT_WITH_SERVER,用于控制ghost是否随Yama退出。
2019.4.15
明确区分开退出被控端和退出主控端2个消息,只有发送退出被控端消息才会停止Socket客户端。
2019.4.19
1、TestRun读取配置文件改为setting.ini,配置项为 [settings] localIp 和 ghost。
2、CAudio的线程waveInCallBack在while循环有一处return,已改为break.
2019.4.20
TestRun在写入开机自启动项时先提升权限,以防止因权限不足而写注册表失败。
2019.4.30
升级全部项目采用Visual Studio Community 2015编译。
2019.5.6
当TestRun、ClientDemo运行时若未成功加载ServerDll.dll,则给出提示。
所有项目均采用平台工具集"Visual Studio 2012 - Windows XP (v110_xp)",以支持在XP上运行。
2019.5.7
1、添加对远程IP使用域名时的支持,若IP为域名,先将域名进行解析后再连接。
2、添加文档“使用花生壳.txt”,介绍了如何使用花生壳软件搭建远程监控系统。
2019.5.8
优化左键点击Yama托盘图标的效果。
2019.5.11
优化远程桌面发送屏幕的功能,可动态调整发送屏幕的速率。
2019.8.25
调整项目设置,解决采用VS2015编译时某些项目不通过的问题。
simpleremoter's People
Contributors
Watchers