如果是捕获HTTP或者FTP的文件传输,监控端口80及21即可,通过WinPcap/SharpPcap等获取TCP包中的文件名,即可以得到使用这些协议进行文件传输的文件名称。
但是,如果是HTTPS或者是SFTP进行文件传输,即使监控这两个协议对应的TCP端口443和22,能够获取TCP包,但由于这两个协议是加密的,无法解析其中的文件名,曾经做过程序,可以获取TCP包,只能得到个端口号,知道进行了HTTPS(端口443)和SFTP(端口22)连接,但得不到要传输的文件名。
博友们有没有什么办法,可以获得HTTPS或者SFTP协议进行文件传输(上传或下载)时的文件名,使用C#进行开发。比如:HTTPS上传文件时,要打开选取文件对话框,可以捕获到对话框的进程并获取文件名,或者用WinSCP(使用SFTP协议的软件)传输文件时,可以从这里获取文件名?
欢迎大家给出意见。
谢谢。
你好,想问你个问题。
既然是Security(安全)的,再让你获取到文件名,这个协议也就不用在江湖上混了。
我明白这两个安全协议。但是否可以用其它办法获取,比如我提出的建议:如果是HTTPS上传文件,自然会打开一个对话框,能否监控这个对话框进程来获取文件名。
也就是说,用Work Around的办法来解决。
HTTPS或者是SFTP本身就是设计成防监听的,报文都是加密传输的,抓取到也无法解析,是没有意义的。
至于你说的截取文件创建或读写过程,这个则是操作系统本身就支持的,和https和sftp监听没有关系。
有启发。由于可以将程序做成服务放在客户端,所以,我需要尝试先使用端口监控获取HTTPS和SFTP的连接,然后使用C#截取操作系统的文件创建和读写。如果成功,在这里给大家汇报一下。
谢谢
Hook api
不知道使用SharpPcap这个能不能进行文件传输?