diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/4\347\217\255/4\347\217\255_LiPing/\347\254\254\344\272\214\345\215\201\345\221\250/PDD\345\212\240\345\257\206\346\265\201\347\250\213.md" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/4\347\217\255/4\347\217\255_LiPing/\347\254\254\344\272\214\345\215\201\345\221\250/PDD\345\212\240\345\257\206\346\265\201\347\250\213.md" new file mode 100644 index 0000000000000000000000000000000000000000..854c27923d9697aa51ab43d8d0f15e539c85b0b2 --- /dev/null +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/4\347\217\255/4\347\217\255_LiPing/\347\254\254\344\272\214\345\215\201\345\221\250/PDD\345\212\240\345\257\206\346\265\201\347\250\213.md" @@ -0,0 +1,58 @@ +## PDD加密流程 + +- 生成`a` + +``` +a = (t = [])[K].apply(t, [ct ? [][K](r["jngBT"](Nt), xt[o]()) : s[o](), Wt[o](), pt[o](), mt[o](), vt[o](), bt[o](), gt[o](), kt[o](), _t[o](), yt[o](), wt[o]()].concat(function(t) { +if (Array.isArray(t)) { + for (var n = 0, e = Array(t.length); n < t.length; n++) + e[n] = t[n]; + return e + } + return Array.from(t) +}(Ct[o]()), [St[o](), Ot[o](), Rt[o](), Pt[o](), jt[o](), Dt[o]()])); +``` + +- 生成大数组`a`的长度为16的二进制信息`u` + +``` +for (var u = a[E][g](2)[p](""), f = 0; r["ZIIDs"](u[E], 16); f += 1) + u["unshift"]("0"); +u = u[x](""); +``` + +- 通过`u`生成了`W`参数列表中的`l` + +``` +l[H](et[k](u[O](0, 8), 2), et[k](u[O](8, 16), 2)) +``` + +- 合并`a`和`l` + +``` +a = [][K]([3], [1, 0, 0], l, a) +``` + +- 压缩`a`为h + +``` +h = i['deflate'](a) +``` + +- 将`h`中的值转变为String,为`W` + +``` +W = [][b]["call"](h, (function(t) { + return String[S](t) +} +``` + +- `W`通过`encode`函数加密`W`和`tt`后的结果和定值`0ap`相加生成了anti_content + + `tt`是验证函数`dt`和`At`是否被修改的字段. + +``` +r["yrFVy"](r["ZRscj"], c[r["wSNTe"]](r["yrFVy"](W[x](""), tt[x]("")), c["budget"])) +=> "0ap" + c["encode"]((W["join"]("") + tt["join"]("")), c["budget"]) +``` +