X-Bogus support

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

No files matched your search

+3
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'
```
## Credits
* @H1W0XXX for providing a working X-Bogus script
+8
View File
@@ -0,0 +1,8 @@
/**
* Modified version from https://github.com/carcabot/tiktok-signature/issues/140#issuecomment-1194196455
* Originally from https://lf3-cdn-tos.bytescm.com/obj/rc-web-sdk/webmssdk/1.0.0.211/webmssdk.js
* MASSIVE thanks to @H1W0XXX for sharing it!
* Changes: Minified and removed Virtual DOM parts, it is not needed thanks to JSDOM
*/
function Request(url,config){return window.vilame_getter.v_Request(arguments),instantiate(_Request,arguments)}!function(){var d=Function.toString,a=[],c=[],e=[].indexOf.bind(a),f=[].push.bind(a),g=[].push.bind(c);function b(a,b){return -1==e(a)&&(f(a),g(`function ${b||a.name||""}() { [native code] }`)),a}Object.defineProperty(Function.prototype,"toString",{enumerable:!1,configurable:!0,writable:!0,value:function(){return"function"==typeof this&&c[e(this)]||d.call(this)}}),b(Function.prototype.toString,"toString"),v_saf=b}(),Headers=!0;var v_saf,_0x3d055f,_0x1ec37f,_0x20cbda,_0x110a3f,_0x5ec876={};document.cookie="odin_tt=4c871679353c1b9d81319a5225be5463816c6714e90b4d31844d8937d90922a4580dc72f703b92c0b7cb8c4402eac7f6c0b1f01b42e3aae469339a616cfb65d9; sid_guard=9e34ba3b5aa466dbfb89b25f72a54b67%7C1658342453%7C5184000%7CSun%2C+18-Sep-2022+18%3A40%3A53+GMT; uid_tt=1659f7d6fe9f6228d9ee8a6c7e8fc859; uid_tt_ss=1659f7d6fe9f6228d9ee8a6c7e8fc859; sid_tt=9e34ba3b5aa466dbfb89b25f72a54b67; sessionid=9e34ba3b5aa466dbfb89b25f72a54b67; sessionid_ss=9e34ba3b5aa466dbfb89b25f72a54b67; sid_ucp_v1=1.0.0-KDVkNjY1NDAyMDExM2I4MTRiNGQyODZmM2QzMjliNjU1MjJhMjVhYjcKHgi4msCzqY0BELWY4ZYGGO8xIAwwj86llQY4AkDxBxoCbHEiIDllMzRiYTNiNWFhNDY2ZGJmYjg5YjI1ZjcyYTU0YjY3; ssid_ucp_v1=1.0.0-KDVkNjY1NDAyMDExM2I4MTRiNGQyODZmM2QzMjliNjU1MjJhMjVhYjcKHgi4msCzqY0BELWY4ZYGGO8xIAwwj86llQY4AkDxBxoCbHEiIDllMzRiYTNiNWFhNDY2ZGJmYjg5YjI1ZjcyYTU0YjY3; d_ticket=f1a926c03578b812ba554fb11b6439c6351d8; n_mh=eMa4humpeD2nDQRWp2oevwafxJW_pL6a39-P8rM69lg; passport_auth_status=1271da04aa671741f6e3eb602a872193%2C; passport_auth_status_ss=1271da04aa671741f6e3eb602a872193%2C; sso_auth_status=b8b5b870b4f7674d9a4c0a00dc789a8d; sso_auth_status_ss=b8b5b870b4f7674d9a4c0a00dc789a8d; sso_uid_tt=1659f7d6fe9f6228d9ee8a6c7e8fc859; sso_uid_tt_ss=1659f7d6fe9f6228d9ee8a6c7e8fc859; toutiao_sso_user=9e34ba3b5aa466dbfb89b25f72a54b67; toutiao_sso_user_ss=9e34ba3b5aa466dbfb89b25f72a54b67; sid_ucp_sso_v1=1.0.0-KDVkNjY1NDAyMDExM2I4MTRiNGQyODZmM2QzMjliNjU1MjJhMjVhYjcKHgi4msCzqY0BELWY4ZYGGO8xIAwwj86llQY4AkDxBxoCbHEiIDllMzRiYTNiNWFhNDY2ZGJmYjg5YjI1ZjcyYTU0YjY3; ssid_ucp_sso_v1=1.0.0-KDVkNjY1NDAyMDExM2I4MTRiNGQyODZmM2QzMjliNjU1MjJhMjVhYjcKHgi4msCzqY0BELWY4ZYGGO8xIAwwj86llQY4AkDxBxoCbHEiIDllMzRiYTNiNWFhNDY2ZGJmYjg5YjI1ZjcyYTU0YjY3; msToken=v7cZBS8kmLW2BIEPmAvtXpUDZsWsAw_EK1xdt_nQZtIroKQpjwncdMmshVkk2kMaKw4EVqAL-oWSEou0cJZO6pwRqAOGzEmZfezoi_HzVcya; passport_csrf_token=bb1a59a9e89e8034824f3cf6c7bd9c49; passport_csrf_token_default=bb1a59a9e89e8034824f3cf6c7bd9c49; ttwid=1%7Ca5Tmiz0bJLpscnONtjoD7U6zX0qNX3rwok-1ikCqi9M%7C1658342427%7Ce849f5129f5e3830d9309f0dc251e056dc6c7549a52aacea201dfef5ad3473d1; __ac_nonce=06221d18000845e66f5b7; __ac_signature=_02B4Z6wo00f01GKQAPQAAIDBCsJvjt5t3zBitQRAAHqN15";var w0_0xa406bf="undefined"==typeof window?global:window;w0_0xa406bf["_$webrt_1645197018"]=function(b,r,s){function z(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(a){return!1}}function A(a,b,c){return(A=z()?Reflect.construct:function(d,e,b){var a=[null];a.push.apply(a,e);var c=new(Function.bind.apply(d,a));return b&&B(c,b.prototype),c}).apply(null,arguments)}function B(a,b){return(B=Object.setPrototypeOf||function(a,b){return a["__proto__"]=b,a})(a,b)}function C(a){return function(a){if(Array.isArray(a)){for(var b=0,c=new Array(a.length);b<a.length;b++)c[b]=a[b];return c}}(a)||function(a){if(Symbol.iterator in Object(a)||"[object Arguments]"===Object.prototype.toString.call(a))return Array.from(a)}(a)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}for(var c=[],i=0,D=[],E=0,j=function(a,b){var f=a[b++],g=a[b],c=parseInt(""+f+g,16);if(c>>7==0)return[1,c];if(c>>6==2){var d=parseInt(""+a[++b]+a[++b],16);return c&=63,[2,d=(c<<=8)+d,]}if(c>>6==3){var h=parseInt(""+a[++b]+a[++b],16),e=parseInt(""+a[++b]+a[++b],16);return c&=63,[3,e=(c<<=16)+(h<<=8)+e,]}},F=function(b,c){var a=parseInt(""+b[c]+b[c+1],16);return a>127?-256+a:a},G=function(a,b){var c=parseInt(""+a[b]+a[b+1]+a[b+2]+a[b+3],16);return c>32767?-65536+c:c},H=function(a,b){var c=parseInt(""+a[b]+a[b+1]+a[b+2]+a[b+3]+a[b+4]+a[b+5]+a[b+6]+a[b+7],16);return c>2147483647?0+c:c},I=function(a,b){return parseInt(""+a[b]+a[b+1],16)},t=function(a,b){return parseInt(""+a[b]+a[b+1]+a[b+2]+a[b+3],16)},u=u||this||window,a=(b.length,0),f="",d=a;d<a+16;d++){var g=""+b[d++]+b[d];g=parseInt(g,16),f+=String.fromCharCode(g)}if("HNOJ@?RC"!=f)throw new Error("error magic number "+f);parseInt(""+b[a+=16]+b[a+1],16),a+=8,i=0;for(var e=0;e<4;e++){var k=a+2*e,v=parseInt(""+b[k++]+b[k],16);i+=(3&v)<<2*e}a+=16;var l=parseInt(""+b[a+=8]+b[a+1]+b[a+2]+b[a+3]+b[a+4]+b[a+5]+b[a+6]+b[a+7],16),w=l,x=a+=8,m=t(b,a+=l);m[1],a+=4,c={p:[],q:[]};for(var n=0;n<m;n++){for(var o=j(b,a),h=a+=2*o[0],y=c.p.length,p=0;p<o[1];p++){var q=j(b,h);c.p.push(q[1]),h+=2*q[0]}a=h,c.q.push([y,c.p.length])}var J={5:1,Line truncated
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "signtok",
"version": "1.1.3",
"version": "1.2.0",
"description": "Sign your TikTok requests easily",
"repository": "https://github.com/pablouser1/SignTok",
"author": "Pablo Ferreiro",
+17 -8
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
};
}
}
+12 -12
View File
@@ -51,9 +51,9 @@ acorn@^7.1.1:
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.5.0:
version "8.7.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
version "8.8.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
agent-base@6:
version "6.0.2"
@@ -435,9 +435,9 @@ minimatch@^3.1.1:
brace-expansion "^1.1.7"
minipass@^3.0.0:
version "3.3.3"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.3.tgz#fd1f0e6c06449c10dadda72618b59c00f3d6378d"
integrity sha512-N0BOsdFAlNRfmwMhjAsLVWOk7Ljmeb39iqFlsV1At+jqRhSUP9yeof8FyJu4imaJiSUp8vQebWD/guZwGQC8iA==
version "3.3.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae"
integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==
dependencies:
yallist "^4.0.0"
@@ -533,9 +533,9 @@ prelude-ls@~1.1.2:
integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
psl@^1.1.33:
version "1.8.0"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
version "1.9.0"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
punycode@^2.1.1:
version "2.1.1"
@@ -772,9 +772,9 @@ wrappy@1:
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
ws@^8.2.3:
version "8.8.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769"
integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==
version "8.8.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0"
integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==
xml-name-validator@^4.0.0:
version "4.0.0"