Awesome
url-run-command
<center> </center>使用 URL 协议运行命令(Run the command using URL protocol)
原理 | PRINCIPLE
- 将自定义 URL 协议注册为 Windows 系统协议, 并调用一个具有如下功能的程序
Register the custom URL protocol as a Windows system protocol and call a program that has the following features.- 对 URL 载荷进行 URL 解码, 获得指令
Decode the URL payload to get commands. - 调用系统命令行解析器
CMD
或PowerShell
运行指令
Call the system command line parserCMD
orPowerShell
to run the commands.
- 对 URL 载荷进行 URL 解码, 获得指令
注意: 为了避免可能出现的 远程命令/代码执行(Remote Command/Code Execution, RCE) 攻击, 请尽量使用足够长的随机字符串作为自定义协议名称
Note: To avoid possible RCE(Remote Command/Code Execution) attacks, try to use random strings long enough as custom URL scheme name.
开始 | START
快速开始 | QUICK START
- 从 Releases 中下载发行包并解压到自定义安装目录
Download the release package from Releases and unzip it to a custom installation directory. - 运行安装目录中的
install.bat
批处理文件
Run theinstall.bat
batch file in your installation directory. - 安装目录中将生成
insert.reg
与delete.reg
两个注册表文件
insert.reg
anddelete.reg
registry files are generated in the installation directory.insert.reg
: 安装时将要写入注册表的注册表项
insert.reg
: The registry key that will be written to the registry at installation time.delete.reg
: 卸载时将要从注册表中删除的注册表项
delete.reg
: The registry key that will be removed from the registry when uninstalled.
- 允许对注册表的更改
Allow to change the registry. - 安装完成
The installation is complete. - 在 Windows 资源管理器 的地址栏中输入
runcmd://systeminfo; pause;
或runcmd:systeminfo; pause;
并回车, 检查 URL 协议runcmd
能否运行命令systeminfo; pause;
(查看系统信息后暂停)
Enterruncmd://systeminfo; pause;
orruncmd:systeminfo; pause;
in the address bar of Windows Explorer and enter to check if the URL schemeruncmd
can run commandsysteminfo; pause;
(pause after viewing system information). - 点击下方链接, 检查浏览器链接能否使用
runcmd
协议运行命令systeminfo; pause;
Click on links below to check if the browser link can run commandsysteminfo; pause;
using theruncmd
protocol.
预览 | PREVIEW
高级选项 | ADVANCED OPTIONS
在安装目录中使用如下命令查看命令行参数
Use the following command in the installation directory to view command line parameters.
PS > .\url-run.exe help
Active code page: 65001
SYNOPSIS
url-run.exe <url> (-c|-p) [--debug] [--parser <path>]
url-run.exe init [-n <scheme>] (-c|-p) [--debug] [--parser <path>]
url-run.exe help
OPTIONS
<url> 统一资源定位符 | Uniform Resource Locator, URL
-c, --cmd 使用 CMD 解析器 | use CMD parser
-p, --powershell, --pwsh
使用 PowerShell 解析器 | use PowerShell parser
--debug 输出调试信息 | output debug information
--parser 自定义命令解析器 | custom command parser
<path> 自定义命令解析器路径 | path of custom command parser
init 初始化注册表文件 | initialize the registry file
-n, --name 自定义 URL 协议名称 | custom URL scheme name
<scheme> 协议自定义名称 | name of custom scheme
-c, --cmd 使用 CMD 解析器 | use CMD parser
-p, --powershell, --pwsh
使用 PowerShell 解析器 | use PowerShell parser
--debug 输出调试信息 | output debug information
--parser 自定义命令解析器 | custom command parser
<path> 自定义命令解析器路径 | path of custom command parser
help 查看参数指南 | view the parameter guide
开发者选项 | DEVELOPER OPTIONS
git clone https://github.com/Zuoqiu-Yingyi/url-run-command.git
cd url-run-command
g++ \
src\main.cpp \
-o dist\url-run \
-g \
-static
cd dist
.\url-run.exe init \
--name "<自定义 URL 协议名 | name for custom URL scheme>" \
--powershell \
--parser "<自定义命令解析器路径 | path for custom command parser>"
start .\insert.reg
卸载 | UNINSTALL
- 运行安装目录中的
uninstall.bat
批处理文件
Run theuninstall.bat
batch file in your installation directory. - 允许对注册表的更改
Allow to change the registry. - 卸载完成
The uninstall is complete.
依赖 | DEPENDENCE
源码 | SOURCE
- muellan/clipp: easy to use, powerful & expressive command line argument parsing for modern C++ / single header / usage & doc generationMIT License