如何从一台无物理网路连接的服务器上取出文件? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tuisku
V2EX    问与答

如何从一台无物理网路连接的服务器上取出文件?

  •  
  •   Tuisku 2016-12-19 10:33:19 +08:00 4629 次点击
    这是一个创建于 3271 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器无任何物理网络连接,只能通过 KVM ( Keyboard Video Mouse )进行操作。可以挂载 ISO 但是并没办法向挂载的镜像写入文件(想想也是……)。

    目前正尝试截图然后 OCR (简直想死)……

    诸位还有什么好的办法吗[:doge]
    第 1 条附言    2016-12-19 12:33:52 +08:00
    (= =)||
    最终想了个解决方案,先将所有要 pull 来的代码压缩一下,然后将压缩文件生成 Base64 ,再把 Base64 生成了 400+的二维码图片。一秒一张图的幻灯播放这 400+的图片在本地录制下来,然后 split 这个视频在本地获得这 400+二维码,批量解码合并。

    就是万一有一张图的二维码有缺损比较严重(毕竟 KVM 拉到的视频有色斑色块和色差之类的鬼东西),那就要爆炸了。。
    第 2 条附言    2016-12-20 09:41:18 +08:00
    跟大家说个好玩的事儿来点乐子。

    费尽千辛万苦把 400+张二维码转成 Base64 然后读取出来之后我发现前两天我刚通过正常手段 pull 过代码,并且经过对比,代码一个子儿也没变(微笑)

    先让我去跳个楼
    50 条回复    2016-12-20 10:15:52 +08:00
    shoaly
        1
    shoaly  
       2016-12-19 10:47:21 +08:00
    确实是一个好题目... 关注一下 楼下的脑洞
    tavimori
        2
    tavimori  
       2016-12-19 10:54:34 +08:00 via Android   3
    文件不大的话 base64 后切分转二维码貌似可能?
    Tuisku
        3
    Tuisku  
    OP
       2016-12-19 10:58:19 +08:00
    @tavimori 这是个好思路!感谢~
    besto
        4
    besto  
       2016-12-19 11:01:47 +08:00
    理论上,只是理论上,你可以通过闪屏幕,输出数字信号,或是模拟信号,外面拿个接收器接受了,翻译一把。
    理论上(不知道这个是不是违规)可以操控一个 gpio 管脚,然后拿一个接收器接受再翻译。
    实际上,只能把源文件转码成容易识别的字符然后出来 OCR 。


    其实,把硬盘拿走不就行了[手动滑稽]
    lany
        5
    lany  
       2016-12-19 11:03:12 +08:00 via iPhone
    用语音识别?
    Tuisku
        6
    Tuisku  
    OP
       2016-12-19 11:05:06 +08:00
    @besto
    理论上。。我可以去机房直接 Copy
    实际上。。我要飞到杭州的成本够我对着屏幕一个字一个字把代码还原了。。

    [:doge]
    liyvhg
        7
    liyvhg  
       2016-12-19 11:09:28 +08:00 via Android
    ASCII 码写入 BMP 图片,每个点可以存 3 个数据( RGB ),显示图片然后拍照解码,记得图片要和分辨率一致,以前有大牛实现过
    besto
        8
    besto  
       2016-12-19 11:09:44 +08:00
    @Tuisku 没法到机房?你怎么控制的?
    loserwn
        9
    loserwn  
       2016-12-19 11:17:57 +08:00
    机房有没有外包?是否可以下架服务器硬盘,给你快递过来。
    Tuisku
        10
    Tuisku  
    OP
       2016-12-19 11:20:12 +08:00
    @besto
    有 KVM 可以控制啊
    Tuisku
        11
    Tuisku  
    OP
       2016-12-19 11:22:36 +08:00
    @liyvhg
    听起来有点难度,正在尝试写一个打包所有需要的文件然后分割一下生成 N 张二维码的软件 push 到服务器试一下
    感谢提供思路~
    wwqgtxx
        12
    wwqgtxx  
       2016-12-19 11:24:51 +08:00 via iPhone
    Usb
    besto
        13
    besto  
       2016-12-19 11:25:42 +08:00
    @Tuisku 还是有点不太理解场景。如果你可以靠近物理机本身,那就不是问题,如果不能,那么是不是类似在本地上打开一个虚拟的屏幕接上去?这样不就可以直接粘贴复制了么?
    难不成,一个超长 vga 线直接接到家门口。。。
    Tuisku
        14
    Tuisku  
    OP
       2016-12-19 11:30:17 +08:00   1
    @besto
    是的。。 KVM 就相当于一条超长的 VGA 线从机房接到我家里然后附赠了鼠标键盘一套(= =||)
    sarices
        15
    sarices  
       2016-12-19 11:35:20 +08:00
    好神奇,为何有这样艰苦的条件?让机房备份一份发过来不行?
    chairuosen
        16
    chairuosen  
       2016-12-19 12:04:57 +08:00
    限定条件:输出只有屏幕-》图像识别-》 OCR 不靠谱,二维码准确性最高
    Tuisku
        17
    Tuisku  
    OP
       2016-12-19 12:24:07 +08:00
    @chairuosen
    对,的确是,大概是 600KB 的代码,生成了 400 多张二维码

    正考虑是不是多叫几个人过来跟我一起扫码抽奖(雾……)
    7654
        18
    7654  
       2016-12-19 12:34:32 +08:00
    r#7 @Tuisku
    @liyvhg 好像在 V2EX 上见过该解决方案
    tavimori
        19
    tavimori  
       2016-12-19 13:38:30 +08:00 via Android
    其实我前段时间也研究过基于屏幕可见光的文件传输方案,不过还没正式开始。
    popok
        20
    popok  
       2016-12-19 13:54:44 +08:00
    这是一个有趣的项目,写过二维码识别工具的可以轻松写出一对 C/S 模式的工具, S 端负责显示二维码, C 端负责实时识别拼接,然后二维码切换速度可根据你那个远程控制工具的帧率调节。理论上, 600K 的文件,应该要不了十几秒就能完成吧。
    zhujinliang
        21
    zhujinliang  
       2016-12-19 14:00:23 +08:00
    键盘也是个输出设备,上面有 3 个灯呢
    levn
        22
    levn  
       2016-12-19 14:04:16 +08:00
    一种新的以光为媒介的数字传输方式诞生了……
    hebeiround
        23
    hebeiround  
       2016-12-19 15:44:50 +08:00 via iPhone   4
    我遇到过类似的例子,是两百块钱找了个中学生帮忙抄到另外一台电脑上的。
    mrhuiyu
        24
    mrhuiyu  
       2016-12-19 16:31:09 +08:00
    如楼上所说,新的数字传输方式在这里诞生了。
    ahillgian
        25
    ahillgian  
       2016-12-19 16:39:50 +08:00
    为什么不拍照回家慢慢看?
    irainsoft
        26
    irainsoft  
       2016-12-19 16:41:26 +08:00
    看完题目后我的表情就是楼主的头像

    叫机房把服务器寄回来吧....
    Tuisku
        27
    Tuisku  
    OP
       2016-12-19 16:43:38 +08:00   1
    @mrhuiyu
    hhh 然而这个新的传输方式效率低下且容错率不容恭维 应该先批判一波
    Rice
        28
    Rice  
       2016-12-19 16:51:14 +08:00 via iPhone
    真金属
    mkeith
        29
    mkeith  
       2016-12-19 17:33:08 +08:00
    你二维码怎么生成的啊?手写生成代码吗
    wwthappy
        30
    wwthappy  
       2016-12-19 17:34:13 +08:00
    你 mount 的 iso 是宿主机的 iso 么?如果这样的话你在宿主机上创建个 loop device 或者干脆给虚拟机分配一个 disk 写进去,然后从宿主机上网络拷回来不行吗?
    Tuisku
        31
    Tuisku  
    OP
       2016-12-19 17:34:27 +08:00
    @mkeith
    写了个小程序,从生成 Base64 到把 Base64 split 成 2300 一组的 list ,最后遍历 list 按照顺序生成二维码。大概思路就是这样
    Tuisku
        32
    Tuisku  
    OP
       2016-12-19 17:36:15 +08:00
    @wwthappy
    如果是虚拟机还省事儿了,重点是这是台物理服务器……因为种种原因是不能连接网络,只能通过 KVM 操作。
    mkeith
        33
    mkeith  
       2016-12-19 17:36:51 +08:00
    代码全都手打啊 厉害
    Tuisku
        34
    Tuisku  
    OP
       2016-12-19 17:41:10 +08:00
    @mkeith
    其实我是在本地把软件写好了打包成 ISO 挂载到服务器上的(嘿嘿嘿 要不然服务器上就个记事本打死我也不干)
    daviswei
        35
    daviswei  
       2016-12-19 17:53:29 +08:00 via Android
    @Tuisku 有点好奇为什么可以挂过去不能传回来
    fangdingjun
        36
    fangdingjun  
       2016-12-19 18:07:36 +08:00
    我记得华为服务器的 KVM 可以挂载软盘映像,这个是可以写的
    Tuisku
        37
    Tuisku  
    OP
       2016-12-19 18:10:16 +08:00
    @daviswei
    因为挂载的是只读的 ISO 镜像。。
    Tuisku
        38
    Tuisku  
    OP
       2016-12-19 18:15:00 +08:00
    @fangdingjun
    试了一下,的确能挂载 vfd 的软盘映像,但是写入的时候就提示写保护了= =!
    daviswei
        39
    daviswei  
       2016-12-19 18:37:17 +08:00 via Android
    @Tuisku 对啊,我用过的都是可以挂 iso 也可以映射 usb 设备,可能你的不太一样
    lanyusea
        40
    lanyusea  
       2016-12-19 18:39:25 +08:00   1
    之前写过一个小程序是处理这个的,跟你 append 里面的想法一样。

    https://github.com/lanyusea/py_imageFileConverter

    inspired by 在 zhihu 上看到的一个回答:
    http://www.zhihu.com/question/23188097/answer/24646217

    `我用 python 将二进制数据转化为图像,每个像素点可以表示 3 个字节,再将图像外围增加宽度为 1 的黑色边框,外面再增加宽度为 1 像素的白色边框,作为图像边界的标识符。`


    在我的尝试中还是挺好用的。可能是我的数据量比较小的原因吧,只传输主要的代码文件。
    基本上一张 500x500 的图片就差不多够用了( 500x500x3 Byte = 250KB ) =。=
    billlee
        41
    billlee  
       2016-12-19 22:08:37 +08:00
    不太清楚 KVM 是什么样的设备,能否把文件数据转换成视频流传输?
    yangqi
        42
    yangqi  
       2016-12-19 22:28:20 +08:00
    KVM 难道用的是 ps/2 接口?键盘鼠标没用 usb?
    caola
        43
    caola  
       2016-12-19 22:53:52 +08:00
    既然弄成了 Base64 ,那直接截屏,之后在本地使用图片文字识别工具,从图片中识别字母数字之类的文字的正确率几乎是接近 100%
    andysheng
        44
    andysheng  
       2016-12-19 23:19:13 +08:00 via iPhone
    在学校的大创展上见过用可见光来传输视频数据的项目,可以应用在楼主这个需求上
    Terry309
        45
    Terry309  
       2016-12-19 23:44:35 +08:00 via iPhone
    参考破解二维码
    Terry309
        46
    Terry309  
       2016-12-19 23:47:36 +08:00 via iPhone
    打错了,参考破解验证码。在屏幕上显示的都是点,显示是 1 ,不显示为 0 。
    iCyMind
        47
    iCyMind  
       2016-12-20 00:04:05 +08:00
    撸主头像很应景
    0915240
        48
    0915240  
       2016-12-20 09:53:51 +08:00
    好牛逼 好折腾
    rocai185
        49
    rocai185  
       2016-12-20 10:15:00 +08:00
    @hebeiround 600K 的文件你要抄下来,容错率太低了,一不小心抄错,在要花的代价恐怕是这个的好多倍了
    hebeiround
        50
    hebeiround  
       2016-12-20 10:15:52 +08:00 via iPhone
    @rocai185 您这个是代码,我那个就是 word 文档。抄错无所谓...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5847 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:03 PVG 10:03 LAX 18:03 JFK 21:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86