基于剪贴板的文件传输方案

背景

某次误删了环境上的C库之后想到的
什么都不可用了,但当前的ssh连接还在,echo命令和重定向符还可以使用
这就催生了我的想法:直接用echo -en “\xab\xcd” > file这样直接把C库给恢复回来

原理

当前的ssh连接已经被加载到了内存中运行,所以当前连接还在

echo命令不是一般的可执行文件,是bash的内建命令,当前bash也被加载到了内存中,所以当前bash还可用

echo -en “\xab\xcd” > file 输出二进制形式的数据再重定向到文件

步骤

获取待上传文件的十六进制数据

首先把待上传文件以十六进制打印出来,比如我要恢复C库,就去其他一样的环境上找一个C库

od -xvAn file > origin.bin,-x 以 16进制打印, -v verbose 不省略全0行, -An 不打印偏移量

这样就输出了全部的二进制数据到origin.bin文件

格式转换

上一步输出的十六进制数据还需要转换,需要每个字节前插入一个\x转义符,按内存序重排、移除空格和换行符

在这里插入图片描述

这个字符插入+顺序重排写个代码随便就搞定了,我的源代码不在这台电脑上,有空了补一下

输出

用本地环境的文本编辑器打开重排后的文件,全选 复制
然后在目标环境上打印出echo -en “” > target_file,粘贴到引号中间

静静等待复制完成

因为一个字节会被扩展为两个16进制数且插入了\x符号,所以原本2~3MB大小的文件会被扩大到约10MB大小,但是不用担心,剪贴板是很可靠的,即使10兆个字符它也一样不会有一个误码

10MB字节我复制约需5分钟,时间长短可能和本地电脑、目标主机性能、网速有关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值