C#实现网络抓包后,得到一段乱码内容,不知道如何解码?求高人指点

bigtitlover1 2016-04-23 04:11:45

上图是HttpAnalyzer的抓包截图。

用utf-8,gb2312等多种格式都解码不了,用Gzip解压也出错,求高人指点!!

C#代码段:
private void dataGridView_SelectionChanged(object sender, EventArgs e)
{
if (dataGridView.SelectedCells.Count == 0)
return;
var packetWrapper = (PacketWrapper)dataGridView.Rows[dataGridView.SelectedCells[0].RowIndex].DataBoundItem;
var packet = Packet.ParsePacket(packetWrapper.p.LinkLayerType, packetWrapper.p.Data);
packetInfoTextbox.Text = packet.ToString(StringOutputType.VerboseColored);

以下是即时窗口的错误信息:
GZipUtil.UnZip(packet.PayloadPacket.Bytes)
在 System.IO.InvalidDataException 中第一次偶然出现的“System.dll”类型的异常
base {System.SystemException}: {"GZip 头中的幻数不正确。请确保正在传入 GZip 流。"}
byteToHexStr(((PacketDotNet.PPPoEPacket)packet.PayloadPacket).Bytes)

Encoding.GetEncoding("GB2312").GetString(packet.PayloadPacket).Bytes);
"\0跤\0*\0!E\0\0(nW@\0€?\0!:;(J洵+?擈\n_P?\0\0"
Encoding.GetEncoding("utf-8").GetString(((PacketDotNet.PPPoEPacket)packet.PayloadPacket).Bytes);
"\0@@\0*\0!E\0\0(nW@\0@@\n\0!:;(J@+w'r@\n_P@>\0\0"
...全文
455 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigtitlover1 2016-04-23
  • 打赏
  • 举报
回复
楼上的高手的意思是说这个编码字符串是人为自定义规则编码的,所以解码不了。我认为应该不是自定义规则,毕竟中间的英文解码出来了,应该说明是用某种现成的编码格式编码出来的,只不过不知道是什么格式罢了
哈特比尔波 2016-04-23
  • 打赏
  • 举报
回复
二进制就没有办法解析了吗?
bigtitlover1 2016-04-23
  • 打赏
  • 举报
回复
按楼上大神说的话那就是没办法啦,噢不会吧
wanghui0380 2016-04-23
  • 打赏
  • 举报
回复
解个啥子,不用解。 人家封包已经告诉你是applection/binary,你还解个毛,别人已经声明本身就二进制,你还解什么?什么都不要解。问对方开发人员这个二进制代表什么? 话说下面还有一句话,remobjects,如果遵照一般开发人员规范,那么就是说这是一个未知格式对象的二进制,只有当初开发人员自己知道他是什么,其他人根本就不知道这个二进制代表什么
bigtitlover1 2016-04-23
  • 打赏
  • 举报
回复
对,跟你的结果情况一样,英文部分能解码出来,其他部分读不出来。请教各位高手
xuzuning 2016-04-23
  • 打赏
  • 举报
回复
我先用 php 解码看看 print_r(unpack('a12a/S10b/a11c/Ld/a14e/s*', substr($t,4)));

Array
(
    [a] => RO107
    [b1] => 26033
    [b2] => 3184
    [b3] => 37466
    [b4] => 18200
    [b5] => 19106
    [b6] => 27727
    [b7] => 44735
    [b8] => 36287
    [b9] => 11
    [b10] => 0
    [c] => DataService
    [d] => 14
    [e] => GeGSingleValue
    [1] => 5
    [2] => 0
    [3] => 12337
    [4] => 12336
    [5] => 305
    [6] => 0
    [7] => 0
)

看看如何
bigtitlover1 2016-04-23
  • 打赏
  • 举报
回复
乱码部分的16进制字节流: 0D0A0D0A524F31303700000000000000B165700C5A921847A24A4F6CBFAEF68D0B00000044617461536572766963650E00000047657453696E676C6556616C75650500000031303030310100000000

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