Chapter 3 - analyze the data structure in log and sensor data

Posted by nonexistentera on Wed, 23 Oct 2019 22:30:25 +0200

Analyze log and sensor data data structure

This article provides web-side ideas, ios and android side ideas are not provided, api has also been offline, this article does not provide any executable code. Welcome to github code for more questions

Agreement

Authorization agreement: only the sharing, use and modification of research and learning purposes are allowed, and no commercial purpose is allowed. Please indicate the source of reprint, thank you.

Start analysis

Provide partial structure

//Data symmetry 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,': '',
};

Step 1: open log debug

F12 control to open bmak log

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

Then you can see the log. In the future, we can analyze the execution process of the program according to its internal debug data. Of course, we can go directly to debug, but it's not accurate. My idea is to provide the nike official website, and then execute some hook processes to monitor its process. In this way, the data is also true 1:1 data, without any error.

<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 some logic after optimizing the code.

  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));

Split some data print instances

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 = {};

  }
}

The approximate data structure is as follows. Next, we only need to complete the data in this step by step to fill and 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'
]

Now, I'm going to give you some ideas. In the next part, we start to split the data in sensor data, and then we'll explain and mock it.

Blog: https://github.com/zhaojunlike

Topics: Javascript github iOS Android Windows