Thiên Chi Kiều Nữ 959 Đã viết 11/01/2021 5 hours ago, QuangBlue said: Lấy từ https://banhang.shopee.vn/webchat/api/v1.2/login?_uid={uid}&csrf_token={csrf_token}' Mỵ xem giúp với, hix bí cả tuần ko làm được gì T_T à mỵ quên mất ko xem lại, còn một dãy số bí ẩn thêm vào header nữa mà bạn không cho vào : 'x-s': '17a85bb5c5969b2039af0854a1e9396e', 'x-v': '2', Cái này mỵ copy từ request chát nên chưa tìm được nó ở đâu...khi thay đổi nó thì ko gửi đi được. Bạn thử tìm cùng mỵ xem Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
QuangBlue 1 Đã viết 12/01/2021 5 hours ago, Thiên Chi Kiều Nữ said: à mỵ quên mất ko xem lại, còn một dãy số bí ẩn thêm vào header nữa mà bạn không cho vào : 'x-s': '17a85bb5c5969b2039af0854a1e9396e', 'x-v': '2', Cái này mỵ copy từ request chát nên chưa tìm được nó ở đâu...khi thay đổi nó thì ko gửi đi được. Bạn thử tìm cùng mỵ xem T_T thua luôn. có tìm rồi mà tìm không ra, Mỹ có code ko share mình được ko T_T Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Thiên Chi Kiều Nữ 959 Đã viết 12/01/2021 54 minutes ago, QuangBlue said: T_T thua luôn. có tìm rồi mà tìm không ra, Mỹ có code ko share mình được ko T_T hình như dãy số này ko đổi :v bạn cho cho mỵ cái đoạn F12 header khi bạn chát xem..... mỵ có tìm ra đâu mà có code :D Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Công Dũng 4 Đã viết 12/01/2021 2 giờ trước, QuangBlue said: T_T thua luôn. có tìm rồi mà tìm không ra, Mỹ có code ko share mình được ko T_T cái này tìm trong file js của shopee nha bạn Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
QuangBlue 1 Đã viết 12/01/2021 (edited) 18 hours ago, Công Dũng said: cái này tìm trong file js của shopee nha bạn 20 hours ago, Thiên Chi Kiều Nữ said: hình như dãy số này ko đổi :v bạn cho cho mỵ cái đoạn F12 header khi bạn chát xem..... mỵ có tìm ra đâu mà có code :D Mình tìm thấy đoạn này trong JS của shopee : return new Promise((function(e, a) { if (void 0 !== x && parseInt(x) <= 0 || void 0 !== C && parseInt(C) <= 0) { var d = [b, C, y, x, _].filter((function(e) { return e } )).join("/"); return f.reportException(d + " parameter exception: " + C + "/" + x), void a(new Error) } var A = z.includes("/webchat/api") ? { "x-v": w || "", "x-s": (0, p.getSecurityHash)(w, { url: F, method: S, token: k.Authorization, ctoken: n || "" }) } : {} , h = { method: S, headers: r({}, k, A), body: R }; M && (h.credentials = M), (0, o.default)(z, h).then((function(e) { switch (200 === (B = e.status) && (T = parseInt(e.headers.get("total")), P = parseInt(e.headers.get("per-page"))), B) { case 204: return null; case 404: return { message: "Resource not found" }; case 500: return { message: "Internal server error." }; case 502: return { message: "Bad Gateway" }; default: return e.json() } } )).then((function(n) { var r, o, d, p = Date.now() - D; if ("read" === y && (0, u.collectAsyncTask)(u.ReportPoint.READ_API, p), void 0 === x && void 0 !== y && ("messages" === y && U.indexOf("shop_id") < 0 ? (L = JSON.parse(R).request_id, (0, l.setItem)(L, D), (0, u.collectAsyncTask)(u.ReportPoint.MESSAGE_API, p)) : u.ReportPoint[y.toUpperCase()] && (0, u.collectAsyncTask)(u.ReportPoint[y.toUpperCase()], p)), 200 === B ? e(n instanceof Array ? (r = { total: T, perPage: P }, o = y, d = n.map(N), o in r ? Object.defineProperty(r, o, { value: d, enumerable: !0, configurable: !0, writable: !0 }) : r[o] = d, r) : N(n)) : 204 === B && e(), (0, i.isError)(B)) { var A = t || [b, C, y, x, _].filter((function(e) { return e } )).join("/"); if (400 !== B && 404 !== B || (f.setTag("API Request Error", A), f.reportException(new ((0, i.HTTPError)(B))(JSON.stringify({ body: n, status: B })))), [429, 491, 493].includes(B)) { var h = new ((0, i.HTTPError)(B))(n); a(h) } else if (401 === B) if (y.includes("login")) { var g = new ((0, i.HTTPError)(B))(n.message,n.errors || n.error_code || n.errcode,n.data); a(g) } else s.store.dispatch((0, c.handle401ErrorRequested)({ resource: y })); else { var m = new ((0, i.HTTPError)(B))(n.message,n.errors || n.error_code || n.errcode,n.data); a(m) } } } mà thề là đang học python thôi. cái JS này .... :( mọi người giúp mình với. Còn đây là link download cái file JS đó. https://drive.google.com/file/d/1tJYCquippPHJIROUdOZWBa5CAItullS7/view?usp=sharing Edited 12/01/2021 by QuangBlue Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Công Dũng 4 Đã viết 13/01/2021 getSecurityHash bạn tìm hàm này thử xem Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
QuangBlue 1 Đã viết 13/01/2021 34 minutes ago, Công Dũng said: getSecurityHash bạn tìm hàm này thử xem @Thiên Chi Kiều Nữ @Công Dũng function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.getSecurityHash = function(e, t) { var n = t.url , r = t.method , c = t.token , u = t.ctoken , l = function(e) { return "live" === (0, o.getRuntimeServer)() ? i[e] : s[e] }(e); switch (e) { case 1: return function(e, t) { return (0, a.default)(e + t).toString() }(n, l); case 2: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, r); case 3: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, c); case 4: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, u); default: return "" } } ; var r, a = (r = n(54)) && r.__esModule ? r : { default: r }, o = n(4), s = { 1: "70c74f4e-dcda-483e-826b-19dd2c42e799", 2: "29ffec18-c614-4645-8f1c-686e22d2e26a", 3: "04229e76-1ba3-4ac9-8a4e-68d46a3881a2", 4: "a3769a87-35cf-45e9-a5a7-2b4016c52e92" }, i = { 1: "396c15ad-6d3e-4018-98be-cef58cb45cd0", 2: "607c871d-b766-4c6f-ba89-b6c6ca32b156", 3: "42990074-9a73-4459-b749-f3110d222a72", 4: "5702b6f3-62a3-44d2-abe8-fece100a8bf4" } } cái getSecurityHash mình thấy có chỗ này. Mọi người igúp mình với, không học JS nên ngu quá T_T Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Thiên Chi Kiều Nữ 959 Đã viết 13/01/2021 5 hours ago, QuangBlue said: @Thiên Chi Kiều Nữ @Công Dũng function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.getSecurityHash = function(e, t) { var n = t.url , r = t.method , c = t.token , u = t.ctoken , l = function(e) { return "live" === (0, o.getRuntimeServer)() ? i[e] : s[e] }(e); switch (e) { case 1: return function(e, t) { return (0, a.default)(e + t).toString() }(n, l); case 2: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, r); case 3: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, c); case 4: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, u); default: return "" } } ; var r, a = (r = n(54)) && r.__esModule ? r : { default: r }, o = n(4), s = { 1: "70c74f4e-dcda-483e-826b-19dd2c42e799", 2: "29ffec18-c614-4645-8f1c-686e22d2e26a", 3: "04229e76-1ba3-4ac9-8a4e-68d46a3881a2", 4: "a3769a87-35cf-45e9-a5a7-2b4016c52e92" }, i = { 1: "396c15ad-6d3e-4018-98be-cef58cb45cd0", 2: "607c871d-b766-4c6f-ba89-b6c6ca32b156", 3: "42990074-9a73-4459-b749-f3110d222a72", 4: "5702b6f3-62a3-44d2-abe8-fece100a8bf4" } } cái getSecurityHash mình thấy có chỗ này. Mọi người igúp mình với, không học JS nên ngu quá T_T Bạn phải tìm xem giá trị e, t, n kia được truyền vào là gì, sau đó execute cái js này ra thì nó ra kết quả dãy số đó cho bạn Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Công Dũng 4 Đã viết 14/01/2021 14 giờ trước, QuangBlue said: @Thiên Chi Kiều Nữ @Công Dũng function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.getSecurityHash = function(e, t) { var n = t.url , r = t.method , c = t.token , u = t.ctoken , l = function(e) { return "live" === (0, o.getRuntimeServer)() ? i[e] : s[e] }(e); switch (e) { case 1: return function(e, t) { return (0, a.default)(e + t).toString() }(n, l); case 2: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, r); case 3: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, c); case 4: return function(e, t, n) { return (0, a.default)(e + t + n).toString() }(n, l, u); default: return "" } } ; var r, a = (r = n(54)) && r.__esModule ? r : { default: r }, o = n(4), s = { 1: "70c74f4e-dcda-483e-826b-19dd2c42e799", 2: "29ffec18-c614-4645-8f1c-686e22d2e26a", 3: "04229e76-1ba3-4ac9-8a4e-68d46a3881a2", 4: "a3769a87-35cf-45e9-a5a7-2b4016c52e92" }, i = { 1: "396c15ad-6d3e-4018-98be-cef58cb45cd0", 2: "607c871d-b766-4c6f-ba89-b6c6ca32b156", 3: "42990074-9a73-4459-b749-f3110d222a72", 4: "5702b6f3-62a3-44d2-abe8-fece100a8bf4" } } cái getSecurityHash mình thấy có chỗ này. Mọi người igúp mình với, không học JS nên ngu quá T_T var n = t.url , r = t.method , c = t.token , u = t.ctoken , l = function(e) { return "live" === (0, o.getRuntimeServer)() ? i[e] : s[e] }(e); mấy biến n r c u l i bạn thay vào công thức case là ra đó 1 Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Thiên Chi Kiều Nữ 959 Đã viết 14/01/2021 24 minutes ago, Công Dũng said: var n = t.url , r = t.method , c = t.token , u = t.ctoken , l = function(e) { return "live" === (0, o.getRuntimeServer)() ? i[e] : s[e] }(e); mấy biến n r c u l i bạn thay vào công thức case là ra đó n = ctoken rồi nhóe :v khỏi tìm mất công mỵ đơ lắm rồi :v ace tìm tiếp nhóe Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
QuangBlue 1 Đã viết 29/01/2021 On 1/14/2021 at 8:45 AM, Thiên Chi Kiều Nữ said: n = ctoken rồi nhóe :v khỏi tìm mất công mỵ đơ lắm rồi :v ace tìm tiếp nhóe On 1/14/2021 at 8:13 AM, Công Dũng said: var n = t.url , r = t.method , c = t.token , u = t.ctoken , l = function(e) { return "live" === (0, o.getRuntimeServer)() ? i[e] : s[e] }(e); mấy biến n r c u l i bạn thay vào công thức case là ra đó Em thề là em bỏ ra 2 tuần học JS để chỉ đọc cái này thôi , mà đến hôm nay bỏ cuộc luôn .... có anh chị em nào hỗ trợ e chuyển nó về python ko ạ T_T. Tính phí cũng dc. Trực tiếp zalo e dc ko. :( 0908990094 đúng oải luôn huhu 1 Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Công Dũng 4 Đã viết 29/01/2021 9 giờ trước, QuangBlue said: Em thề là em bỏ ra 2 tuần học JS để chỉ đọc cái này thôi , mà đến hôm nay bỏ cuộc luôn .... có anh chị em nào hỗ trợ e chuyển nó về python ko ạ T_T. Tính phí cũng dc. Trực tiếp zalo e dc ko. :( 0908990094 đúng oải luôn huhu chỗ switch case là 4 công thức đó bác shopee nó thay phiên để thay key secret bác thay vào công thức là được mà rồi giải mã md5 nữa là dxong 1 Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
QuangBlue 1 Đã viết 30/01/2021 14 hours ago, Công Dũng said: chỗ switch case là 4 công thức đó bác shopee nó thay phiên để thay key secret bác thay vào công thức là được mà rồi giải mã md5 nữa là dxong Dạ vấn đề là em hiểu thêm 4 cái biến đó vào cái def đó. Nhưng cơ bản là e ko có căn bản JS cho nên đọc không hiểu gì ráo ... bác có thể giúp e chuyển quá python không . :( Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
Công Dũng 4 Đã viết 30/01/2021 4 giờ trước, QuangBlue said: Dạ vấn đề là em hiểu thêm 4 cái biến đó vào cái def đó. Nhưng cơ bản là e ko có căn bản JS cho nên đọc không hiểu gì ráo ... bác có thể giúp e chuyển quá python không . :( mình cũng mới tập tành code mới đây thôi mà cơ bản thì ngôn ngữ nào cũng như nhau mà mình ra công thức là được bác. được thì add nick sky mình chỉ công thức cho Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites
QuangBlue 1 Đã viết 1/02/2021 On 1/30/2021 at 4:43 PM, Công Dũng said: mình cũng mới tập tành code mới đây thôi mà cơ bản thì ngôn ngữ nào cũng như nhau mà mình ra công thức là được bác. được thì add nick sky mình chỉ công thức cho ok bác. bác cho mình skype của bác đi. cảm ơn bác nhiều lắmmmmm. Trích dẫn Chia sẻ bài đăng này Link tới bài viết Share on other sites