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

@@ -36,3 +36,6 @@ If you plan to use the already deployed Vercel version, you should use https://s
``` ```
node local.js 'YOUR_URL_HERE' node local.js 'YOUR_URL_HERE'
``` ```
## Credits
* @H1W0XXX for providing a working X-Bogus script

8
js/webmssdk.js Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{ {
"name": "signtok", "name": "signtok",
"version": "1.1.3", "version": "1.2.0",
"description": "Sign your TikTok requests easily", "description": "Sign your TikTok requests easily",
"repository": "https://github.com/pablouser1/SignTok", "repository": "https://github.com/pablouser1/SignTok",
"author": "Pablo Ferreiro", "author": "Pablo Ferreiro",

View File

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

View File

@@ -51,9 +51,9 @@ acorn@^7.1.1:
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.5.0: acorn@^8.5.0:
version "8.7.1" version "8.8.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
agent-base@6: agent-base@6:
version "6.0.2" version "6.0.2"
@@ -435,9 +435,9 @@ minimatch@^3.1.1:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
minipass@^3.0.0: minipass@^3.0.0:
version "3.3.3" version "3.3.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.3.tgz#fd1f0e6c06449c10dadda72618b59c00f3d6378d" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae"
integrity sha512-N0BOsdFAlNRfmwMhjAsLVWOk7Ljmeb39iqFlsV1At+jqRhSUP9yeof8FyJu4imaJiSUp8vQebWD/guZwGQC8iA== integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==
dependencies: dependencies:
yallist "^4.0.0" yallist "^4.0.0"
@@ -533,9 +533,9 @@ prelude-ls@~1.1.2:
integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
psl@^1.1.33: psl@^1.1.33:
version "1.8.0" version "1.9.0"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
punycode@^2.1.1: punycode@^2.1.1:
version "2.1.1" version "2.1.1"
@@ -772,9 +772,9 @@ wrappy@1:
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
ws@^8.2.3: ws@^8.2.3:
version "8.8.0" version "8.8.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0"
integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==
xml-name-validator@^4.0.0: xml-name-validator@^4.0.0:
version "4.0.0" version "4.0.0"