韩龙 发表于 2019-12-3 23:41

抖音网页版上传视频_signature分析

本帖最后由 韩龙 于 2020-2-5 02:13 编辑

前几天。抖音网页版发布视频最后布加入了_signature参数

所以没有正确的SIGNATURE发布会直接显示,视频未通过
自己也尝试分析了下。但是还是没有提取出来。具体那个步骤出错还不清楚。

发布POST如下
media.douyin.com/web/api/media/aweme/create/?_signature=tVydtAAgEA1Hc6.zclu8-LVcnaAAOjK
video_id=v0200f550000bngc777a1hai6lt6tlrg&poster=tos-cn-p-0015%2Fa456e85a0e014581b8e3e9d92db53af1&poster_delay=0&text=123456789&text_extra=%5B%5D&visibility_type=0&challenges=%5B%5D&mentions=%5B%5D&third_text=123456789&download=0&upload_source=1&shop_draft_id=&mix_id=&mix_order=
其余参数都可以在其他地方获取到。具体的我不分析了,我只对signature分析谷歌浏览器,web开发工具插件
点开SOURCES资源。搜索signature

查找结果如下。一个个查看下。最终确定在最后一个

点击括号格式化代码

在当前的文档搜索signature

可以看到_signature是由i赋值过来的。
var i = Object(_byted_acrawler__WEBPACK_IMPORTED_MODULE_1__.sign)(o);
如我们不确定可以在这里下个断。上面截图中就是断下的i的值。证明我们是找对了地方的
_byted_acrawler__WEBPACK_IMPORTED_MODULE_1__这猜测是一个函数,但是又是什么玩意?玩上翻多几行。可以看到。
_byted_acrawler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(“43703b0f330bf4830f6c”)
是通过webpack打包工具之后的一个请求。
继续全资源搜索这个43703b0f330bf4830f6c


只有2个地方出现过。我们点进去看看再说,

看到这里其实跟获取无水印的那个signature很相似。具体见最后的DEMO

var i = Object(_byted_acrawler__WEBPACK_IMPORTED_MODULE_1__.sign)(o);中的o是

在console中调试O好像没起作用

因为我这里要求不用到模块,调用。要扒出来用。


