我不知道如何形成的问题,所以我道歉如果标题是一种误导。此外,您可能想要获得一些咖啡,并采取一座为这个...这是漫长的。

基本上,我试图扭转工程师的协议使用的Windows的移动实时搜索应用程序得到的位置的基础上;.在我继续之前,我知道还有其他开源服务(例如OpenCellID),但这更多的是为了教育和一个位于冗余。

根据该分组的,我拍摄的,一个员额的请求是为了...

mobile.search.live.com/positionlookupservice_1/service.aspx

...与几个特定的标题(剂的内容的长度,等等)和没有身体。一旦通过,服务器发送回来一个100-继续响应。在这一点上,应用程序提交这些数据(我砍掉的包头):

                  00 00 00 01 00 00 00 05 55 54         ........UT
46 2d 38 05 65 6e 2d 55 53 05 65 6e 2d 55 53 01   F-8.en-US.en-US.
06 44 65 76 69 63 65 05 64 75 6d 6d 79 01 06 02   .Device.dummy...
50 4c 08 0e 52 65 76 65 72 73 65 47 65 6f 63 6f   PL..ReverseGeoco
64 65 01 07 0b 47 50 53 43 68 69 70 49 6e 66 6f   de...GPSChipInfo
01 20 06 09 43 65 6c 6c 54 6f 77 65 72 06 03 43   . ..CellTower..C
47 49 08 03 4d 43 43 b6 02 07 03 4d 4e 43 03 34   GI..MCC....MNC.4
31 30 08 03 4c 41 43 cf 36 08 02 43 49 fd 01 00   10..LAC.6..CI...
00 00 00                                          ...

和接收,这回应(包和HTTP response headers碎):

         00 00 00 01 00 00 00 00 01 06 02 50 4c      ...........PL
06 08 4c 6f 63 61 6c 69 74 79 06 08 4c 6f 63 61   ..Locality..Loca
74 69 6f 6e 07 03 4c 61 74 09 34 32 2e 33 37 35   tion..Lat.42.375
36 32 31 07 04 4c 6f 6e 67 0a 2d 37 31 2e 31 35   621..Long.-71.15
38 39 33 38 00 07 06 52 61 64 69 75 73 09 32 30   8938...Radius.20
30 30 2e 30 30 30 30 00 42 07 0c 4c 6f 63 61 6c   00.0000.B..Local
69 74 79 4e 61 6d 65 09 57 61 74 65 72 74 6f 77   ityName.Watertow
6e 07 16 41 64 6d 69 6e 69 73 74 72 61 74 69 76   n..Administrativ
65 41 72 65 61 4e 61 6d 65 0d 4d 61 73 73 61 63   eAreaName.Massac
68 75 73 65 74 74 73 07 10 50 6f 73 74 61 6c 43   husetts..PostalC
6f 64 65 4e 75 6d 62 65 72 05 30 32 34 37 32 07   odeNumber.02472.
0b 43 6f 75 6e 74 72 79 4e 61 6d 65 0d 55 6e 69   .CountryName.Uni
74 65 64 20 53 74 61 74 65 73 00 00 00            ted States...

现在,这里是什么我确定迄今为止:

  • 所有串的前面添加一个 字节是小相当的 他们的长度。

  • 似乎有三种不同的 蒙上,用于整个的 请求和响应。他们显示出来 作为一个字之前的长字节。我的结论是,三种类型 地图出如下:

    1. 0x06-父元(后 值的儿童,封闭与0x00)
    2. 0x07串
    3. 0x08-int?

根据这些决定,这里是什么样的请求和响应看起来像在一个更具可读性方式(价值观周围括号表示的长度和价值观周围括号表示铸):

\0x00\0x00\0x00\0x01\0x00\0x00\0x00
[5]UTF-8
[5]en-US
[5]en-US
\0x01
[6]Device
[5]dummy
\0x01
(6)[2]PL
  (8)[14]ReverseGeocode\0x01
  (7)[11]GPSChipInfo[1]\0x20
  (6)[9]CellTower
    (6)[3]CGI
      (8)[3]MCC\0xB6\0x02         //310
      (7)[3]MNC[3]410             //410
      (8)[3]LAC\0xCF\0x36         //6991
      (8)[2]CI\0xFD\0x01          //259
    \0x00
  \0x00
\0x00
\0x00

和..

\0x00\0x00\0x00\0x01\0x00\0x00\0x00
\0x00\0x01
(6)[2]PL
  (6)[8]Locality
    (6)[8]Location
      (7)[3]Lat[9]42.375621
      (7)[4]Long[10]-71.158938
    \0x00
    (7)[6]Radius[9]2000.0000
  \0x00
  \0x42     //"B" ... Has to do with GSM
  (7)[12]LocalityName[9]Watertown
  (7)[22]AdministrativeAreaName[13]Massachusetts
  (7)[16]PostalCodeNumber[5]02472
  (7)[11]CountryName[13]United States
\0x00
\0x00\0x00

我的分析似乎运作得非常好除了一些事情:

  1. 该0x01s在整个混淆我...起初我以为他们是一些 种基层的元素 终结者,但我不肯定。
  2. 我不确定的7字节的标题, 事实上,七个字节的标题。我 不知道,如果这也许4个字节, 这三个剩余的0x00s是 其他一些重要的意义。
  3. 后0x00s.为什么 只有一个请求但是 两个在反应?
  4. 第8型铸上面提到的...我似乎无法找出如何的那些 值正在被编码。我加入 评论意见,这些线路什么的 值 应该 对应。

任何意见,在这四点将是极大的赞赏。

是的,这些报文被抓获Watertown,MA.:)

有帮助吗?

解决方案

我还没有读过你所有的细目,但是你可能会喜欢看 演示这似乎已经破裂谷歌celltower要位置。它看起来就像是吐出celltower ID到这是件喜欢什么是必需的现场搜寻请求。

也许这会帮助你一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top