Skip to content

Commit

Permalink
fix(Player): Fix extracting the n-token decipher algorithm (#682)
Browse files Browse the repository at this point in the history
* fix(Player): Fix extracting the n-token decipher algorithm

* fix: bump Jinter to v2

---------

Co-authored-by: Luan <luan.lrt4@gmail.com>
  • Loading branch information
absidue and LuanRT committed Jul 10, 2024
1 parent efa7205 commit 142a7d0
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 11 deletions.
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
},
"license": "MIT",
"dependencies": {
"jintr": "^1.1.0",
"jintr": "^2.0.0",
"tslib": "^2.5.0",
"undici": "^5.19.1"
},
Expand Down
16 changes: 12 additions & 4 deletions src/core/Player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -220,12 +220,20 @@ export default class Player {
}

static extractNSigSourceCode(data: string): string {
const sc = `function descramble_nsig(a) { let b=a.split("")${getStringBetweenStrings(data, 'b=a.split("")', '}return b.join("")}')}} return b.join(""); } descramble_nsig(nsig)`;
let sc = getStringBetweenStrings(data, 'b=a.split("")', '}return b.join("")}');

if (!sc)
Log.warn(TAG, 'Failed to extract n-token decipher algorithm');
if (sc)
return `function descramble_nsig(a) { let b=a.split("")${sc}} return b.join(""); } descramble_nsig(nsig)`;

return sc;
sc = getStringBetweenStrings(data, 'b=String.prototype.split.call(a,"")', '}return Array.prototype.join.call(b,"")}');

if (sc)
return `function descramble_nsig(a) { let b=String.prototype.split.call(a, "")${sc}} return Array.prototype.join.call(b, ""); } descramble_nsig(nsig)`;

// We really should throw an error here to avoid errors later, returning a pass-through function for backwards-compatibility
Log.warn(TAG, 'Failed to extract n-token decipher algorithm');

return 'function descramble_nsig(a) { return a; } descramble_nsig(nsig)';
}

get url(): string {
Expand Down
4 changes: 2 additions & 2 deletions src/platform/jsruntime/jinter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ const TAG = 'JsRuntime';
export default function evaluate(code: string, env: Record<string, VMPrimative>) {
Log.debug(TAG, 'Evaluating JavaScript:\n', code);

const runtime = new Jinter(code);
const runtime = new Jinter();

for (const [ key, value ] of Object.entries(env)) {
runtime.scope.set(key, value);
}

const result = runtime.interpret();
const result = runtime.evaluate(code);

Log.debug(TAG, 'Done. Result:', result);

Expand Down

0 comments on commit 142a7d0

Please sign in to comment.