Part III - Structure Data logging and analysis of sensor-data

Analysis of the log and sensor-data data structure

This article provides web-side thinking, ios and android does not provide end ideas, api has also been off the assembly line, this article does not provide any executable code. There are more questions please view the code github

protocol

License: only allow researchers to learn the purpose of sharing, use, modification, does not allow any commercial purposes. Please indicate the source, thanks.

Start analyzing

Provide some structure

//数据对称结构
export const KeysMap = {
  '-1,2,-94,-100,': 'user_agent',
  '-1,2,-94,-101,': 'sensor_status',
  '-1,2,-94,-105,': 'informinfo',
  '-1,2,-94,-102,': '',
  '-1,2,-94,-108,': 'kact',
  '-1,2,-94,-110,': '',
  '-1,2,-94,-117,': '',
  '-1,2,-94,-111,': '',
  '-1,2,-94,-109,': '',
  '-1,2,-94,-114,': '',
  '-1,2,-94,-103,': '',
  '-1,2,-94,-112,': '',
  '-1,2,-94,-115,': '',
  '-1,2,-94,-106,': '',
  '-1,2,-94,-119,': '',
  '-1,2,-94,-122,': 'host_url',
  '-1,2,-94,-124,': '',
  '-1,2,-94,-70,': '',
  '-1,2,-94,-80,': '',
  '-1,2,-94,-116,': '',
  '-1,2,-94,-118,': '',
  '-1,2,-94,-121,': '',
  // '-1,2,-94,-120,': '',
};

The first step to open debug log

F12 control the opening bmak log

bmak.sd_debug=(a)=>{ console.log(a); }

Then you can see the log, follow us to perform process analysis program according to the debug information he inside, of course, can go debug directly, but not exactly my idea is to provide nike official website, and then perform some hook process, to monitor him process, so more real, real data is 1: 1 data without errors

<bpd>
VM695:1 ,s1:1.43-1,2,-
VM695:1 ,s4
VM695:1 </bpd>
VM695:1 <bpd>
VM695:1 ,s1:1.43-1,2,-
VM695:1 ,s4
VM695:1 </bpd>
VM695:1 <bpd>

For example, we can see part of the optimized code logic

  bmak.sensor_data = bmak['ver'] + '-1,2,-94,-100,' + n;
      bmak.sensor_data += '-1,2,-94,-101,' + i;
      bmak.sensor_data += '-1,2,-94,-105,' + bmak['informinfo'];
      bmak.sensor_data += '-1,2,-94,-102,' + c;
      bmak.sensor_data += '-1,2,-94,-108,' + bmak['kact'];
      bmak.sensor_data += '-1,2,-94,-110,' + bmak['mact'];
      bmak.sensor_data += '-1,2,-94,-117,' + bmak['tact'];
      bmak.sensor_data += '-1,2,-94,-111,' + bmak['doact'];
      bmak.sensor_data += '-1,2,-94,-109,' + bmak['dmact'];
      bmak.sensor_data += '-1,2,-94,-114,' + bmak['pact'];
      bmak.sensor_data += '-1,2,-94,-103,' + bmak['vcact'];
      bmak.sensor_data += '-1,2,-94,-112,' + b;
      bmak.sensor_data += '-1,2,-94,-115,' + f;
      bmak.sensor_data += '-1,2,-94,-106,' + d;
      bmak.sensor_data += '-1,2,-94,-119,' + bmak['mr'];
      bmak.sensor_data += '-1,2,-94,-122,' + v;
      bmak.sensor_data += '-1,2,-94,-123,' + h;
      bmak.sensor_data += '-1,2,-94,-124,' + g;
      const w = bmak.ab(bmak.sensor_data);
      bmak.sensor_data += '-1,2,-94,-70,' + bmak['fpcf']['fpValstr'];
      bmak.sensor_data += '-1,2,-94,-80,' + p;
      bmak.sensor_data += '-1,2,-94,-116,' + bmak['o9'];
      bmak.sensor_data += '-1,2,-94,-118,' + w;
      bmak.sensor_data += '-1,2,-94,-121,';
      console.log(bmak.sensor_data);
      bmak['sd_debug'](',s1:' + bmak.sensor_data.slice(0, 10));

