Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 09/27/2020 in all areas

  1. 7 points
    Chào các bạn, hiện tại thị trường tools về facebook khá là đau đầu do con AI dở hơi của facebook liên tục cho ăn checkpoint và die hàng loạt clone :v kể cả cuộc chiến Ad Breaks dính lứu tới Việt Nam đều có phần hãm . Thế nên Mỵ sẽ chuyển qua request một số trang khác thử sức xem như thế nào :") Ở topic này mỵ và mọi người sẽ chia sẻ code về request shopee.vn nhé. ================================================================== Update code (01/03/2020) : Hướng dẫn request thanh toán cho shopee (checkout for shopee) ================================================================== Code : đăng nhập shopee.vn [Hidden Content] Hàm trên là khởi nguồn của mọi việc, đăng nhập xong, lấy được cookie thì mình làm gì tiếp mới làm được Chú ý : các request sau này các bạn nhớ addheader đầy đủ nhé :). Sau khi login bạn mới có thể sử dụng code sau nhé. Code add địa chỉ của shop nhé :[Hidden Content] Chia sẻ code đăng ký shopee :v mỵ mới làm 1/2 còn 1/2 nữa..hoàn thành sau :D .. [Hidden Content] API tìm kiếm sản phẩm :v Sau khi đăng nhập, request GET với link này là có kết qủa nhé string Keyword = "Bao cao su"; string SoLuongTimKiem = "50"; string LinkTK = "https://shopee.vn/api/v2/search_items/?by=relevancy&keyword="+Keyword+"&limit="+SoLuongTimKiem+"&newest=0&order=desc&page_type=search" * Update code 01/05/2020 : Update code đẩy sản phẩm Code đẩy sản phẩm cám ơn bạn @songhanpoo cho mượn nick để test code : string ID_San_Pham = "7330304651"; // bạn tự thay id sản phẩm của bạn string SPC_CDS = "1"; // bạn tự thay SPC_CDS của bạn HttpRequest request = new HttpRequest() { UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36", Cookies = new CookieStorage(), }; ....Chạy code đăng nhập......Đăng nhập xong chạy tiếp code dưới request.Cookies.Add(new System.Net.Cookie("SPC_CDS", SPC_CDS, "/", "shopee.vn")); string DataPost = @"{""id"":"+ ID_San_Pham + @"}"; request.Referer = "https://banhang.shopee.vn/portal/product/list/all"; HttpResponse response = request.Post("https://banhang.shopee.vn/api/v3/product/boost_product/?version=3.1.0&SPC_CDS="+ SPC_CDS + "&SPC_CDS_VER=2", DataPost, "application/json;charset=UTF-8"); string KetQua = response.ToString(); * Update code 07/05/2020 : Lấy danh sách tin nhắn chưa đọc từ chat của shopee . Code của bạn @Đoàn Minh Tâm
  2. 5 points
    Bài hướng dẫn sử dụng UDF _HttpRequest ở bài viết sau đây: Trang shopee.vn phiên bản mới sau này sử dụng nền tảng React.js khá khó chịu để làm request. Thì sau đây là kinh nghiệm của iêm khi làm login trang này bằng http request: Đầu tiên, ta sẽ ngó thử Live HTTP Headers / F12 để xem Request Headers được gửi đi khi login trang, ta có: Ở Request Headers trên ta thấy có 2 giá trị cần phải tìm là: csrftoken và password_hash. Theo nguyên tắc iêm hay nhắc là tìm từ source HTML khi GET địa chỉ referer (referer: https://shopee.vn/api/v0/buyer/login/) thì ta thấy hoàn toàn không có manh mối nào để tìm 2 giá trị trên, vậy là phải tìm thông tin trong code js, thì thấy những manh mối sau để giải câu hỏi: 1. Password_Hash: Sau một hồi lần mò từ đống js thì ta tìm thấy được đoạn sau: ...{"password_hash",function Ge(e){var e=CryptoJS.SHA256(CryptoJS.MD5(e).toString()).toString();}.... → À, vậy đơn giản password_hash là password đã được Hash MD5, sau đó Hash SHA256 chuỗi MD5 đó. UDF _HttpRequest đã cung cấp 2 hàm Hash này. Ta có: $password_hash = _GetSHA256(_GetMD5($password)) 2. csrftoken: Thằng này thì hơi khó nhằn. Phải sử dụng đến 2 manh mối từ js mới giải được thằng này, ta có 2 đoạn js sau: func("csrftoken", e = function(e, n) {n = n || "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for (var a = "", r = 0; r < e; r++) {var t = Math.floor(Math.random() * n.length); a += n.substring(t, t + 1) }return a}(32), 0) và document.cookie=t+"="+e.csrftoken" → Khá hài hước là csrftoken nó chả phải là chuỗi mã hoá gì ghê gớm hết mà chỉ là một chuỗi ngẫu nhiên có độ dài 32 ký tự từ A-Z, a-z, 0-9. Vậy câu hỏi đặt ra là: "Tạo sai tôi cũng từng thay đại 1 chuỗi trong Live HTTP Headers / F12 vào mà có ra đâu ?". Câu trả lời nằm ở chỗ Cookie cũng phải nạp cái csrftoken vào (nó liên quan đoạn code này nè: document.cookie=t+"="+e.csrftoken"). Các thým xem lại mẫu Live HTTP Headers ở trên là thấy Headers và Cookie đều có csrftoken nhoé. 3. Vậy là xong 2 cái giá trị cần tìm. Tuy nhiên khi thử Run code thì nó vẫn chưa chạy (status 400 Bad Request). Đó là vì quá trình login đòi hỏi cookie phải có các tiền giá trị: SPC_T_ID, SPC_T_IV, SPC_F.... điều này thể hiện qua đoạn js sau: ...t.signature=Object(i.c)("SPC_T_ID"),t.hash=Object(i.c)("SPC_T_IV"),t.meta.device_fingerprint=Object(i.c)("SPC_F"),t.meta=JSON.stringify(t.meta),fetch(e,{method:"post"... → Đơn giản là chỉ cần request đến địa chỉ Referer https://shopee.vn/api/v0/buyer/login/ là có. 4. Thêm một lưu ý nữa trong POST data là tham số: login_type, giá trị tham số này thay đổi theo tài khoản điền vào là gì: + Điền tên: login_type=username + Điền số điện thoại: login_type=phone + Điền email: login_type=email Mọi yếu tố đều đã được giải đáp, vậy là ta có code hoàn chỉnh như sau: [Hidden Content] Ảnh demo: (Mượn tạm acc của thým HoangVu để làm demo) >>> Xem tiếp bài viết Tương tác với Shopee sau khi đã Login tại
  3. 5 points
    Chào các bạn, tuy mỵ đã có bài hướng dẫn request về việc đăng nhập shopee lấy cookie để sử dụng, nhưng nhiều bạn làm bên php curl lỗi và mãi chưa xử lý được nên mỵ bỏ công qua ngâm cứu thêm chút về php. Mỵ không chuyên phần này, nếu sai xót gì các bạn phản hồi để mỵ update nhé :") . Đây là bài gốc, hướng dẫn request login shopee Đây là phần bài giải [Hidden Content] Good luck !!!
  4. 5 points
    Đây là Hàm xoá SP trong giỏ hàng : [Hidden Content] ************************************************************************************************ Update cho hàm xoá, chỉ cần truyền vào duy nhất giá trị csrf là có thể xoá đc tất cả các sản phẩm đang tồn tại trong giỏ. Thớt có cái param của thêm sản phẩm vào giỏ và xoá địa chỉ cũ không ạ, em đang tập 2 cái đó mà khong hỉu sao convert sang c# nó ứ chịu chạy. [Hidden Content]
  5. 3 points
    Chia sẻ anh iêm hàm giải azCaptcha với api mà trang này cung cấp: https://azcaptcha.com/document [Hidden Content]
  6. 3 points
    Mỵ vừa check xong một số tài khoản edumal được share trên mạng share lại cho các bạn học hành về lập trình android, excel, bất động sản, yoga, ca hát thanh nhạc, nói chuyện, Lê Thẩm Dương,dạy con, khởi nghiệp. ..vv.vv [Hidden Content]
  7. 2 points
    Share các bác bộ sưu tập bí thư cổ truyền, được truyền thừa từ ông tổ nghề AutoViệt từ hocautoit.com. Trong đây có rất nhiều tàng thư, bí kíp có giá trị. Nếu các bác có thời gian ngâm cứu, tui tin chắc các bác sẽ trở thành một bậc vĩ nhân. Bao gồm hàng trăm thứ code hổ lốn các thứ hầm bà lằng từ autoclick các kiểu, cheatengine, botnet, kho tàng code của thánh LeeSai... Mời anh em họ hàng bà con cô bác xơi ngay kẻo thất truyền thì uổng phí hết công sức của tiền nhân Link google drive nhé : [Hidden Content] Nguồn sưu tầm: LeeSai cùng đồng bọn. Lời văn: Hiếu Võ Văn.
  8. 2 points
    *09/10/2020 : Tạm dừng sử dụng tính năng này nhé các bạn Chào mừng ngày mới, hôm nay mình thử ra mắt sản phẩm nhẹ decaptcha online ( up hình ảnh lên và lấy text về ) chỉ bằng một requests. Yêu cầu kiến thức cơ bản về httprequest là post và upload file Dưới đây là link request : * 14/08/2019 : Bổ sung api_key [Hidden Content] với datatpost là : captcha_image=đường dẫn ảnh trong máy nhé. api_key=812bee77ebc80ab083a9bf2dd600dad2 * chú ý : bạn nào lỗi key api thì tự md5 chuỗi : teamcodedao là ra mã md5 nhé. Ảnh full HD không che :) Hiện tại dịch vụ đang trong quá trình thử nghiệm, rất mong các bạn sử dung và chia sẻ ý kiến :) Xin cám ơn các bạn.
  9. 2 points
    Sau bài viết đăng nhập Shopee : thì iêm sẽ hướng dẫn các cách thức tương tác request với nó bởi trang này khá đa dạng trong các kiểu request gây bối rối cho người code. Điều đầu tiên iêm muốn nói là ta không thể request trực tiếp đến địa chỉ cửa hàng được, ví dụ như khi request đến cửa hàng Lock&Lock Official Store có địa chỉ https://shopee.vn/locknlockvn thì ta sẽ bị redirect ngay đến https://shopee.vn/?__classic__=1 và không có kết quả gì liên quan cửa hàng này, nguyên do là đoạn js của nó: <script>function showBody(){document&&document.body&&(document.body.style.visibility="visible")}var SHORT_URL_MAX_LENGTH=256,pathname=location&&location.pathname;if("/"!==pathname&&pathname.length<SHORT_URL_MAX_LENGTH&&""===location.hash&&-1===pathname.indexOf("-")&&0===pathname.lastIndexOf("/")){document&&document.body&&(document.body.style.visibility="hidden"),setTimeout(showBody,5e3);var xhr=new XMLHttpRequest;xhr.open("GET","/api/v0/is_short_url/?path="+pathname.replace("/","")),xhr.setRequestHeader("Content-Type","application/json"),xhr.setRequestHeader("Accept","application/json"),xhr.onreadystatechange=function(){if(4===this.readyState)if(200===this.status)if(JSON.parse(this.responseText).error)showBody();else{var e=document.createElement("a");e.href=location.href,e.search+="?"===e.search[0]?"&__classic__=1":"?__classic__=1",location.href=e.href}else showBody()},xhr.send()}</script> <script>if(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,window.PerformanceObserver){var observer=new window.PerformanceObserver(function(e){for(var r=e.getEntries(),n=0;n<r.length;n++){var a=r[n],i=a.name,t=Math.round(a.startTime+a.duration);ga("send",{hitType:"timing",timingCategory:"Performance Metrics",timingVar:i,timingValue:t})}});observer.observe({entryTypes:["paint"]})}</script> Vì vậy, ta chỉ có thể lấy thông tin cửa hàng từ api mà trang shopee cung cấp, và iêm sẽ trang bị cho các thým đoạn code sau để lấy thông tin của một cửa hàng: $Info = Shopee_ShopInfo('https://shopee.vn/locknlockvn/', True) Func Shopee_ShopInfo($iURL, $vFullInfo = True) Local $ShopName = StringRegExp($iURL, 'https://shopee.vn/([^\/]+)', 1) If @error Then Return SetError(1) Local $rq = _HttpRequest(2, 'https://shopee.vn/api/v2/shop/get?username=' & $ShopName[0]) If $vFullInfo Then Return _HTMLDecode($rq) Return StringRegExp($rq, '"shopid"\s*?:\s*?(\d+)', 1)[0] EndFunc Hàm Shopee_ShopInfo sẽ trả về dữ liệu phụ thuộc tham số $vFullInfo, nếu $vFullInfo = True thì sẽ trả về đầy đủ thông tin như sau: Còn nếu để $vFullInfo = False thì sẽ chỉ trả về ShopID. ------------------------------------------------------------------------------------------------------------------------------------------ OK, giờ vào vấn đề chính, khi ta request tương tác với shopee thì ta để ý kỹ những điều này khi đọc Live HTTP Headers hoặc F12 Dev Tools Trình duyệt: - Nếu tương tác với trang shopee.vn thì thường có đi kèm với csrftoken trong header và cookie. - Nếu tương tác với trang banhang.shopee.vn thì thường có đi kèm với SPC_CDS trong param của URL và cookie. Bây giờ ta thử một số tương tác sau: 1/ Request nhấn nút "Theo Dõi" một cửa hàng: Ví dụ ta request "Theo Dõi" cửa hàng Lock&Lock Official Store tại địa chỉ sau: https://shopee.vn/locknlockvn , ta bắt request sẽ được thế này: - Số 55771655 trong URL là ShopID, cái này thì chỉ cần sử dụng hàm Shopee_ShopInfo đã cung cấp ở trên với $vFullInfo = False là xong. - Ta thấy có xuất hiện csrftoken ở header và cookie → Khi request ta nhớ nạp cả 2 cái csrftoken này vào tham số $Cookie và $Header của hàm _HttpRequest thì mới request thành công. Như đã nói ở bài hướng dẫn login shopee, csrftoken chỉ là 1 chuỗi ngẫu nhiên nên ta có thể lấy luôn csrftoken mà ta bắt được để nạp vào, hoặc sử dụng kết quả trả về của hàm Shopee_Login mà iêm đã cung cấp (Xin nhắc lại, hàm Shopee_Login($Username, $Password) sẽ trả về mảng 5 phần tử: [0] Cookie chứa csrftoken, [1] Header chứa csrftoken, [2] UserName, [3] ShopID, [4] ID) Vậy ta có code:[Hidden Content] 2/ Thay đổi trạng thái "Xác minh đăng nhập OTP": Để thay đổi trạng thái xác nhận OTP thì ta phải đăng nhập vào trang https://banhang.shopee.vn/account/signin rồi sau đó vào Cài Đặt rồi vào Thiết Lập Shop , và ta bắt được request khi tắt bật nút trượt Xác thực OTP: - Method request là PUT chứ không phải POST, cần chú ý. - Ta thấy sẽ xuất hiện SPC_CDS trong param của URL và cookie như ghi chú đã nói ở phía trên. Thì nó ở đâu ra ? Nó sinh ra từ js và nó cũng như csrftoken có liên quan đến Session của shopee, vì thế phải nạp nó vào cả 2 chỗ thì mới request thành công và giá trị của nó ta để là số 1 là được rồi, khỏi cần dông dài e850f29a-d704-48f0-8227-c9452adfc224 như request bắt được ở trên chi cho mệt. - 118343558 trong URL là ID của tài khoản, nó là phần tử thứ 4 trong mảng trả về của hàm Shopee_login đấy. - "disable_new_device_login_otp" trong Data2Send: nếu là false thì Bật OTP, nếu là true thì tắt OTP Ta có code:[Hidden Content] 3/ Chat với Shop: Chat shopee dựa trên WebSocket thì _HttpRequest đã hỗ trợ tương tác WebSocket trên Win10 (Win8 trở xuống WinHttp không hỗ trợ WebSocket) Code như thế này:[Hidden Content] Trong đó $from_userid, $to_userid , $ShopID, $itemid dễ dàng tìm được nên iêm sẽ không code cụ thể nữa, ai thích tìm hiểu thì tự code nhoé ($from_userid thì lấy từ kết quả trả về của hàm Shoppe_Login. $to_userid , $ShopID thì từ kết quả hàm Shopee_ShopInfo ...) Demo: https://www.youtube.com/watch?v=p2zby2DEw1g Vậy là iêm đã lướt qua một số request cơ bản tương tác với Shopee, chúc các thým tìm hiểu vui vẻ và thích thú với nhánh HTTP Request này
  10. 2 points
    Như ae đã biết, vụ checkout shopee giờ khá khoai. Hnay rảnh rỗi - sang tháng mới - tặng ae đoạn code checkout Shopee. Mà chính xác hơn là solution cho ae quất. Giá trị: 10.000.000 VND :v (ảo tưởng tí) 1. x-track-id là gì? Như ae thấy, giờ khi call place_order, trong header sẽ có thằng x-track-id. Vậy nó là con mẹ gì vậy? Shopee giờ khôn hơn rồi. Đầu tiên, em nó sẽ dùng vài thông tin trong đoạn trả về của api checkout/get + thông tin account đặt hàng => Mã hóa SHA512 => tạo ra 1 chuỗi x-track-id. Mà SHA512 là mã hóa 1 chiều, nên cơ bản là không thể giải mã. Vậy shopee check valid cái x-track-id thế nào? Cũng giống như việc check password vậy, shopee sẽ dựa vào thông tin bạn post lên ở api place_order và cũng mã hóa các thông tin cần thiết => sau đó so sánh kq đó với chính cái x-track-id bạn post llên trong header. Lý thuyết thì vậy rồi, giờ là cách tính x-track-id. [Hidden Content] Kết luận 1: chuỗi mã hóa thì fix bởi các tham số như trên, còn key mã hóa thì sẽ phụ cmn thuộc vào userid của thằng đang mua. Và thằng x-track-id này lại trở thành key của hàm mã hóa data json. 2. X-CV-ID là gì? Tôi có cần post cái của nợ gì mã hóa lên không? - Thực ra m cũng đ' biết X-CV-ID là cm gì. - Tôi có cần post cái của nợ gì mã hóa lên không? Trả lời: Tùy các bạn, nó phụ thuộc vào độ nguy hiểm của các bạn. Riêng tôi, tôi thích đơn giản, yêu màu tím ! Đoạn jav dài quá, chưa beautify nên thôi nợ k post nhé. Về cơ bản ae thấy khi nó post api place_order => nó sẽ tự chèn X-CV-ID = 100. Tôi k biết là gì, tại sao lại 100 mà đ' phải 999 hay 9999. Như tôi đã đề cập ở trên đấy "Tùy các bạn, nó phụ thuộc vào độ nguy hiểm của các bạn". Các bạn thích post data mã hóa cho nguy hiểm hoặc thích số 100 thì cứ cho nó là 100 đi. Còn tôi, tôi thích số 69 anh em ạ. Nên tôi cho nó = 69. Vì nó là 69 nên tôi chỉ cần post đoạn json như trước kia lên mà thôi. K cần thiết mã hóa làm gì cả. Kết luận 2: - X-CV-ID >= 100 ==> thì post data mã hóa (Mà trong bài này m có hướng dẫn cách mã hóa data json đ' đâu?) - 0 < X-CV-ID < 100 ==> Post cái json như mọi khi bạn vẫn làm :) Chốt: AE chỉ cần tính đúng x-track-id là đủ. Ae đã có 10tr cho tháng 3 chưa? Ngại gì k thử nhỉ. Hãy để lại 1 vài like và ít còm men cho người ae thiện lành nào !
  11. 2 points
    Thêm sản phẩm vào giỏ hàng :[Hidden Content]
  12. 1 point
    Pycharm là 1 IDE dành riêng cho python, các tính năng của IDE này khỏi phải bàn như hint code, debug, quản lý virtualenv, hỗ trợ jinja2, django... và nhiều nhiều nữa. Thế nhưng không phải ai cũng có tiền trả tiền license cho phiên bản professional của IDE này. Topic này mình sẽ tập hợp các license key / license server giúp các bạn kích hoạt pycharm. Update key Pycharm 2019 25/05/2019 - hạn sử dụng : November 08 2019 (nhập key active online, không cần chỉnh sửa file host) [Hidden Content] =================================================================================================================== Mở file hosts lên và thêm vào dòng này vào. Sau đó bạn hãy copy license còn active vào để kích hoạt Pycharm. Key dùng được cho : Pycharm 2018.2.4 Professional PhpStorm 2018.2.4 Professional Phần quan trọng nhất đây :)) [Hidden Content] Tớ đã test và đang xài oke nhé các bạn :").
  13. 1 point
  14. 1 point
    Chào các bạn, hôm nay rảnh rỗi tớ dọn dẹp Laptop, thấy có kho PSD ảnh CMND + giấy tờ tùy thân lưu trong máy lúc nào không biết nữa, vì vậy nguồn có thể gọi là mất tích rồi. Chỉ còn lưu sources lại cho các bạn thôi. Nguồn : Sưu tầm internet Link Google Drive : [Hidden Content]
  15. 1 point
    Tổng hợp 11 tài liệu/giáo trình/ebook AutoIt tiếng Việt từ nhiều nguồn khác nhau cực hay cho người mới bắt đầu: [Hidden Content]
  16. 1 point
    Hi, mỵ bận quá, không kịp hướng dẫn bạn..bạn giỏi quá tự làm được rồi Như hình nhé, dòng số 2 không phải, bỏ đi bạn nhé, bạn thay user agent như dòng số 1 mới đúng. Bạn lên mạng tìm thật nhiều user agent vào rồi thay random thôi :) ..
  17. 1 point
    đã giải quyết thành công. Cám ơn Mỵ gợi ý.
  18. 1 point
    Mình mới tham gia forum. Thấy trong này xôm quá nên vào chia sẻ ít kinh nghiệm và kiến thức nho nhỏ cho ae :D Rồi vào việc luôn -> 1. Sniff request của nó để xem nó cần những gì để login Login nó bắt cái captcha_key -> khác login user rồi 2. Tìm thằng captcha_key xem nó được đẻ ra như thế nào Giờ tìm nó trong đống js. Vì mình tìm trong html không có thì chỉ có được tạo ra = js thôi - > ai không hiểu đoạn này thì hỏi nhé . Sau 1 lúc mò mẫm thì mình kiếm được đống code này. Nó chính là thằng generate ra captcha_key Hàm 4fRq này tạo ra 1 mảng unit8array có 16 phần tử. Chính là biến e được truyền vào trong hàm I2ZF '4fRq': function (e, t) { var r = 'undefined' != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || 'undefined' != typeof msCrypto && 'function' == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto); if (r) { var n = new Uint8Array(16); e.exports = function () { return r(n), n } } else { var o = new Array(16); e.exports = function () { for (var e, t = 0; t < 16; t++) 0 == (3 & t) && (e = 4294967296 * Math.random()), o[t] = e >>> ((3 & t) << 3) & 255; return o } } } Hàm này chính là thằng generate ra captcha_key I2ZF: function (e, t) { for (var r = [ ], n = 0; n < 256; ++n) r[n] = (n + 256).toString(16).substr(1); e.exports = function (e, t) { var n = t || 0, o = r; return [o[e[n++]], o[e[n++]], o[e[n++]], o[e[n++]], '-', o[e[n++]], o[e[n++]], '-', o[e[n++]], o[e[n++]], '-', o[e[n++]], o[e[n++]], '-', o[e[n++]], o[e[n++]], o[e[n++]], o[e[n++]], o[e[n++]], o[e[n++]]].join('') } Hàm này nó check cái mẹ gì ấy mình không rõ xk4V: function (e, t, r) { var n = r('4fRq'), o = r('I2ZF'); e.exports = function (e, t, r) { var i = t && r || 0; 'string' == typeof e && (t = 'binary' === e ? new Array(16) : null, e = null); var d = (e = e || { }).random || (e.rng || n) (); if (d[6] = 15 & d[6] | 64, d[8] = 63 & d[8] | 128, t) for (var a = 0; a < 16; ++a) t[i + a] = d[a]; return t || o(d) } Hàm này sẽ là thằng xử lý cuối cùng bỏ dấu - ra khỏi captcha hash. không có hàm này thì captcha_key sẽ là : "3e101bbb-0849-4e95-b10c-6b074193796a" key: 'changeCaptchaSeed', value: function () { this.prevCaptchaSeed = this.captchaSeed, this.captchaSeed = (0, p.default) ().replace(/-/g, '') } Xong 1 thằng :D. Khi nào rảnh mình lại viết tiếp nhé
  19. 1 point
    xem lại header có giống nhau k. Có bị thiếu cookie không
  20. 1 point
    Xin chào ae trong group ạ Mình đang học về giải quyết captcha bằng selenium Hiện tại mình dùng dịch vụ của 2captcha thì đã lấy được mã response captcha của bên dịch vụ Mình đang vướng chỗ callback form js để nó tự login ạ Trang web mình test là https://app.golike.net/login Mọi người login vài lần là sẽ hiện captcha nhé Cảm ơn mọi người giúp đỡ ạ, mình xin hậu tạ 1 ly cafe xem như cảm ơn ạ Tks mn
  21. 1 point
    cho thêm ít thông tin về project đi b ơi. code = ngôn ngữ gì đoạn code lỗi ở đâu
  22. 1 point
    Link vẫn bt mà b bị lỗi gì vậy ? https://cf.shopee.vn/file/f724033080c73be0ae485e86382f5567
  23. 1 point
    Thấy nhiều bạn cứ kêu ca mỗi lần muốn giảm Ping game nhờ công cụ Tiny.vn thì lại phải vào trang https://tiny.vn/ mất công nên tool này sẽ giúp các bạn tự động hoá việc lấy pass + đăng nhập + chọn list từ a-z. Build exe từ source au3 xong rồi bỏ exe đó chung thư mục cài Tiny.vn.exe là xong. Tải về mã nguồn Tiny.vn.au3
  24. 1 point
    Link khóa học Python cơ bản từ không biết gì đến siêu nhân :)). Nguồn sưu tầm nên không nhớ :") . Các bác biết của ai thì có thể reply mình thêm vào. Link : [Hidden Content] * Update link drive google
  25. 1 point
    - Nguồn gốc: UDF này được sửa đổi và cải tiến từ UDF JSON Object của tác giả ozmike (https://www.autoitscript.com/forum/topic/156794-oo_jsonudf-jsonpath-oo-using-javascript-in-auto-it) - Có gì khác so với UDF gốc: Ở UDF gốc, ta không thể chạy code ở môi trường x64 (phải thêm #AutoIt3Wrapper_UseX64=no hoặc compile ở mode 32 bit mới chạy được), trong khi bản mod lại này chạy được cả x64 và x32. Code được làm lại gọn gàng, sạch đẹp, không lung tung như bản gốc. Thêm vài method mới tiện lợi cho việc sử dụng. - Có gì khác so với các UDF về JSON khác: UDF siêu nhỏ gọn với chỉ 50 dòng code nhưng có sức mạnh đáng gờm. Code tường minh và trực quan, dễ dàng sử dụng. - Hình ảnh minh hoạ: Dễ dàng thao tác với JSON: Tạo cái nhìn trực quan về JSON: Dễ dàng lọc các thành phần JSON dựa trên thư viện jsonPath: - Tải về: File zip bao gồm UDF và tệp Ví dụ với ghi chú rõ ràng dễ hiểu. Version cũ: Đã xoá Link Version mới: [Hidden Content]
  26. 1 point
    Xin chào các bạn. Hôm nay mình giới thiệu tới các bạn thư viện xNet do ông thần người Nga nào đó viết :") . Trước hết ta hiểu nôm na việc sử dụng thư viện xNet là dùng để giả lập request từ người dùng lên sever qua các method : GET, POST, PUT, DELETE. Ở bài viết này, mình sử dụng Visual studio 2017 pro và xNet version 3.3.0 (Link download thư viện xNet chính chủ) hoặc tải trực tiếp thư viện dll tại đây : Để bắt đầu với thư viện xNet, các bạn thêm thư viện cho code bằng cách : using xNet; Chú ý : Các request gửi đi nên thêm vào User Agent nhé. Ví dụ thứ 1 về gửi request GET tới trang bất kỳ để lấy về mã nguồn HTML của trang đó : để bắt đầu gửi 1 request ta sử dụng Httprequest chúng ta có thể set các giá trị mặc định cần thiết hoặc không cần cho request ví dụ như : header, watting time, address direct.... Ví dụ mẫu : using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; string content = request.Get("Địa chỉ web").ToString(); } Ví dụ đơn giản về gửi 1 request tới trang web và lấy dữ liệu html của trang đó về, ta sử phương thức GET: using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; string content = request.Get("https://teamcodedao.com/forum/").ToString(); } Ví dụ thứ 2 về gửi 1 request POST tới trang web (thường dùng để đăng nhập, đăng bài, post ảnh..vv..v) : Cách 1 : using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; MultipartContent Data = new MultipartContent() { {new StringContent("Admin"),"username" }, {new StringContent("123456"),"password" } }; string content = request.Post("https://teamcodedao.com/forum/",DataToSend).ToString(); } Cách 2 : using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; request.AddParam("username","Admin").AddParam("password","123456"); string content = request.Post("https://teamcodedao.com/forum/").ToString(); } Cách 3 : using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; var reqParams = new RequestParams(); reqParams["username"] = "Admin"; reqParams["password"] = "123456"; string content = request.Post("https://teamcodedao.com/forum/",reqParams).ToString(); } Cách 4 : using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; request .AddField("username", "Admin") .AddField("password", "123456") ; string content = request.Post("https://teamcodedao.com/forum/").ToString(); } Cách 5 : using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; string DataPost = "key1=value1&key2=value2&key3=value3"; string Content_Type = "application/x-www-form-urlencoded"; // Tùy yêu cầu content type mà bạn thay đổi nhé string content = request.Post("https://teamcodedao.com/forum/",DataToSend,Content_Type).ToString(); } Ví dụ thứ 3 về gửi request kèm Cookies : thường thì sau khi login thành công 1 trang web, sever sẽ trả về cho chúng ta một thứ để biết đấy là chúng ta, cái thứ đó gọi là cookies. Để lấy cookies sau khi POST login trang web nào đó thành công ta sử dụng mẫu code như sau : * Trước hết là bạn post đăng nhập, và lưu lại cookie để có sau này xài. using (var request = new HttpRequest()) { request.UserAgent = "MeoMup"; MultipartContent Data = new MultipartContent() { {new StringContent("Admin"),"username" }, {new StringContent("123456"),"password" }, }; HttpResponse response = request.Post("https://meomup.000webhostapp.com/forum",DataToSend); string content = response .ToString(); string cookieLogin = response.Cookies.ToString(); } * Giờ đến đoạn request cùng với giá trị cookie : Đó là bước lưu lại cookies sau khi đăng nhập thành công, cookies lưu về có dạng name1=value1,name2=value2.... Lần tới muốn request lại ta chỉ việc nạp cookie vào như sau : HttpRequest request = new HttpRequest(); request.UserAgent = "MeoMup"; request.Cookies = new CookieDictionary() { {"name1","value1"}, {"name2","value2"} } // ở đây ta có bao nhiêu name, value thì ta nạp đủ bấy nhiêu vào nhé. Giờ ta chỉ viêc request tới trang chủ thôi string htmlContent = request.get("trang chủ").ToString(); Ví dụ về thay đổi phương thức request trong xNet (xnet request method) : ngoài 2 phương thức thông thường là GET và POST, chúng ta còn có các method khác như PUT, DELETE , chúng ta thay đổi method như sau : HttpRequest request = new HttpRequest() { UserAgent = "MeoMup", Cookies = new CookieDictionary(), }; string DataPost = ""; HttpContent Data2send = new StringContent(DataPost); HttpResponse response = request.Raw(HttpMethod.PUT, "https://www.teamcodedao.com", Data2send); // tương tự với method khác MessageBox.Show(response.ToString()); request.Dispose(); Cơ bản là thế :") . Trong khi request các bạn có thể còn gặp nhiều trường hợp hoặc vấn đề khác phát sinh, các bạn có thể reply tại đây mình biết thì sẽ giải thích cho các bạn . Good Luck !!!
  27. 1 point
    Chào các bạn, hôm nay mình có đi dạo qua mấy website và có nhận được 2 khóa học tiếng việt cơ bản và nâng cao dành cho JavaScript, mang về share cho các bạn cần. Sơ qua về Khóa học: không cần nói dài dòng, hầu như bất cứ đâu ở trên bất cứ website nào đều có sự tồn tại của JS, là một ngôn ngữ lập trình cho web JS hiện nay đã phát triển rất mạnh mẽ và nếu các bạn đang theo học khóa học mình chia sẻ ở đầu bài viết thì hãy note ngay khóa này lại để học tiếp lộ trình làm dev web nhá! Khóa học này phù hợp cho mọi người, kể cả khi bạn không có ý định theo web nhưng muốn học 1 ngôn ngữ lập trình hot và không yêu cầu khó quá khăn để học (chỉ cần bạn có trình duyệt web và 1 trình đọc ghi file) Lộ trình chinh phục JS bao gồm : Full JavaScript tiếng Việt (Beginner) JavaScript chuyên sâu tiếng Việt (Advanced) Link google drive : [Hidden Content]
  28. 1 point
    BƯỚC 1 - CHỈNH SỬA THƯ VIỆN C# ĐỂ AUTOIT VÀ DLL ĐÓ CÓ THỂ "NHÌN THẤY NHAU" QUA CỔNG COM - Để có thể liên kết AutoIt với thư viện DLL của C# thông qua COM thì Dll đó phải được cài đặt chế độ COMVisible=True. Để làm được điều này ta sẽ thực hiện như sau: + Nếu máy tính của bạn có cài IDE lập trình C# thì đơn giản là mở source code của DLL đó nếu nó được nhà phát triển cung cấp. + Cách khác là ta có thể chỉnh sửa trực tiếp DLL C# bằng phần mềm hoàn toàn miễn phí dnSpy. Nếu máy đã cài .Net Framework 4.7.2 thì tải dnSpy-net472.zip. Nếu chưa cài .Net Framework thì tải dnSpy-netcore-win32.zip hoặc dnSpy-netcore-win64.zip - Sau đó ta cài đặt dòng [assembly: ComVisible(true)] ở mục khai báo DLL như ví dụ dưới: - Nếu là chỉnh sửa source bằng IDE thì đơn giản rồi, còn nếu chỉnh sửa bằng dnSpy thì cách làm như sau: + Mở chương trình dnSpy. +Open DLL cần chỉnh sửa, từ panel bên trái ta chọn tên thư viện cần chỉnh: + Ta sẽ tìm thấy dòng [assembly: ComVisible(false)] hoặc [assembly: ComVisible(true)] (Nếu không tìm thấy dòng này thì tự thêm vào), nếu chế độ đang là true thì khỏi cần chỉnh gì cả, nếu là false thì ta nhấp phải vài bất cứ dòng nào ở panel bên phải, chọn Edit Assembly Attributes (C#)... + Xong rồi thì Save lại DLL là hoàn tất bước 1. BƯỚC 2: CODE AUTOIT GIÚP KẾT NỐI AUTOIT VÀ DLL C# - Ta có thư viện được viết bởi guinness (DEV autoscript.com) tại địa chỉ sau: https://www.autoitscript.com/forum/topic/166704-net-compiled-dll-assembly-in-autoit-the-simple-approach/. Bạn không cần vào tải thư viện trên vì tôi đã đính kèm Thư viện này + Các ví dụ ở tập tin đính kèm bên dưới. - Cách viết code: + Load Dll bằng hàm _DotNet_Load + Gọi Object bằng hàm ObjCreate với tham số classname là: Namespace.Class + Phần còn lại là phụ thuộc vào bạn vì mỗi DLL sẽ có cấu trúc gọi lệnh hàm COM khác nhau, nhưng nói chung chỉ cần ít kiến thức về COM, class...và đọc ví dụ bên code C# về DLL đó là dễ dàng chuyển đổi sang code AutoIt. - Ví dụ liên kết AutoIt với thư viện khá nổi bên C# là HtmlAgilityPack.dll Code C#: Chuyển sang code AutoIt: TẢI VỀ CODE MẪU + MỘT SỐ DLL C# ĐÃ EDIT SẴN CHẾ ĐỘ COMVISIBLE=TRUE ĐỂ TEST: [Hidden Content]
  29. 1 point
    Code của bạn sai nhé.. mấy giá tri kia add vào header chứ không phải add vào cookie.. Code lấy về thì đây bạn : HttpRequest requests2 = new HttpRequest() { UserAgent = Http.ChromeUserAgent(), }; requests2.Referer = "https://shopee.vn/search?keyword=t295"; HttpResponse response_demsp = requests2.Get("https://shopee.vn/api/v2/search_items/?by=relevancy&keyword=t295&limit=50&newest=0&order=desc&page_type=search&version=2"); string KetQua_demsp = response_demsp.ToString(); KetQua_demsp ra như hình :
  30. 1 point
  31. 1 point
  32. 1 point
    Chào các bạn, hôm nay mình đi tìm mãi mới thấy hàm json encode này để sử dung khi tìm trong source html hoặc sử dụng để post trong httprequest, mình chia sẻ lại cho các bạn đỡ mất công đi tìm lâu la như mình :D private static string EncodeNonAsciiCharacters(string value) { foreach (char c in value) { if (c > 127) { string encodedValue = "\\u" + ((int)c).ToString("x4").ToUpper(); value = value.Replace(c.ToString(), encodedValue); } } return value; }
  33. 1 point
    @lisatthu35 code của bạn đây :[Hidden Content]
  34. 1 point
    Ví dụ tiếp theo về xNet đó là add giá trị header vào gửi kèm cùng request GET hoặc POST using (var request = new HttpRequest("https://teamcodedao.com/forum")) { request.Cookies = new CookieDictionary() { {"hash", "yrttsumi"}, {"super-hash", "df56ghd"} }; request[HttpHeader.DNT] = "1"; request["X-Secret-Param"] = "UFO"; request.AddHeader("X-Tmp-Secret-Param", "42"); request.AddHeader(HttpHeader.Referer, "https://teamcodedao.com/forum"); request.Get("/"); } Ví dụ về add Proxy hoặc Socks cho xNet . Cái này chắc nhiều bạn làm về MMO thì chắc cần nhỉ :)[Hidden Content] Ví dụ tiếp theo về xNet đó là lấy giá trị header : [Hidden Content]
  35. 1 point
    https://shopee.vn/buyer/login/login_post/ POST /buyer/login/login_post/ HTTP/1.1 Host: shopee.vn User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0 Accept: */* Accept-Language: vi-VN,vi;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate, br Referer: https://shopee.vn/api/v0/buyer/login/ Content-Type: application/x-www-form-urlencoded; charset=UTF-8 If-None-Match-: 55b03-dd8c77f0984f95cd098dd59925ead48f X-Requested-With: XMLHttpRequest Content-Length: 185 Cookie: _gcl_au=1.1.232781227.1545362472; _med=refer; csrftoken=9A8JLlmOWhDWbfVPRs3n363c7o6vWRoq; SPC_IA=-1; SPC_EC=-; SPC_F=rJuaV5jQHM4ne7rANEoQ0jyR2AY0sLum; REC_T_ID=7921796e-04cf-11e9-be26-3ce8241b48b6; SPC_T_ID="1+aYgog0CzsT1a8duZVeDjd+4THfcmPlRBtP9hDG1dkcWMKTzjcou/HABcvldben1GPmjxmS3Nx99MJxnsUOQCndTWFkYSopw9HCtnlWI38="; SPC_U=-; SPC_T_IV="woTKulDU0aEBcqAb5RdWwg=="; _ga=GA1.2.804881808.1545362476; cto_lwid=7f3990e2-7cf8-4c20-b5b2-19e35683adea; cto_idcpy=06714c20-d918-44f0-8401-adff410467e9; SPC_SI=zyhqfq5m52nbej8larprmkjf9gcxgwa7; _gid=GA1.2.2144178586.1547290508; SPC_SC_TK=d6184cffe88ca8ed9ab4bf5d486ef1b0; SPC_SC_UD=119994218; welcomePkgShown=true; bannerShown=true; _fbp=fb.1.1547308936938.1246916371; AMP_TOKEN=%24NOT_FOUND; _dc_gtm_UA-61914164-6=1; _gali=login Connection: keep-alive login_key=hoangvu1093791&login_type=username&password_hash=01be3d2804edd00bfc6b026ef1724109f1be56f73f516c09a2f96e27c0824a31&captcha=&csrfmiddlewaretoken=9A8JLlmOWhDWbfVPRs3n363c7o6vWRoq sao em bắt request các kiểu lại đc như này nhỉ ? A Huân có thể giải đáp k ạ. 1. Của em bắt request k có x-csrftoken thì có cần chèn không ? 2. của em cái csrfmiddlewaretoken=9A8JLlmOWhDWbfVPRs3n363c7o6vWRoq là trong soure có luôn nên k random đc thì như nào ạ. Mong a Huân thông não giúp em cái. thank anh
  36. 1 point
    Xin chào các bạn, hôm nay mình xin hướng dẫn các bạn về cách thức đăng nhập vào sql server và sử dụng sql server như thế nào nhé. Các thức này khác là cơ bản, nhưng mình vẫn thấy nhiều bạn hỏi, không biết tại sao không login được, hay báo lỗi, và các sử dụng để đọc, ghi, sửa, xoá bảng ghi sql server bằng ngôn ngữ C#. Phần 1 : Các bạn nên cài SQL SERVER 2017 mới nhất nhé . Link tải và cài đặt theo mặc định, không cần phải thay đổi gì cả. Link download từ trang chủ, các bạn tải bản Express về nhé, bản này miễn phí và nhẹ dùng để làm thực tập và đồ án nhỏ thì được. Phần 2 : Sau khi tải xong và cài đặt thành công, các bạn tải thêm phần mềm SQL SERVER Management Studio (SSMS) để quản lý nhé. Link cũng tại trang chủ đây Phần 3 : Sau khi có đồ nghề xong, cùng với Visual Studio 2017 và thư viện System.Data.SqlClient có sẵn đi kèm nhé, chúng ta bắt tay vào việc kết nối nào. À iêm quên mất, các thím phải mở tài khoản SA ra để có tài khoản và mật khẩu đăng nhập nhoé, đây là hướng dẫn mở tài khoản SA. Trước hết, đây là tài liệu chính thống của SQL SERVER, các bạn có thể đọc tham khảo qua trước, link ở đây : Sau đây chúng ta bắt tay vào code, ở đây các tham số cần là tên máy : TeamCodeDao, tên database : databaseTCD, tài khoản mặc định là : sa, và mật khẩu là : 123456 nhé các bạn, và đây là mẫu connection SQL SERVER : try { string ConnectionString = @"Data Source=TeamCodeDao;Initial Catalog=databaseTCD; Integrated Security=True"; SqlConnection KetNoi = new SqlConnection(ConnectionString) MessageBox.Show("Kết nối thành công"); KetNoi.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Kết nối không thành công"); } Hiện tại tớ mới biết khai báo 5 cách sau để kết nối đến SQL SERVER , các cách đều giống nhau, chỉ khác nhau ở phần chuỗi khai báo connect string thôi nhé : Cách 1 : Như mẫu trên Cách 2 : try { string ConnectionString = @"Data Source=TeamCodeDao;Database=databaseTCD; Integrated Security=True"; SqlConnection KetNoi = new SqlConnection(ConnectionString) MessageBox.Show("Kết nối thành công"); KetNoi.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Kết nối không thành công"); } Cách 3 : try { string ConnectionString = @"Data Source=TeamCodeDao;Database=databaseTCD; Integrated Security=SSPI"; SqlConnection KetNoi = new SqlConnection(ConnectionString) MessageBox.Show("Kết nối thành công"); KetNoi.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Kết nối không thành công"); } Cách 4 : try { string ConnectionString = @"Data Source=TeamCodeDao;Database=databaseTCD; User ID=sa;Password=123456"; SqlConnection KetNoi = new SqlConnection(ConnectionString) MessageBox.Show("Kết nối thành công"); KetNoi.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Kết nối không thành công"); } Cách 5 : try { string ConnectionString = @"Data Source=TeamCodeDao;Database=databaseTCD; User ID=sa;pwd=123456"; SqlConnection KetNoi = new SqlConnection(ConnectionString) MessageBox.Show("Kết nối thành công"); KetNoi.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Kết nối không thành công"); }
  37. 1 point
    Code c# sử dụng thư viện selenium nhoé các bạn. ChromeDriverService Cds = ChromeDriverService.CreateDefaultService(); Cds.HideCommandPromptWindow = true; IWebDriver MeoChrome = new ChromeDriver(Cds) { Url = "https://10fastfingers.com/typing-test/vietnamese?fbclid=IwAR1DUxnhv_KkICQ8kvT7EgxG-as2Z7iLSOJgGYkWLFPORJ7S_URTj67pgQs" }; string KetQua = MeoChrome.PageSource; string FullText = Regex.Match(KetQua, "(?s)<div id=\"reload-box\" style=\"display: block;\">(.*?)</div></div>").Value; FullText = Regex.Replace(FullText, "<.*?>","").Trim(); WebDriverWait wait = new WebDriverWait(MeoChrome, TimeSpan.FromSeconds(10)); wait.Until(d => d.FindElement(By.Id("inputfield"))); foreach (string item in FullText.Split(' ')) { MeoChrome.FindElement(By.Id("inputfield")).SendKeys(item); Thread.Sleep(300); MeoChrome.FindElement(By.Id("inputfield")).SendKeys(OpenQA.Selenium.Keys.Space); string SoGiay = MeoChrome.FindElement(By.Id("timer")).Text; if (SoGiay == "0:00") { break; } } Bạn nào chưa biết có thể tìm hiểu bài hướng dẫn về selenium c# ở đây. Trên đây là đoạn code mình viết ra, nếu có đoạn nào không hiểu thì các bạn post lên đây, mình sẽ giải thích nhé.
  38. 0 points
    tất nhiên là không bạn, vì method là post mà với lại cái này ổng AD tạm dừng rồi, có ghi ở bài cuối mà không thèm update lên đầu topic =.='' ...
  39. 0 points
    bạn cho mỵ cái link nào mà bạn vào được mà request không được nhé .. lý thuyết thì ko thể thế được :v
  40. 0 points





×
×
  • Create New...