首页 新闻 会员 周边

如何利用C#捕获HTTPS、SFTP协议的文件传输?

0
悬赏园豆:5 [待解决问题]

如果是捕获HTTP或者FTP的文件传输,监控端口80及21即可,通过WinPcap/SharpPcap等获取TCP包中的文件名,即可以得到使用这些协议进行文件传输的文件名称。

但是,如果是HTTPS或者是SFTP进行文件传输,即使监控这两个协议对应的TCP端口443和22,能够获取TCP包,但由于这两个协议是加密的,无法解析其中的文件名,曾经做过程序,可以获取TCP包,只能得到个端口号,知道进行了HTTPS(端口443)和SFTP(端口22)连接,但得不到要传输的文件名。

博友们有没有什么办法,可以获得HTTPS或者SFTP协议进行文件传输(上传或下载)时的文件名,使用C#进行开发。比如:HTTPS上传文件时,要打开选取文件对话框,可以捕获到对话框的进程并获取文件名,或者用WinSCP(使用SFTP协议的软件)传输文件时,可以从这里获取文件名?

欢迎大家给出意见。

谢谢。

wusir的主页 wusir | 初学一级 | 园豆:100
提问于:2013-11-27 14:54
< >
分享
所有回答(5)
0

你好,想问你个问题。

也许。 | 园豆:202 (菜鸟二级) | 2013-11-27 14:57
0

既然是Security(安全)的,再让你获取到文件名,这个协议也就不用在江湖上混了。

爱编程的大叔 | 园豆:30839 (高人七级) | 2013-11-27 15:00

我明白这两个安全协议。但是否可以用其它办法获取,比如我提出的建议:如果是HTTPS上传文件,自然会打开一个对话框,能否监控这个对话框进程来获取文件名。

也就是说,用Work Around的办法来解决。

支持(0) 反对(0) wusir | 园豆:100 (初学一级) | 2013-11-27 15:29
0

HTTPS或者是SFTP本身就是设计成防监听的,报文都是加密传输的,抓取到也无法解析,是没有意义的。

至于你说的截取文件创建或读写过程,这个则是操作系统本身就支持的,和https和sftp监听没有关系。

天方 | 园豆:5407 (大侠五级) | 2013-11-28 22:32

有启发。由于可以将程序做成服务放在客户端,所以,我需要尝试先使用端口监控获取HTTPS和SFTP的连接,然后使用C#截取操作系统的文件创建和读写。如果成功,在这里给大家汇报一下。

谢谢

支持(0) 反对(0) wusir | 园豆:100 (初学一级) | 2013-11-29 09:47
0

Hook api

空明流光 | 园豆:106 (初学一级) | 2013-11-28 23:20
0

不知道使用SharpPcap这个能不能进行文件传输?

仆人 | 园豆:204 (菜鸟二级) | 2014-07-14 09:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册