下面是我参考了获取无水印代码写的HTML。
<script type="text/javascript">
var s = function(l) {
    this.navigator = {
      userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0)"
    }
      
    var e = {}
    var n = (function () {
    function e(e, a, r) {
      return (b || (b = t("x,y", "return x " + e + " y")))(r, a)
    }
    function a(e, a, r) {
      return (k || (k = t("x,y", "return new x(" + Array(r + 1).join(",x[++y]").substr(1) + ")")))(e, a)
    }
    function r(e, a, r) {
      var n, t, s = {}, b = s.d = r ? r.d + 1 : 0;
      for (s["$" + b] = s,
      t = 0; t < b; t++)
            s = r;
      for (t = 0,
      b = s.length = a.length; t < b; t++)
            s = a;
      return c(e, 0, s)
    }
    function c(t, b, k) {
      function u(e) {
            v = e
      }
      function f() {
            return g = t.charCodeAt(b++) - 32,
            t.substring(b, b += g)
      }
      function l() {
            try {
                y = c(t, b, k)
            } catch (e) {
                h = e,
                y = l
            }
      }
      for (var h, y, d, g, v = [], x = 0; ; )
            switch (g = t.charCodeAt(b++) - 32) {
            case 1:
                u(!v[--x]);
                break;
            case 4:
                v = f();
                break;
            case 5:
                u(function(e) {
                  var a = 0
                      , r = e.length;
                  return function() {
                        var c = a < r;
                        return c && u(e),
                        c
                  }
                }(v[--x]));
                break;
            case 6:
                y = v[--x],
                u(v[--x](y));
                break;
            case 8:
                if (g = t.charCodeAt(b++) - 32,
                l(),
                b += g,
                g = t.charCodeAt(b++) - 32,
                y === c)
                  b += g;
                else if (y !== l)
                  return y;
                break;
            case 9:
                v = c;
                break;
            case 10:
                u(s(v[--x]));
                break;
            case 11:
                y = v[--x],
                u(v[--x] + y);
                break;
            case 12:
                for (y = f(),
                d = [],
                g = 0; g < y.length; g++)
                  d = y.charCodeAt(g) ^ g + y.length;
                u(String.fromCharCode.apply(null, d));
                break;
            case 13:
                y = v[--x],
                h = delete v[--x];
                break;
            case 14:
                v = t.charCodeAt(b++) - 32;
                break;
            case 59:
                u((g = t.charCodeAt(b++) - 32) ? (y = x,
                v.slice(x -= g, y)) : []);
                break;
            case 61:
                u(v[--x]);
                break;
            case 62:
                g = v[--x],
                k = 65599 * k + k.charCodeAt(g) >>> 0;
                break;
            case 65:
                h = v[--x],
                y = v[--x],
                v[--x] = h;
                break;
            case 66:
                u(e(t, v[--x], v[--x]));
                break;
            case 67:
                y = v[--x],
                d = v[--x],
                u((g = v[--x]).x === c ? r(g.y, y, g.z) : g.apply(d, y));
                break;
            case 68:
                u(e((g = t) < "<" ? (b--,
                f()) : g + g, v[--x], v[--x]));
                break;
            case 70:
                u(!1);
                break;
            case 71:
                v = n;
                break;
            case 72:
                v = +f();
                break;
            case 73:
                u(parseInt(f(), 36));
                break;
            case 75:
                if (v[--x]) {
                  b++;
                  break
                }
            case 74:
                g = t.charCodeAt(b++) - 32 << 16 >> 16,
                b += g;
                break;
            case 76:
                u(k);
                break;
            case 77:
                y = v[--x],
                u(v[--x]);
                break;
            case 78:
                g = t.charCodeAt(b++) - 32,
                u(a(v, x -= g + 1, g));
                break;
            case 79:
                g = t.charCodeAt(b++) - 32,
                u(k["$" + g]);
                break;
            case 81:
                h = v[--x],
                v[--x] = h;
                break;
            case 82:
                u(v[--x]);
                break;
            case 83:
                h = v[--x],
                k = h;
                break;
            case 84:
                v = !0;
                break;
            case 85:
                v = void 0;
                break;
            case 86:
                u(v);
                break;
            case 88:
                h = v[--x],
                y = v[--x],
                v = h,
                v = y;
                break;
            case 89:
                u(function() {
                  function e() {
                        return r(e.y, arguments, k)
                  }
                  return e.y = f(),
                  e.x = c,
                  e.z = k,
                  e
                }());
                break;
            case 90:
                v = null;
                break;
            case 91:
                v = h;
                break;
            case 93:
                h = v[--x];
                break;
            case 0:
                return v[--x];
            default:
                u((g << 16 >> 16) - 16)
            }
    }
    var n = this
      , t = n.Function
      , s = Object.keys || function(e) {
      var a = {}
          , r = 0;
      for (var c in e)
            a = c;
      return a.length = r,
      a
    }
      , b = {}
      , k = {};
    return r
    })()('g,$@drbms!l!n \u0418b/s"g,&Usz`dlms#g,.}jcb{|zFbxjx}~ms$g,(lfi~ah`{ms%g,)gk}ejo{\x7fcms&g,&qnfme|ms\',!^s(,)|doikgauus),,j\x7fabSysaWzrrs*,(|fY\x7f~d`hs+,&jbfn~cs,,\'nfmosCks-,*icm\x7fM`ttSgs.,&eoi{K\x7fs/,)z\x7fi\x7fy|f~vs0l#l*ms10s2yWl ._b&s o ]1l l Jb<k$.aj;l .Tb<k$.gj/l .^b<k&i"-4j!\x1f+& s3yPo ]3s!l!l Hd>&l!l Bd>&+l!l <d>&+l!l 6d>&+l!l &+ s4y=o o ]7q"21o l q"18o ]4l 2d>& s6{s5yMo o ]8q"21o ]2Ld<l 4d#>>>b|s!o l q"18o ]4l!& s7yIo o ]6q"21o ]4o ]2Jd<l 6d#>>>b|&o ]3l &+ s8y\u01fd,`\x04*&3#-r\x1d\x03:\x1b\tt}a\x026\'%`b\r\x1ff\nkop\v\b\x1f3%\bU-(\x07\t\x161=%;\x19\x17\x03)\x1a;\x1c\x01\r\rO?.>\x19\x1a/\t=\x1as!$ s"0s$l o ],ml$3+d">=k\xddl vo ].mxl$v1+s$[!c\u012fb&@d<l vo ].mxl$v1+s$[!c\u012fb&8d<b|l vo ].mxl$v1+s$[!c\u012fb&b|s#l"l!vo ]/mxl#i%9tz40b&Bd>[!c+s"l"l!vo ]/mxl#i$5j40b&<d>[!c+s"l"l!vo ]/mxl#\u0ff0b&6d>[!c+s"l"l!vo ]/mxl#._b&[!c+s"j\uff52l o ],ml$b-0b>k\xd1l vo ].mxl$v1+s$[!c\u012fb&@d<l o ],ml$b>k6l vo ].mxl$[!c\u012fb&8d<j!0b|s#l"l!vo ]/mxl#i%9tz40b&Bd>[!c+s"l"l!vo ]/mxl#i$5j40b&<d>[!c+s"l"l o ],ml$b>k6l!vo ]/mxl#\u0ff0b&6d>[!cj#$!=+s"l"$!=+s"l" s9y\u0136o ]%v,-n|jqewVxp{rvmmx,&eff\x7fkx[!cs"l",%roc|a.Pal",&nbanb\x7f@al"v,*mnxNaadtjg[!mx$"2d[!cs#l#,$bjhs,*;?|u.|uc{ual#v,(n`fgXhv{mx$$\u9f98\u0e11\u0e20\uacbd2<[#c}l#,*ycmiaxR}ga2al#,+xdby@vwav`M1al#,)zbd{Nac\x7fc,$hlkbal#v,#bvfmx88802[%c}l#v,&uszfanmx[ c}l"v,)}eOmyoZB]mx[ cs!0s$l$Pb<k4l l!o ],mb%^l$1+s$j\x05ls:y:(1o ]:i\'1ps9wxb& ) %{s /s;y>0s"l"l!o ],mb<k+l"^l"1+s"j\bls<y\xb6o ]!n s l vr\'setDatex1[!c}l vr(setMonthx5[!c}0l v,1vwg@|{rbvt~S{xlEUmx[ cb-s!l vr(setMonthx;[!c}0l v,1vwg@|{rbvt~S{xlEUmx[ cb-s"gr$Mathvr#minxl!l"["c s=y\u010f(\u0105o ]%v,-n|jqewVxp{rvmmx,&eff\x7fkx[!cs l v,*mnxNaadtjgmx,%rceoe[!cs!l!v,,khzJhew}g|yymx,9N_Y&,\'wd|mbb~ms!l!v!k#}[ s"0s#l#l"o ],mb<k\xe9(\xdel"l#ms$[ s%0s&l&l$o ],mb<k\\l$vr$itemxl&[!ckCl%vr$pushxl$vr$itemxl&[!cr$type[!c}l&1+s&j\uffd7l$r$name$ +s&l$r\'versionk3l&l$r\'version$ ++s&l&l$r(filename$ ++s&l&l%vr$joinx$ [!c+s&l vr$pushxl&[!c})l#1+s#j\uff4al vr$joinx$!_[!c s?y\u1c6b,)deec~~nst,*yjb~#|uc{u,%vcuao[#s gr&Objectn s!gr&Objectn s"l %s#l#u&k\u0101s$o ]%v,-n|jqewVxp{rvmmx,$wugi[!cs%l%,)`dei\x7fF[]],-`cb}|\x7f~yx{{tpal%,%vr~dlm,(nfd\x7f_dtj,$37v\x7fal%,%vr~dlm,*ldbyHn}x~jl$ao ]%,$fjb~mv,+j|}katRzzxqmxl%[!c}l!l$l%r+offsetWidthal"l$l%r,offsetHeightao ]%,$fjb~mv,+yi`ayuRzzxqmxl%[!c}j\uff39,+Jbiocu1_|zz,%Dtnie,+J~doc0S~rw~,,M\x7fgn|1Zvvgs`,(I{cj`-C[,,M\x7fgn|1\\rfgy`,5Td~yu:Ishp{EE\x02np\x05dHDM,0Qc{rx5Cyqzu\x7fy=SL,8Zpnhho{~M\x01tFVD\x06tIGY\vaB@@,,Nbad0P|g}dcv,1S}|\x7fxwy8Vv\x7f<NjfLD,\'Dieci~d,\'Didhyel,,Olcmbxs3Ytb\x7f,\'Dmg~~~t,.Mj~egam5Qxlqsx,2Qvzacea9IxtrqsBNMH,*Idadm/Cp|`,-Nabyr2@u{e7UJ,(Kfdxcao|,\'Dg|xbi\x7f,+Hcx|fuc2]qb,(Ohxjab`k,&Abfl|j,\'@mfxlel,)Aogzhzfsp,.Fj|gwg}vw7V|o~,&Ojxhi\x7f,-A{lyus3Vg\x7fppm,2^fw|rv8Z{wptymAQJZ,.Bzsxvr4Vyykvv~,*F~odjn0Wsk,-AOY,3_av\x7fsy9Izrn>JNHAL@@,4Y|uewju}h=M~NR\x02pAWOA,&Khfhid,0]~||`lfr8Zuioth~,)DY+Kbzgyr,*GX,B{{|~}x,*GX,]I`dy{p,7ZK9H~zxlzNBG\x03wDHT\bzOYEK,-@]/Cp|`4Fseq\x7f,(EZ*Xi\x7fgi,&K^Z@KO,*GR^DOK0A@\\,(Xhfjxd``,1As\x7fua\x7fyw9VrrrjfPD,+Xijaj0A`zza,,_hi`u1Apf|fc,(jw~w3A\\6QQ5UVKUUU<MLP,.Ok\x7fsw3Stdvuvt\x7f,2SWYEYK]\x10r]]PPXD]],.ObucFjdp6Z|9XO,\'Ffmkgy~,+Jbj}n~p2]qb,*Kek~oaqDBP,-L`{y`gv4Zz~n|,)Hzj~ldfdp,.O\x7f`}w3W}wy{|hb,1Pbcxp6Twuui<XspJH,3Rdezr8J^;\\@,(I{x~\x7f-L[,,Mx|`bp2Pz5TC,0Qgs}`Rwe||:Yw=\\K,0Qgs}`Rwe||:Vx=\\K,&GQMGCY,(Ip\x7f\x7fdlwn,%Ggilp,0Rp|txt6Dyw}zq=SQ,+Imce/W~f{}v,0Rp|xSzb\x7fqz:Vx=\\K,+Im~ejbg{\x7fxp,4Vte|}klrpq{?oMF\x03bDEB,&Df|hdl,)Kk\x7fmciLxt,,Nl{jb1P|pzx~,*Hjyeozc1+ ,\'Eisedgl,\'Emef+AY,%Gcjjf,.Lj~vgzua6Us9XO,.Ljb}{}4Fwyk9\\Y,3Qqgz~v9Izrn>Yb\x01fFIL,4Vpdyyk~;QI>\\OOFFJVCC,2Pvf{~vj}\\zouwpN\x01`w,.Ljb\x7fzrfqAU7LM,)Keoccg/\'#,2P|pzx~8.(;SqzlTXNF,3Q{qyyq9-)<Ns~LMABTV,)Keoccg/]E,/M\x7fu}}}5thu>]D\x01`w,&Ehzkog,*Id~ign0_wd,)JeyhdoZ@R,+Hc\x7f`jbbf|zp,\'Dg{eeiy,&Erkbed,(K|xgv-C[,(Lh\x7fe\\h`g,\'Ci|zcec,%Agqam,+ON-BLT1Fvye,)MOGENG@EB,\'Cmggj~f,(LOAje ]M,%Aocg},+Oeabj~xsFDV,#GMK,)Me`Oeob`p,%Ais}d,(Lf~~aNfj,&Cez`gj,4Qqavj}szr=M|RHRW\x04lrd,(Meo{dl`{,5Pxptpis<,/.\0wKUEFC\x07j},,Ici}qgwag5CE,2T|{az~\x7fqn;QI>SIFJW,%Ciu|l,*Lymce]etz\x7f,*Lymc}fcrs},1W`vqsdz/++;^qu?bu,*Lyih}fqDBP,0Vcwvgao{}9Ixntnk,0Vcw}w}6D{kskh=SK,1W`}\x7fRycpPNX<_u?bu,(N{\x7fbxjk},(N,&@r||xj,,Jxzzbp2Q\x7f5TC,,Jxzzbp2_`5TC,,Jxzzbp2^p5TC,.Hzdd`r4OT{s9XO,.Hzdd`rVywts9XO,(Ohhyebbn,+Lmabfqcv3VA,\'@i|~jad,)Nonvl._b~,-Jk`}tfa&&\'7ZM,0Wt}~qad%+(:Sj=\\K,0Wt}~qad%+(:Wh=\\K,1Vw|Gywu8.*(<Qj?bu,2Uv{Fzvz9-+/=F]D\x01`w,$Clan,)Ncg`-]n~b,,Kdbc0Bs}g5]PPXD]],&AH\\AKF,+LCYFN]1P\\XQ,/H\x7fdvj4Zzs8Jnbpx,+Lcxjv0Bf|aa,2U|aqo_yw~osrrzD\x01`w,,Kb{ki^^@`5TC,2Uf~tdvlp:H}sy~M\x01om,%Bskad,(O|fbaNfj,\'@}gmxye,*M~bj}zxRzv,+Ly\x7fcz{y{3Y[,0Xpwg`pxd{qm~uq{m,3L,(@lc\x7fe-ZL,$L@JQ,&Nbzhfo,/Gyvz3@zarj9N~di,9Qsi}zwqO\x01iBOP\x06`G]BBO\r~]_\x7f,4\\|dv\x7fptt<PwqCIM\x03tWIi,,Dbki|t`3@pnc,1Yg~u{ec8,(*<^p?bu,-E{bq\x7fag!\'\'7ZM,0Xd\x7frzfb"*(:Wh=\\K,1X\x7fcf|xc8TN;Ou\x7f{OV,0Y\x7fqzgpr.((:Yx=\\K,-D`lybww-%\'7ZM,0Y\x7fqzgpr.((:Wh=\\K,+BBNAAC^^R@T,.Gav~`~uy6Ewt{u,.Gav~`~uy&&)9XO,*CEXH\\\\DPFV,\'Nz`y^\\N,,E~e`\x7f}s3Dzbv,*@j\x7f`gauDBP,(Bhpq,AK[,&Lbfzee,&Lb{}oy,(Bfan~`oa,)C\x7fboh.FDR,+@mokc0Sy3VA,,Gllj|1G\x7f`5TC,\'Li`fj\x7fl,%Ngn\\`,\'Liecekl,1Zs}ztrv8J{u{|s?mo,\'Li{~bgl,.Enew\x7frz{6U|9XO,+@mxhbq\x7f|3VA,(Cagn~-L,1\\{pfzex~m:Kt|ylp@,0]xqa{fyql9Nzu=Rz,0]xqa{fyql9Or{ukm,/Byr`|gzpc8@{Syt,2_zwgydw\x7fn;Et>]AHVJ,\'JagmGeX,-@gaw]{FK]]DCf~rz|,6*Nty|n,%HSTMF,\'J^)Hd`d,&Hfllof,(Fhx`e~gb,%KCQAZ,+Eiz}/W~f{}v,-Ckxc1U|`}\x7ftUM,+Eiz}H\x7fez3VA,0^xstugw7]w}i}k{{,-Cgnwp`r4Fy{q},*Ddxhy`bezj,\'I[`gXyc,%K\x7ffdh,.ALB1S3Qmbrv}\x7f\x7f,+D`i.Lu\x7ffffl,3\\xq6Rv~vrou>KEYV\x03iq,$Kk\x7f\x7f,\'Hfpr+NY,&IW\\@GJ,/@bxkr4Fwy\x7fxw;QS,%JUFCH,/@jYs}p|uey\x7fn;^I,0@p~rwp6D{kskh=SK,\'Wiysyy~,)Ykyoecj~e,)Ykyxt.CUE,\'Wmnkxy~,(Xlx{iy{n,3Cqgfrll{;HtjsIOE\x03iq,*ZnxdznR~~w,(X`i`{dmd,4Dywylx}~rxj?cIGQKNCB,(Xekrndbc,(XDcekAgZ,-]Cf~v^zA8Sol[,,\\ba}0C{p|tds,&Vh{}oy,/_\x7fbfvfWyswws;^I,.^]Y_QV@ZAY8U_O,(X{cxxd`n,+ysp|z$%&8[~;^I,(Zfi`{hbc,2@|w~artu:XsszzNRGG,3A{v}`}uv;YejmA\x01`LHA,#Qka,%Wijig,.]n{zs\x7f4Xw}yuvz,,_l`{q1Tv4YSC,*Yjzbwj0]WG,\'Tklz\x7f~h,&Udz`z\x7f,.]lbxbg4XB7Zvv\x7f,)ZIYE]ZF^P,&Ubz`lj,)Zoyeko/RE,,_h|fvp2G|5TC,1BzvxysnNvvzri{?bu,(LBTW],&UneAob,1B{~dy\x7fqq|~;]o\x7f}IB,7Dqtjwu{wzD\x01cQEGOD\boCSII,&UneZ\x7fe,+Xe`]z~<Wk`W,1B{}|tzv8J{u{|s?mo,/\\{tfp|5Dx{rm~pq,$Wnof,+Xalbc0W}}`f,(`egw}}g6{qrqr`z$%*9XO,\'T|lkfi\x7f,\'T|ldhea,)Z~d~tl`\x7fz,&Usqefd,&Urj~kr,0Cf{`#\'\'7Zuq^d=\\K,/\\gxa`-$\'7@Zw;^I,\'Tqeljic,+Xucmgb~2_QA,&U~{}of,/ohdcglq},(\\lfnxt~j,0Dt~fs`6Dyw}zq=SQ,/}+Oh`/]E,3Gc5Urv9WO<^qqDDLPAA,>Jh\0bGM\x04hr\x07kFDOIC]JT\x11wK@GW\x17zVV_,.Zv`~Gcf|q\x7fl9XO,\'Rf`id~c,\'Rf`|n~~,4A{\x7fa}ki;_X>*\x15\x01oF@LSJ,1D|zbpdd8ZuuxxplEE,&Ss{hkc,(^hmjnb`k,$Rdhn,&Pnbhsj,.Xf~t`3\\txs8PNX,(^`y~mabhh.Cqe{},-Wo\x7fvT~\x7f}eb7ZM,-Wo\x7fvYg~zfb7ZM,0Jpbu\\`{ykm:_q=\\K,\']iylbbb,/Uec{p|5T{s\\b;^I,,Vx|fsy2Vl5TC,(R^KocokI[\u0206s#[ s$l#%s%l%u&k\u014as&l %s\'l\'u&k\u013bs(o ]%v,-n|jqewVxp{rvmmx,$wugi[!cs)l),)`dei\x7fF[]],-`cb}|\x7f~yx{{tpal),%vr~dlm,(nfd\x7f_dtj,$37v\x7fal),%vr~dlm,*ldbyHn}x~jl&$!,+l(+ao ]%,$fjb~mv,+j|}katRzzxqmxl)[!c}l)r+offsetWidthl!l(md#!==v!k;}l)r,offsetHeightl"l(md#!==s*o ]%,$fjb~mv,+yi`ayuRzzxqmxl)[!c}l*k>l$vr$pushxl#vo ]-mxl&[!c[!c}j"j\ufeffj\ufef0l$vr$joinx$!,[!c s@ysul d\',typeofo ])d#===v!k)}l zd#===k#$ul d\',typeof,\'egffnmcd#===k-l k%$!1j#$!0 lsAyC(:o ]\',.}jcb{|zFbxjx}~m!! ) %{s tsByA(8o ]\',,`bmn|Bf|ftqrm!! ) %{s tsCy>(5o ]\',)`doiukkTSm!! ) %{s tsDy6o ]!n v,\'`m}^bahmx[ c sEyJo ]Ao ]Dz[ c&o ]Ao ]Cz[ c&+o ]Ao ]Bz[ c&+ sFy`o ]\',&udzloems l ,%roc|amo ](+l ,&nbanb\x7fm+o ](+l ,*id`b|Kuaf{m+ sGyUo ]\',&udzloems l ,*k}mdbXyuf{mo ](+l ,+jzlgcXt{t|am+ sHy\xc7gr\'Promisey\xb8,*mnxOo{dt`jo ]&d"ink\x9bo ]&v,*mnxOo{dt`jmx[ cvr$thenxyuo"] l ,(kakykd`hmo ](+l ,,oeo}wx|t@|{rm+o ](+l ,/kybq{ugq~v~Nrqxm+o ](+l ,%icqmem+&} [!c}j&l $ &} n! sIy\xdb,.cnhE}fw}Fxqwnhs 0s!uo ]&l md\',typeofo ])d#!==k+o ]&l ms!jEuo ]&l md\',typeofo ])d#!==k)o ]&l ms!(Ho ]%vr+createEventx,*^dynfJft|g[!c}ts") &{s#fs",,ccz`erz``tdco ]\'d"ins#l!$!_+l"+$!_+l#+ sJy\xe5ul!d\',typeof,&usz`dld#!==k! l $!=+s"l!vr%splitxgr&RegExp$$[;&]$ n"[!cs#0s&l&l#o ],mb<k\x8dl#l&ms%l%vl#mx0[!c$! d#===k8l%vo ]0mx1l%o ],m["cs%j\ufff3l%vo ]-mxl"[!c0d#===k;l%vo ]0mxl"o ],ml%o ],m["c l&1+s&j\uffa6 sKyo(e$ s!o ]$k=o ]$vr\'getItemxl [!cs!l!k#l! o ]Kzl o ]%,&ehgbcnm["cs!l! ) &{s!$   sLy\xf1(\xedo ]$k7o ]$vr\'setItemxl l!["c}i\'ehjpxc0s"o ]%,&ehgbcnl ,Q\f\t\x13QMF^J\\I\x06qRP\x13`src\x17 6gzy{{l}~u`ahcdu\x03\x03\x1bbz+=)6bOZ+ao ]%,&ehgbcnl $!=+l!+,*1+iu~fbta.+o ]!o ]!n v,\'`m}^bahmx[ cl"+n!vr+toGMTStringx[ c+,)2*{myf2?*+a)   sMyJ(7gr)WebSocket,$bdokn!}) /{s l r\'messagesNy7gr$evalvo ]+mx[ co ],m sOy\u031co ]\',1CFPDpse\',4yzlELZJ~yo]pNOG@PLIImv!k?}o ]\',7`}{qrhOJ\\pDGQgJHIMJ^BCCms gr\'Promisey\u02b0(\u02a3o!] k\u0295o!] gr&Objectn vgr&Objectn v,<oikq\x1aRVVJ\vJ\tOFEL@H\0L_\\\b\x02\r\x06\x06\x05q$urls[!q*iceServersn!s!y! s"gr&RegExp$^({1,3}(\\.{1,3}){3}|{1,4}(:{1,4}){7})$ n"s#gr&RegExp$U^(192\\.168\\.|169\\.254\\.|10\\.|172\\.(1|2\\d|3))$!gn"s$l!vr1createDataChannelx$ [!c}gr*setTimeoutzy)o"] $ &} \u0224["c}l!vr+createOfferx[ cs%l%gr\'Promised*instanceofkal%vr$thenxyAo"]!vr3setLocalDescriptionxl [!c [!cvr$thenxy! [!c}jcl!vr+createOfferxyJo"]!vr3setLocalDescriptionxl o"]"o"]"[#c} l"["c}l!y\xa3l vk.}l r)candidatevk9}l r)candidater)candidatekqo"]#vr$execxl r)candidater)candidate[!cs!l!kDl!] vr%matchxo"]$[!cs"l"k*o"] l!] &} q.onicecandidatej&l $ &}) ){s!l $ &} n! sPy\xa8,@XYZ[\\]^_PQRS\x18UVWIIJKLMNO@ABCDEFGvr\'replacexgr&RegExp$$$!gn"yagr$Mathvr&randomx[ c@b*0b|s!l $!xd=k$l!j(l!3b&8b|s"l"vo ]+mx@[!c ["c sQyxl r&lengthRd#===keo ]<z0l vo ]0mx0P["c["cs!l!vo ]+mx[ cvo ]0mx02["cl vo ]0mxPR["cd#===sRy{o ]L,%qrdam&s l vk(}o ]Rl &k#lo ]Qz[ cs l o ]<z0l ["c+vo ]0mx0R["cs o ]Mz,%qrdaml ["c}lsSy\u0107o ]%,$fjb~ms"o ]%v,-n|jqewVxp{rvmmx,&udz`z\x7f[!cs#o ](gr(parseIntz\u2740gr$Mathvr&randomx[ cb*:["c+$!_+o ]!n vr\'getTimex[ c+s$l ,)jkg`ool{,l$++s l#l q#srco ]\'l$ySo!]!l &}(Go!]"v,+yi`ayuRzzxqmxo!]#[!c}o ]\'o!]$-)   al"vr+appendChildxl#[!c} sTy\u0116[ s"0s#$ s%0s&l&\u0130b<k/l"l&l&al&1+s&j\n0s&l&\u0130b<kel#l"l&m+l vo ].mxl&l o ],mb%[!c+\u0130b%s#l"l&ms$l"l&l"l#mal"l#l$al&1+s&j\uffd40s&0s\'0s(l(l!o ],mb<k\x8al&1+\u0130b%s&l\'l"l&m+\u0130b%s\'l"l&ms$l"l&l"l\'mal"l\'l$al%o ]#vo ]*mxl!vo ].mxl([!cl"l"l&ml"l\'m+\u0130b%mb^[!c+s%l(1+s(j\uffa9l% sUy\u01bbl!kW0s"0s#l#l o ],mb<kDl l#mr!pk2l l#ml!l"v1+s"mq!rl#1+s#j\uffef$ s"l vr\'forEachxy9o!v]"o ]Al r!r&,"\\]++q!2 [!c}l"o ]Ez[ c+s"o ]Qz[ cs#gr$Mathvr%floorxl#vo ].mx3[!c8b/[!cl#vo ].mx3[!c8b%+s$l#vo ]0mx44l$+["cs%o ]9o ]Uzl%l"["cl#+&s",T\\ABGK\x03\x15\x14N^\x10L.21\'/k%(%f=..b**&816\v<817v\fis>13\f\x04\x01\x17\r\n\bXs&l&,"s>gr2encodeURIComponentl"&+$!&++s&o ]Tzl&yngr$lcspvk+}l ,%rceammkVo ]\',,`bmn|Bf|ftqrmv,\'tm}C\x7fi`mx,\'XW~oieil ,%rceamm["c} ["c} sVl y\u0676o ]&vk%}o ]\'vk%}o ]%!k! gr&Objectn v,)z~j~yZf}tq!nv3q!fvo ]Eq!tgr&Objectn v,)hhb`dzfubq!nv3q!fvo ]Fq!tgr&Objectn v,&eff\x7fkxq!nv3q!fvo ];q!tgr&Objectn v,*~bah}{q|b"q!nv3q!fvo ]Eq!tgr&Objectn v,(xek\x7fjb|bq!nv0q!fgr&Objectn v,3{ugr`yk\x7fXss}jRSGMG\\q!nv0q!fgr&Objectn v,,hhxfst_vyzdnq!nv0q!fgr&Objectn v,(dhdlylijq!nv0q!fgr&Objectn v,)ekekxohubq!nv0q!fgr&Objectn v,*xn\x7fbbzdx}}q!nv3q!fvo ]Gq!tgr&Objectn v,/nfp{\x7fFpextlnrssq!nv3q!fvo ]Hq!tgr&Objectn v,)ziyih`[\x7faq!nv1q!fgr&Objectn v,*yh~hka\\ttgq!nv1q!fgr&Objectn v,0ttdzwpF~`|vI}iwpq!nv1q!fgr&Objectn v,*zyci{ldBgqq!nv0q!fgr&Objectn v,\'ei}~n~tq!nv3q!fvo ]Iq!tv1q!pgr&Objectn v,)}e~oeGav~q!nv3q!fvo ]Jq!tgr&Objectn v,(|`gnvb`jq!nv3q!fvo ]=q!tgr&Objectn v,*~bah}{q|b!q!nv3q!fvo ]Eq!tgr&Objectn v,\'`x|Cejbq!nv3q!fvo ]>q!tgr&Objectn v,+a\x7fKaadb^zgaq!nv3q!fvo ]@q!tgr&Objectn v,+{`xif~b^zgaq!nv3q!fvo ]?q!tgr&Objectn v,*~bah}{q|b q!nv3q!fvo ]Eq!tgr&Objectn v,)|yn~Lij~eq!nv0q!fgr&Objectn v,*o}i\x7fM`\x7fz{vq!nv3q!fvo ]Lq!tv,(|}U|iogkq!mgr&Objectn v,+xucznhT`a{gq!nv3q!fvo ]Nq!tgr&Objectn v,,blzfft^vzrb\x7fq!nv3q!fvo ]Oq!tgr&Objectn v,%wrdAYq!nv3q!fvo ]Pq!tv1q!pgr&Objectn v,(dfijxdaaq!nv1q!fgr&Objectn v,)oz]i\x7f}f\x7f\x7fq!nv4q!fv,%4(1&9q!rgr&Objectn v,(kecnbyGkq!nv3q!fvo ]Sq!tgr&Objectn v,*~bah}{q|b\'q!nv3q!fvo ]Eq!tgr&Objectn v,+ntykatW{vxqq!nv4q!fAo ]&l l#mr!nm&q!rj\xe6l l#mr!f1d#===k7l l#mo ]\'l l#mr!nmq!rj\xbfl l#mr!f2d#===k7l l#mo ]%l l#mr!nmq!rj\x98l l#mr!f3d#===k\x88l l#mr!pkYgr\'PromisekKl!vr$pushxl l#mr!tvr$callxl l#mgr!mm[!c[!c}jEl l#ml l#mr!tvr$callxl l#mgr!mm[!cq!rj\uff24gr\'PromisekVgr\'Promisevr#allxl![!cvr$thenxy0o ]Vzo!] l ["c} [!c}j(o ]Vl &}gr\'queries q#dfpl y\u0549i$1ek1s$0s%0s&yTo!o ]"o!]$b%q!2o!o ]"o!]"o!]$b*b^0d#>>>q!1o!o ]<q!3 s\'ugr#tacd\',typeofo ])d#===v!k(}gr#tac!k)l\'z[ c}jC(6)zgr#tac$! +0o![#cs&) *{s(l\'z[ c}l#z0l!$ +["cs(y\xb3l !v!kE}g,$NVIImv,)z~yecifvhmxl [!c$"{}d#===k#$g,&Iebli\x7fmv,$o`\x7ftmxl [!cv,$wjtsmx[ cs!$ s"0s#l#l!o ],mb<kEl"l!l#m[!$!=+l l!l#mm+$!&++s"l#1+s#j\uffeel" s)y\xd1l !v!kE}g,$NVIImv,)z~yecifvhmxl [!c$"{}d#===k,gr&Objectng,&Iebli\x7fmv,$o`\x7ftmxl [!cv,$wjtsmx[ cs"gr&Objectn s#0s$l$l"o ],mb<kQl!k5l#l"l$ml l"l$mm$ +aj0l#l"l$ml l"l$mmal$1+s$j\uffe2l# s*y\xb9l v!k#}$ s!l!v,\'umyfjohmxgr&RegExp$=(http:\\/\\/|https:\\/\\/)?[^\\/]*$ n"$ ["cs!l!vo ]-mx$!?[!c/d#!==kBl!v,&urjz~ymx0l!vo ]-mx$!?[!c["cj"l!s!l!k$l!j#$!/s!l! s+y\xeel v!k#}$ s!l!v,%hgskamxgr&RegExp$.[?](\\w+=.*&?)*$ n"[!cs"l"k5l"] v,&urjz~ymx1[!cj"$ s!l!k4l!v,%vvka}mx$!&[!cj!zs#gr&Objectn s$l#ki0s%l%l#o ],mb<kYl$l#l%mv,%vvka}mx$!=[!c] l#l%mv,%vvka}mx$!=[!c]!al%1+s%j\uffdal$ s,$ s-ul d\',typeof,&iebli\x7fd#===k\u0130l r$bodyvkK}g,$NVIImv,)z~yecifvhmxl r$body[!c$"{}d#!==kr,*hdhtQgqbz.o ]<z0g,$NVIImv,)z~yecifvhmxl*zl r$bodyl r+bodyVal2str["c[!c["c+$!&+s-l,l r#url&s.l ,%tsbzpmkEg,&Iebli\x7fmv,>{`memxl.l r%query["cj"l.s.l-l)l.&+s-l-,)yk\x7fdcobu,+l+l ,#vvim&+$!&+s-l-,)}~T{hlft,+,& r}`n6+s-j$l s-o ];z[ cs.o ]5l!&o ]5l!i\'1z141z4b/0d#>>>&+o ]5l.l!b^&+o ]5l#zl(o ]&,)|yn~Lij~em["cl$b%@d<l#zl(l-$ +["cl$b%b|&+o ]5l&8d<@b|l!b^&+o ]4l"&+s%o ]50&}l% q$sign ', )
    return e.sign(l)
}
    this.o = {
      url: "https://media.douyin.com/web/api/media/aweme/create/",
                body:{
                        challenges: "[]",
                        download: "0",
                        mentions: "[]",
                        mix_id: "",
                        mix_order: "",
                        poster: "tos-cn-p-0015/dbcd771230284c068a414e57d3ecb1b8",
                        poster_delay: "0",
                        shop_draft_id: "",
                        text: "123456789",
                        text_extra: "[]",
                        third_text: "123456789",
                        upload_source: "1",
                        video_id: "v0200fab0000bngc7rjcp2317mrq6mkg",
                        visibility_type: "0"
                }
    }
