贵州最好的网站建设推广公司,哪里有手机网站建设,网站建设中 模板 下载,泉州最专业微信网站建设公司一#xff1a;背景
1. 讲故事
这些天计划好好研究下tcp/ip#xff0c;以及socket套接字#xff0c;毕竟工控中设计到各种交互协议#xff0c;如果只是模模糊糊的了解#xff0c;对分析此类dump还是非常不利的#xff0c;而研究协议最好的入手点就是用抓包工具 wireshar…一背景
1. 讲故事
这些天计划好好研究下tcp/ip以及socket套接字毕竟工控中设计到各种交互协议如果只是模模糊糊的了解对分析此类dump还是非常不利的而研究协议最好的入手点就是用抓包工具 wireshark废话不多说这篇通过 wireshark 提取一个小图片作为入手。
二wireshark 图片抓包
1. 捕获图片
为了方便演示我们就用最简单的 http 上传图片的方式客户端代码如下 form methodpost action/Home/Upload enctypemultipart/form-datainput typefile namefile /button typesubmitUpload/button
/form
接下来是server端代码用 chatgpt 吐出来的代码做了一点简单修改。
public class HomeController : Controller{private readonly ILoggerHomeController _logger;private readonly IWebHostEnvironment _env;public HomeController(IWebHostEnvironment env){_env env;}[HttpPost]public async TaskIActionResult Upload(IFormFile file){if (file null || file.Length 0){return BadRequest(Please select a file to upload.);}// 生成唯一的文件名var fileName Guid.NewGuid().ToString() Path.GetExtension(file.FileName);// 拼接文件保存路径var filePath Path.Combine(_env.WebRootPath, uploads, fileName);// 保存文件到磁盘using (var stream new FileStream(filePath, FileMode.Create)){await file.CopyToAsync(stream);}return Ok(File uploaded successfully.);}}
接下来将 asp.net core 部署在虚拟机上修改端口为80appsettings.json 修改如下 {Logging: {LogLevel: {Default: Information,Microsoft.AspNetCore: Warning}},Kestrel: {Endpoints: {Http: {Url: http://0.0.0.0:80}}}
}
运行之后一切正常截图如下
2. wireshark 捕获
这里我们将 wireshark 部署在 server (192.168.25.133)端不过在开启之前有两点要注意
寻找到你需要采集流量包的网卡比如我这里的 Ethernet0设置一个捕获过滤器这样就不会把你的 wireshark 采集界面给卡死。
参考截图如下 启动捕获后在首页开始上传一个 1M左右的图片在 wireshark 中可以看到这 1M 的图片被切割成了 791 个 tcp segment 发送。 接下来在 上图中的 Http 请求上点击右键选择 Follow - TCP Stream 会自动打开本次 http 传输的全部内容接下来记得做下面三个选择
选择正确的数据包流向数据格式为原始的Raw格式Save as 保存到本地
详情截图如下 根据 http 上传图片的格式把内容中换行符之前和之后的二进制都去掉而这个换行符的二进制表示为 0D0A接下来打开 winhex删掉 0D0A 之前和之后的所有多余字符。截图如下
之前 之后 如果大家有点懵可以观察一个正确的 PNG 在 WinHex 上的表现选中多余的二进制之后做一个 delete 操作然后重命名为 test.png截图如下 哈哈一张图片映入眼帘打完收工
三总结
wireshark 还是非常强大有意思的相比呈现工具更多的还是需要对协议的理解希望能对dump分析提供一些原料动力