- 主题:WCF的base64binary如何在客户端反序列化
gzip有两种编码方式,一种叫deflate,一种叫gzip,差别是gzip有个幻数1F8B08
--
FROM 61.135.169.*
人肉解码一下:
1. 先做Base64解码
YgAAAHiczZm9btswEIBfJdBaWCRF/UMR => 62 00 00 00 78 9c cd 99 bd 6e db 30 10 80 5f 25 d0 5a 58 24 45 fd 43 11
可以看出:62 00 00 00 是一个little-endian的整数 98 (0x62) 78 9c是inflate编码的幻数。
2. 接下来应该是inflate包,尝试解码得到6666个字节:
3c 41 72 72 61 79 4f 66 4b 65 79 56 61 6c 75 65 4f 66...
3. 尝试以ascii识别:
<ArrayOfKeyValueOfstringArrayOfAQIChartValueQi88cNA_P xmlns="http://scfemas.microsoft.com/2003/10/Serialization/s":iwww.w3.org/2001/XMLSema-instance"><><>PO100</><:aemas.datacontract.org/2004/07/EnvCriteria.BLL"><a:><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>50</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T14:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov7<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov8<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov9sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov21<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiI5ame>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a22<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi63ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov2IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi3Name>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T00sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T02<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi8sStasStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi78ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi80ame>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi73ame>:IsStaCode>1031A</imePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a2><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??/IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 6int></Is><a:Is4><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 116nt></Is><a:Is44</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°???</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 15:nil01/XM>me"/a:IsMon><a54</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??<</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 146nt></Is><a:Is5><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>è??a??ae°?9T1</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimeP14:nil01/XM>me"/a:IsMon><a6><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae?1/IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits013-03-28T16><a:Is><a:Is013-03-28T16><a:ts i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><013-03-28T16><a:iName>è??a??ae°?ae?1/IsPosi+</IsP53ame>:IsStaCode>1031A</3/031A</3/l01/XM>me"/a:IsMon><a24</IsMon><a:IsMov/a:><a:IsLimits i:nil01/XMLSema-instan>
其中有些乱码,估计是字符集不对。
4. 换用UTF-8解码:
<ArrayOfKeyValueOfstringArrayOfAQIChartValueQi88cNA_P xmlns="http://scfemas.microsoft.com/2003/10/Serialization/s":iwww.w3.org/2001/XMLSema-instance"><><>PO100</><:aemas.datacontract.org/2004/07/EnvCriteria.BLL"><a:><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>50</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T14:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov7<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov8<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov9sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov21<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiI5ame>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a22<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi63ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov2IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>西北水源</IsPosi3Name>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T00sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T02<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi8sStasStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>西北水源</IsPosi78ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>西北水源</IsPosi80ame>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi73ame>:IsStaCode>1031A</imePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a2><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源/IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 6int></Is><a:Is4><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 116nt></Is><a:Is44</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水?</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 15:nil01/XM>me"/a:IsMon><a54</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源<</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 146nt></Is><a:Is5><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>西北水9T1</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimeP14:nil01/XM>me"/a:IsMon><a6><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水溱/IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits013-03-28T16><a:Is><a:Is013-03-28T16><a:ts i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><013-03-28T16><a:iName>西北水溱/IsPosi+</IsP53ame>:IsStaCode>1031A</3/031A</3/l01/XM>me"/a:IsMon><a24</IsMon><a:IsMov/a:><a:IsLimits i:nil01/XMLSema-instan>
以上步骤都可以在浏览器里实现
--
FROM 61.135.169.*
说实话,我不会C#.. 总之步骤就是上面的样子,不过有2点:
1. MemoryStream的构造函数指定4偏移:ms = new MemoryStream(bytes, 4, bytes.length-4);
2. 用DeflateStream替换GZipStream
--
FROM 61.135.169.*