document.write(s(o))
</script>

后面扒出来之后生成的signature不对。卡在这里了….
最重要是算法下面那个高混淆的代码我不会还原,不知道啥逻辑在里面


今天抽空翻了下github找了下解决方案。
简介明了:https://github.com/coder-fly/douyin-signature



majia4075669072 发表于 2019-12-4 00:05

厉害,这一大串case看的有点上头。。。

韩龙 发表于 2019-12-4 00:08

本帖最后由 韩龙 于 2019-12-4 00:11 编辑

majia4075669072 发表于 2019-12-4 00:05
厉害,这一大串case看的有点上头。。。
没用阿:rggrg那串算法代码浏览器可以解析出来的

mzhsohu 发表于 2019-12-4 01:02

略有帮助,感谢分享~!

韩龙 发表于 2019-12-4 01:07

mzhsohu 发表于 2019-12-4 01:02
略有帮助,感谢分享~!

我发现我是来求助的。反而是帮助了{:1_907:}

suhaoyue 发表于 2019-12-4 06:35

为认真的人点赞

xhchjuan 发表于 2020-1-7 09:10

我也遇到这个问题,楼主解决了么?

韩龙 发表于 2020-1-7 23:17

xhchjuan 发表于 2020-1-7 09:10
我也遇到这个问题,楼主解决了么?

没有解决

xhchjuan 发表于 2020-1-8 13:40

signature 这个参数我也没搞定。

ofo 发表于 2020-1-8 15:58

这个signature,如果是用网页做,就用去年那个JS就行了,但反JS移到APP里,就是不行,从来没所到过,哈哈,应该是需要某个特别的协议头或COOKIES
页: [1] 2 3
查看完整版本: 抖音网页版上传视频_signature分析