X-Bogus support

This commit is contained in:
Pablo Ferreiro
2022-08-11 23:18:32 +02:00
parent b614e0d1e3
commit 0e4e612c3c
5 changed files with 41 additions and 21 deletions

View File

@@ -14,6 +14,7 @@ class Signer {
constructor(userAgent = Signer.DEFAULT_USERAGENT) {
const signature_js = fs.readFileSync(__dirname + "/../js/signature.js", "utf-8");
const webmssdk = fs.readFileSync(__dirname + "/../js/webmssdk.js", "utf-8");
const resourceLoader = new ResourceLoader({ userAgent });
const { window } = new JSDOM("", {
@@ -31,6 +32,7 @@ class Signer {
aid: 24,
dfp: true
});
this.window.eval(webmssdk);
}
navigator() {
@@ -48,6 +50,10 @@ class Signer {
return this.window.byted_acrawler.sign({ url });
}
bogus(params) {
return this.window._0x32d649(params);
}
xttparams(params) {
params += "&is_encryption=1";
// Encrypt query string using aes-128-cbc
@@ -55,18 +61,21 @@ class Signer {
return Buffer.concat([cipher.update(params), cipher.final()]).toString("base64");
}
sign(url) {
sign(url_str) {
const url = new URL(url_str);
const verifyFp = Utils.verify_fp();
url += "&verifyFp=" + verifyFp;
const signature = this.signature(url);
const signed_url = url + "&_signature=" + signature;
const params = new URL(url).searchParams.toString();
const xttparams = this.xttparams(params);
url.searchParams.append('verifyFp', verifyFp);
const signature = this.signature(url.toString());
url.searchParams.append('_signature', signature);
const bogus = this.bogus(url.searchParams.toString());
url.searchParams.append('X-Bogus', bogus);
const xttparams = this.xttparams(url.searchParams.toString());
return {
signature: signature,
verify_fp: verifyFp,
signed_url: signed_url,
"x-tt-params": xttparams
signed_url: url.toString(),
"x-tt-params": xttparams,
"X-Bogus": bogus
};
}
}