mirror of
https://github.com/pysunday/rs-reverse.git
synced 2025-04-22 06:17:53 +08:00
feat: add uuid、numToNumber4 function, add bignum list
This commit is contained in:
parent
cc899698f8
commit
852a6478b5
@ -5,6 +5,12 @@ const _get = require('lodash/get');
|
|||||||
const cache = {};
|
const cache = {};
|
||||||
|
|
||||||
class GlobalVarible {
|
class GlobalVarible {
|
||||||
|
get bignum() {
|
||||||
|
return cache.bignum;
|
||||||
|
}
|
||||||
|
get utils() {
|
||||||
|
return cache.utils;
|
||||||
|
}
|
||||||
get cp0() {
|
get cp0() {
|
||||||
return cache.cp0;
|
return cache.cp0;
|
||||||
}
|
}
|
||||||
|
13
src/handler/parser/bignum.js
Normal file
13
src/handler/parser/bignum.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
const gv = require('@src/handler/globalVarible');
|
||||||
|
|
||||||
|
exports.init = function() {
|
||||||
|
const arr = [];
|
||||||
|
for (let i = 0; i < gv.cp2[30]; i++) {
|
||||||
|
let item = i;
|
||||||
|
for (_$iv = 0; _$iv < gv.cp2[52]; _$iv++) {
|
||||||
|
item = item & 1 ? gv.cp2[167] ^ item >>> 1 : item >>> 1;
|
||||||
|
}
|
||||||
|
arr[i] = item;
|
||||||
|
}
|
||||||
|
gv.setAttr('bignum', arr);
|
||||||
|
}
|
@ -6,4 +6,6 @@ exports.encrypt = require('./encrypt');
|
|||||||
exports.decrypt = require('./decrypt');
|
exports.decrypt = require('./decrypt');
|
||||||
exports.extrace = require('./extrace');
|
exports.extrace = require('./extrace');
|
||||||
exports.decode = require('./decode');
|
exports.decode = require('./decode');
|
||||||
|
exports.uuid = require('./uuid');
|
||||||
|
exports.numToNumarr4 = require('./numToNumarr4');
|
||||||
|
|
||||||
|
12
src/handler/parser/common/numToNumarr4.js
Normal file
12
src/handler/parser/common/numToNumarr4.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// 将数字转换为4位数字数组
|
||||||
|
const gv = require('@src/handler/globalVarible');
|
||||||
|
|
||||||
|
module.exports = function (num) {
|
||||||
|
if (typeof num !== 'number') num = 0;
|
||||||
|
return [
|
||||||
|
num >> gv.cp2[4] & gv.cp2[34],
|
||||||
|
num >> gv.cp2[2] & gv.cp2[34],
|
||||||
|
num >> gv.cp2[52] & gv.cp2[34],
|
||||||
|
num & gv.cp2[34]
|
||||||
|
];
|
||||||
|
}
|
16
src/handler/parser/common/uuid.js
Normal file
16
src/handler/parser/common/uuid.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// 处理字符串或者数字数字返回唯一标识
|
||||||
|
const gv = require('@src/handler/globalVarible');
|
||||||
|
|
||||||
|
function str2code(str) {
|
||||||
|
str = unescape(encodeURIComponent(str));
|
||||||
|
return str.split('').map(it => it.charCodeAt())
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = function (numarr) {
|
||||||
|
if (typeof numarr === 'string') numarr = str2code(numarr);
|
||||||
|
let val = 0 ^ gv.cp2[41];
|
||||||
|
for (let i = 0; i < numarr.length; ) {
|
||||||
|
val = val >>> gv.cp2[52] ^ gv.bignum[(val ^ numarr[i++]) & gv.cp2[34]];
|
||||||
|
}
|
||||||
|
return (val ^ gv.cp2[41]) >>> 0;
|
||||||
|
}
|
@ -2,10 +2,12 @@ const gv = require('../globalVarible');
|
|||||||
const common = require('./common');
|
const common = require('./common');
|
||||||
|
|
||||||
function init(ts) {
|
function init(ts) {
|
||||||
|
gv.setAttr('utils', common);
|
||||||
gv.setAttr('ts', ts);
|
gv.setAttr('ts', ts);
|
||||||
require('./r2mka').init();
|
require('./r2mka').init();
|
||||||
require('./tscp').init();
|
require('./tscp').init();
|
||||||
require('./tscd').init();
|
require('./tscd').init();
|
||||||
|
require('./bignum').init();
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -26,6 +26,7 @@ const valueMap = {
|
|||||||
'parseFloat': swap(gv.cp0_96(5, 18)) + hexnum(gv.cp0_96(8, 30)),
|
'parseFloat': swap(gv.cp0_96(5, 18)) + hexnum(gv.cp0_96(8, 30)),
|
||||||
'11.678': hexnum(gv.cp0_96(7, 17)),
|
'11.678': hexnum(gv.cp0_96(7, 17)),
|
||||||
'1.234': swap(gv.cp0_96(8, 36)),
|
'1.234': swap(gv.cp0_96(8, 36)),
|
||||||
|
'captureStackTrace': main(gv.cp0_96(7, 63))[0],
|
||||||
}
|
}
|
||||||
|
|
||||||
test('test cp0_96', () => {
|
test('test cp0_96', () => {
|
||||||
|
@ -1,6 +1,18 @@
|
|||||||
const paths = require('@utils/paths');
|
const paths = require('@utils/paths');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { main, swap, hexnum, combine4, decrypt, encrypt, extrace, init, decode } = require('../src/handler/parser/');
|
const {
|
||||||
|
init,
|
||||||
|
main,
|
||||||
|
swap,
|
||||||
|
hexnum,
|
||||||
|
combine4,
|
||||||
|
decrypt,
|
||||||
|
encrypt,
|
||||||
|
extrace,
|
||||||
|
decode,
|
||||||
|
uuid,
|
||||||
|
numToNumarr4,
|
||||||
|
} = require('../src/handler/parser/');
|
||||||
const tsFullPath = paths.exampleResolve('codes', '1-$_ts-full.json');
|
const tsFullPath = paths.exampleResolve('codes', '1-$_ts-full.json');
|
||||||
init(JSON.parse(fs.readFileSync(tsFullPath, 'utf8')));
|
init(JSON.parse(fs.readFileSync(tsFullPath, 'utf8')));
|
||||||
const gv = require('@src/handler/globalVarible');
|
const gv = require('@src/handler/globalVarible');
|
||||||
@ -28,8 +40,14 @@ describe('test parser common', () => {
|
|||||||
const arr = encrypt(decrypt('GGZGPQnkMJBUeWs2sLstGIr6oLYDI3AX'), gv.keys[17]);
|
const arr = encrypt(decrypt('GGZGPQnkMJBUeWs2sLstGIr6oLYDI3AX'), gv.keys[17]);
|
||||||
expect(extrace(arr)).toEqual([[], [], [47, 115, 103, 116, 109, 105], [], [], [], []]);
|
expect(extrace(arr)).toEqual([[], [], [47, 115, 103, 116, 109, 105], [], [], [], []]);
|
||||||
});
|
});
|
||||||
test('test extrace', () => {
|
test('test decode', () => {
|
||||||
const arr = extrace(encrypt(decrypt('GGZGPQnkMJBUeWs2sLstGIr6oLYDI3AX'), gv.keys[17]));
|
const arr = extrace(encrypt(decrypt('GGZGPQnkMJBUeWs2sLstGIr6oLYDI3AX'), gv.keys[17]));
|
||||||
expect(decode(arr[2])).toBe('/sgtmi');
|
expect(decode(arr[2])).toBe('/sgtmi');
|
||||||
});
|
});
|
||||||
|
test('test uuid', () => {
|
||||||
|
expect(uuid("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36")).toBe(2290443310);
|
||||||
|
});
|
||||||
|
test('test uuid', () => {
|
||||||
|
expect(numToNumarr4(uuid("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"))).toEqual([136, 133, 100, 46]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user