# YAMA 使用方法与技巧 ## 编译程序 编译此程序需要Visual Studio 2019及以上版本。如果编译Go服务端,需要Go 1.25及以上版本。 除了直接通过Visual Studio打开项目文件进行编译,也可以通过以下命令进行编译: - build.cmd: 编译YAMA.exe(自动提前编译客户端程序) - build.cmd publish:编译YAMA.exe且通过upx压缩,所生成的可执行文件较小。 - buld.cmd server:只编译YAMA.exe,需保证所依赖的客户端程序已经编译。 - build.cmd go-server:编译 Go 服务端,可以选择带publish 参数进行upx压缩。 ## Go 服务端 支持在Windows、Linux、MacOS系统运行,使得用户不再依赖Windows服务器来搭建远程控制系统,且部署Go服务端在Linux或MacOS具有更高安全性。 但是用户仍然需要有一台Windows电脑,使用YAMA生成客户端程序。 ## 生成客户端 自版本v1.3.4起,不论是服务端/主控端,还是客户端/受管端,都支持在全平台运行(Windows、Linux、MacOS)。 关于在生成客户端时怎么填参数,参考早期在 GitHub 的[文档](https://github.com/yuanyuanxiang/SimpleRemoter/wiki#生成参数)。 此文档也许已经过时,但新文档没有准备好。因为生成客户端的逻辑没有改变,所以这篇文档仍然具有参考价值。 ## 更新内嵌资源 参看 "server\2015Remote\BuildDlg.cpp" 描述,YAMA作为一个功能强大的远程管理系统,内嵌了包含客户端、开源工具在内的10多个资源。 较新版本的YAMA支持在不修改源代码、不重新编译的情况下,更新内嵌的这些资源。用户只需要在当前YAMA进程的目录下,增加res子目录, 将资源命名为如下所述的名称即可。例如编译了新版本的 frpc.dll, 将其放到 res/frps.dll 位置即可,重启YAMA即会使用该磁盘上的资源。 ``` namespace ResFileName { // Ghost 主程序 const char* GHOST_X86 = "ghost_x86.exe"; const char* GHOST_X64 = "ghost_x64.exe"; const char* GHOST_LINUX = "ghost_linux"; const char* GHOST_MACOS = "ghost_macos"; // TestRun 加载器 const char* TESTRUN_X86 = "testrun_x86.dll"; const char* TESTRUN_X64 = "testrun_x64.dll"; // ServerDll const char* SERVERDLL_X86 = "serverdll_x86.dll"; const char* SERVERDLL_X64 = "serverdll_x64.dll"; // TinyRun const char* TINYRUN_X86 = "tinyrun_x86.exe"; const char* TINYRUN_X64 = "tinyrun_x64.exe"; // SCLoader (Shellcode加载器) const char* SCLOADER_X86 = "scloader_x86.bin"; const char* SCLOADER_X64 = "scloader_x64.bin"; const char* SCLOADER_X86_OLD = "scloader_old_x86.bin"; const char* SCLOADER_X64_OLD = "scloader_old_x64.bin"; // FRP 相关 (无架构区分,64位DLL) const char* FRPC_DLL = "frpc.dll"; const char* FRPS_DLL = "frps.dll"; // 工具 const char* UPX_EXE = "upx.exe"; const char* RCEDIT_EXE = "rcedit.exe"; } ``` ## 使用插件 将64位的Windows DLL放到Plugins目录,主控程序会加载DLL,且可以通过在线主机的右键菜单,将DLL发送的目标主机执行。 开发自定义插件需要遵循一些规范:https://simpleremoter.com/plugins ## 载荷分离 通过设置 Web 端口(默认值8080),来开启Web远程桌面,且本机会提供文件下载服务。将文件放置于该目录,从外部访问链接即可下载。 比如,生成服务端时,选择 Shellcode+AES, 开启文件下载,将载荷生成为单独的文件 "1.bin",将此文件放置于Payloads 目录。 访问 http://127.0.0.1:8080/payloads/1.bin 即可下载此载荷文件。如果本机具有公网IP,则127.0.0.1可替换为公网IP。在有公网IP的计算机开启Web功能,必须设置登录密码,否则存在安全风险。 采用载荷分离方式生成的程序,只有7KB,运行此程序会下载载荷,解密载荷中的Shellcode并执行。加载器源代码见 client\SimpleSCLoader.c,采用了高级编程技巧,无导入函数。本项目不提供任何“面纱”保证,且使用场景只限技术研究和学习。 ## Web 远程桌面 通过设置 Web 端口(默认值8080),即开启Web远程桌面,在浏览器地址栏访问本机8080端口就进入Web远程桌面,默认的密码是admin。 如果本机有公网IP,务必修改默认密码,设置为较复杂的密码,否则可能被别人登录。Web登录已做防护,连续3次输入错误密码会冻结。 从外部访问Web远程桌面,需要域名和证书(浏览器H264解码硬性要求);Web 远程桌面支持2个主机同时在线,如需突破此限制,请联系管理员。 ## 获取更多 访问源代码的docs目录,阅读本项目更多内容;也可以访问官方网站:https://simpleremoter.com,成为注册用户,可获取额外的资源与支持。官方网站将不定期地更新有关此软件的公告、用法、案例等内容。