java解析WCF协议中application/msbin1格式数据

本文介绍如何在Java中处理application/msbin1格式的数据并将其转换为XML。由于没有直接的Java开源库支持,作者采用C#编写了一个exe程序,然后在Java中调用该exe进行解析。解析数据时,原始文件应按比特流保存,避免通过UTF-8等编码。这种方法适用于分析Silverlight应用使用的WCF协议,但最佳解决方案可能仍是使用C#。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文只做转换,不做反序列化,转换结果为xml

1、首先声明,目前没找到一个直接的java的开源框架或者jar包来解析application/msbin1格式的数据

2、解析结果为xml

3、待解析的数据(文件),作为文件保存时应按比特流保存(byte[]),

      若经过utf-8等编码转码不保证可以解析。

4、应用场合,如果你分析过某些应用silverlight技术的网页或程序,并想取得其数据。

由于silverlight应用的WCF协议是微软的(Windows Communication Foundation),

所以最理想的方式应该是C#写的程序解析。

开始一直纠结在找java的直接解析方案,浪费了太多时间。

现在想如果有牛人用java把c#的源码翻译一遍,估计也可以吧。。。

所以形成了现在的思路:用c#写了一个exe,然后用java调用。

没找到怎么在这里发附件。。。有需要的邮箱,自己理解,不做解答。截图如下:


commandWithArgs的第二个字符串为待解析的application/msbin1格式的文件(已保存在本地)

exe部分源码


这个exe的灵感是来源于Fiddler2的wcf插件(BinaryMessageFiddlerExtension.dll)

用这个工具可以直接查看wcf协议。

最后看效果

解析前:

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值