Examples of print data splitting portion

export class AkamaiWeb {

  static splitStr(str: string) {
    for (let keysMapKey in KeysMap) {
      const reg = new RegExp(`${keysMapKey}`, 'g');
      //str = str.replace(reg, `$FUCK${KeysMap[keysMapKey]}$FUCK`);
      str = str.replace(reg, `$FUCK${keysMapKey}$FUCK`);
    }
    const list = str.split('$FUCK');
    console.log(list);
  }

  public static publicKey = 'afSbep8yjnZUjq3aL010jO15Sawj2VZfdYK8uY90uxq';

  mock() {
    const data = {};

  }
}

Probably the following data structure, then we only need to complete this step by step up to fill the inside of the data and be able to complete a mock

[
  '7a74G7m23Vrp0o5c9018361.43',
  '-1,2,-94,-100,',
  'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0,uaend,11059,20100101,zh-CN,Gecko,0,0,0,0,386747,9033567,2560,1410,2560,1440,1301,1314,2576,,cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:1,sc:0,wrc:1,isc:96,vib:1,bat:0,x11:0,x12:1,5549,0.425236066212,785919516783.5,loc:',
  '-1,2,-94,-101,',
  'do_en,dm_en,t_dis',
  '-1,2,-94,-105,',
  '',
  '-1,2,-94,-102,',
  '',
  '-1,2,-94,-108,',
  '',
  '-1,2,-94,-110,',
  '0,1,182,1254,605;1,1,195,1184,595;2,1,217,1083,574;3,1,231,1046,569;4,1,253,972,556;5,1,265,937,547;6,1,279,925,544;7,1,300,883,531;8,1,314,859,525;9,1,334,828,514;10,1,349,804,506;11,1,363,782,496;12,1,384,769,491;13,1,397,767,490;14,3,419,767,490,-1;15,4,488,767,490,-1;16,2,488,767,490,-1;17,1,502,766,490;18,1,516,765,490;19,1,529,764,490;20,1,550,761,494;21,1,556,756,500;22,1,563,748,515;23,1,571,742,530;24,1,578,736,551;25,1,584,723,577;26,1,598,712,606;27,1,605,702,633;28,1,612,693,659;29,1,619,684,676;30,1,626,679,689;31,1,633,675,697;32,1,647,673,702;33,1,654,672,703;34,1,661,671,704;35,3,680,671,704,-1;36,4,768,671,704,-1;37,2,768,671,704,-1;38,1,786,672,705;39,1,793,676,705;40,1,806,683,709;41,1,814,693,712;42,1,821,702,715;43,1,827,718,720;44,1,834,745,728;45,1,841,773,736;46,1,848,803,746;47,1,861,837,753;48,1,868,870,763;49,1,876,892,771;50,1,882,914,776;51,1,890,930,780;52,1,896,942,783;53,1,910,952,787;54,1,917,962,790;55,1,924,967,792;56,1,931,972,795;57,1,938,973,795;58,1,952,975,795;59,1,1001,975,796;60,1,1015,975,798;61,1,1022,975,801;62,1,1029,974,805;63,1,1036,968,812;64,1,1042,961,818;65,1,1049,952,825;66,1,1056,942,832;67,1,1070,933,837;68,1,1077,920,844;69,1,1084,909,849;70,1,1091,898,852;71,1,1098,887,856;72,1,1105,879,859;73,1,1119,870,860;74,1,1126,864,860;75,1,1133,859,861;76,1,1140,857,861;77,1,1184,856,861;78,1,1195,856,857;79,1,1202,856,850;80,1,1209,856,842;81,1,1223,860,832;82,1,1230,866,820;83,1,1237,874,803;84,1,1245,878,789;85,1,1251,886,774;86,1,1257,887,762;87,1,1264,888,751;88,1,1279,889,740;89,1,1286,888,732;90,1,1293,886,724;91,1,1300,880,717;92,1,1307,870,711;93,1,1313,856,707;94,1,1320,839,705;95,1,1334,814,704;96,1,1342,782,704;97,1,1348,746,704;98,1,1355,706,704;99,1,1362,665,704;100,1,1369,624,704;101,1,1383,584,704;102,1,1390,551,704;103,1,1396,519,711;104,1,1404,498,715;105,1,1410,483,721;343,3,3600,701,246,-1;345,4,3673,700,247,-1;346,2,3673,700,247,-1;736,3,7089,728,392,-1;737,4,7160,728,392,-1;738,2,7161,728,392,-1;811,3,7786,725,372,-1;820,4,7874,725,382,-1;821,2,7874,725,382,-1;1054,3,9784,424,739,-1;1064,4,9880,1004,801,-1;1065,2,9880,1004,801,-1;1085,3,10160,631,421,-1;1086,4,10248,631,421,-1;1087,2,10248,631,421,-1;1088,3,10369,631,421,-1;1089,4,10433,631,421,-1;1090,2,10433,631,421,-1;1101,3,10554,571,397,-1;1103,4,10622,570,397,-1;1104,2,10622,570,397,-1;1117,3,10729,627,382,-1;1121,4,10810,645,382,-1;1122,2,10810,645,382,-1;1219,3,11627,381,114,217;1223,4,11707,373,124,217;1224,2,11707,373,124,217;1243,3,11864,272,278,-1;1252,4,11969,309,324,-1;1253,2,11969,309,324,-1;1284,3,12235,576,685,-1;1286,4,12321,577,686,-1;1287,2,12321,577,686,-1;1303,3,12457,404,756,-1;1313,4,12568,600,784,-1;1314,2,12568,600,784,-1;1321,3,12657,679,807,-1;1327,4,12745,644,818,-1;1328,2,12745,644,818,-1;1341,3,12856,380,836,-1;1346,4,12928,399,829,-1;1347,2,12928,399,829,-1;1362,3,13050,887,773,-1;1371,4,13129,826,457,-1;1372,2,13129,826,457,-1;1397,3,13402,361,501,-1;1404,4,13504,389,527,-1;1405,2,13504,389,527,-1;1416,3,13608,558,557,-1;1417,4,13689,558,557,-1;1418,2,13690,558,557,-1;1419,3,13769,558,557,-1;1420,4,13848,558,557,-1;1421,2,13848,558,557,-1;1422,3,13928,558,557,-1;1423,4,14002,558,557,-1;1424,2,14002,558,557,-1;1425,3,14088,558,557,-1;1426,4,14168,558,557,-1;1427,2,14168,558,557,-1;1428,3,14232,558,557,-1;1430,4,14330,558,558,-1;1431,2,14330,558,558,-1;1432,3,14400,558,558,-1;1433,4,14490,558,558,-1;1434,2,14490,558,558,-1;1435,3,14560,558,558,-1;1436,4,14656,558,558,-1;1437,2,14656,558,558,-1;',
  '-1,2,-94,-117,',
  '',
  '-1,2,-94,-111,',
  '',
  '-1,2,-94,-109,',
  '',
  '-1,2,-94,-114,',
  '',
  '-1,2,-94,-103,',
  '3,422;2,40969;3,43251;',
  '-1,2,-94,-112,',
  'http://nike.oeynet.com/snkrs/index.html',
  '-1,2,-94,-115,',
  '1,1230925,0,0,0,0,1230924,44089,0,1571839033567,28,16815,0,2670,2802,319,0,44089,903788,1,2,50,654,800069665,25510064',
  '-1,2,-94,-106,',
  '1,0',
  '-1,2,-94,-119,',
  '200,200,0,0,0,0,200,0,0,0,0,0,0,0,',
  '-1,2,-94,-122,',
  '0,0,0,0,1,0,0-1,2,-94,-123,',
  '-1,2,-94,-124,',
  '',
  '-1,2,-94,-70,',
  '-350861708;dis;;true;true;true;-480;true;24;24;true;false;unspecified',
  '-1,2,-94,-80,',
  '5878',
  '-1,2,-94,-116,',
  '9033550',
  '-1,2,-94,-118,',
  '223224',
  '-1,2,-94,-121,',
  ';0;4;0'
]

Well, I am currently provide ideas here, the next section, we begin to split the data in the sensor-data, then this explanation and mock

Blog: https://github.com/zhaojunlike

Guess you like

Origin www.cnblogs.com/xiaojunzi/p/11729669.html