--- title: Popcat 台灣 Bot 製作團隊 tags: Popcat, Taiwan, Bot description: Popcat 台灣 Bot 製作團隊 lang: zh_tw --- [TOC] # Popcat 台灣 Bot 製作團隊 已公開程式碼:https://github.com/popclick/popclick 網址:https://popcat.click 歷史狀態:https://grafana.tipsy.coffee/d/ZpkMi6Gnz/popcat-click ![](https://i.imgur.com/AlVDRhB.png) #### 8/14 UPD 進行大規模 code 改動,增加更多 Telemetry Export ![](https://i.imgur.com/ZNMcVDS.png) 讓 100 億目標更快達成 **團隊目前PPS臺灣佔比約97%** #### 8/16 UPD ~~都是我們的三角波~~ ![](https://i.imgur.com/Nj6DlIN.jpg) #### 8/18 UPD ~~已經穩定的都是 ptc0219 的形狀了~~ ![](https://i.imgur.com/AEjj3vX.jpg) ## 網頁運作原理 - 30 秒彙整一次你點的次數傳給伺服器 - 每30秒最多 800 次 - 30 秒內如果使用相同 IP 多次傳送點擊次數給伺服器,將會觸發 Rate Limiter - 會收到 HTTP 429 回應 - **同一台電腦相同 IP 開再多瀏覽器都沒用** - 可利用 ipinfo.io 確認對外 IP,只要是顯示相同的兩台電腦都會被判定為同一台 - 紅眼貓貓代表被判定為 bot,前端點擊結果將不會被後端承認,這個是後端判定的,網路上流傳的「防紅眼」全都是假的,那只是把前端的紅眼 flag 清除而已 - 官方程式碼註解寫得很清楚 - ![](https://i.imgur.com/SahW7Ue.png) ## 自動點擊腳本 1. 按下F12 2. 切到 Console 3. 將下方程式碼貼入後按下 Enter 前端版本(可以在網頁上看到自己點了多少) ```javascript setInterval(()=>{document.dispatchEvent(new Event("keydown"))},38) ``` From ![](https://i.imgur.com/5qPBNY1.png) 後端版本(較穩定、紅眼什麼的不重要,後端有201都是好請求) ```javascript setInterval(()=>{fetch('https://stats.popcat.click/pop?pop_count=800&captcha_token=TWNO1');},30000); ``` From ![](https://i.imgur.com/9AWhnoA.png) ## CF Bypass ![](https://i.imgur.com/V2xNVW2.png) 效果可以達到 40K PPS 以上 PPS Graph by SDTDDH from [https://forum.gamer.com.tw/C.php?bsn=60076&snA=6509210&to=197](https://forum.gamer.com.tw/C.php?bsn=60076&snA=6509210&to=197) 的留言 ![](https://i.imgur.com/mydpdjw.png) ![](https://i.imgur.com/IQwpskV.png) ## 電信小夥伴們的貢獻列表 Original Version with lots of browsers by seadog007 with Shell Script Performance Improve / CF Bypass by James58899 with Javascript | User | CPU Cores | IPs | PPS on Peak | Est Click (before 8/18) | Join Time +8 | | ------------- | ---------- | --------- | -------------- | ------------- | ------------ | | seadog007 | 80 | 20000 | 80K | 30,000,000,000 | 8/11 07:00 | | james58899 | 8 | 10000 | 60K | 10,000,000,000 | 8/11 22:00 | | Haraguroicha | 40 | 12300 | 60K | 10,000,000,000 | 8/12 01:30 | | ptc0219 | 40 | 17800 | 60K | 40,000,000,000 | 8/12 02:00 | | da21510 | 24 | 12300 | 60K | 10,000,000,000 | 8/12 03:00 | | licson | 80 | 20000 | 245K | n/a | 8/19 03:30 | Due to the server performance issue, the submits are only partial vaild. Total Cap: 1400K PPS Peak Performance 335.1K PPS Server Avg Process Speed: 50K PPS 8/10~11 Graph by SDTDDH ![](https://i.imgur.com/o1cf5AE.png) 8/11 Graph by SDTDDH ![](https://i.imgur.com/qnzfDSB.png) > 覺得是手點/連點器點的有沒有好好算過這個 PPS 要多少 IP 才能達成? > [name=seadog007] 關 Bot 後的 PPS,比馬來還低,約 1.2KPPS ![](https://i.imgur.com/2sDRjpL.png) ## Analysis ![](https://i.imgur.com/lWu3yib.png) **要嘛是後端沒寫好,要嘛是有控速,從 Client 來算後端有 Vaild 的 Click(201) 絕對超過 Leaderboard 的 Click** > UPD: 看起來比較像卡C10K > [name=seadog007] Project author response ![](https://i.imgur.com/TGmEnzW.png) From Twitter Log by Hans Chiu ![](https://i.imgur.com/PrmjsRz.png) ![](https://i.imgur.com/SqvW3i1.png) ![](https://i.imgur.com/05Bv6uK.png) # Popdog 網址:https://popdog.click ## 網頁運作原理 - 進入網頁後會先去 api 抓 uuid 回來,那是代表你的帳號,如果沒有存下他給的網址或 QR Code ,那你換裝置不能斷點續點 - 要你輸入名字,那是 leaderboard 有 by user 的統計功能顯示使用 - 每 30s 極限值 2000,不管超過多少也都只算你 2000 - 同一組 uuid 不同 IP 進去不會比較快,他 by uuid 在看的 - 不定時的會有 x10 狗糧出現,點了狗糧啟動 x10 click 功能 - 至少 > 5s delay 的 request 才會被計算,否則他會丟棄計算 - rate limiter - 10s 內 > 3 requests 疑似會被 nginx 的 rate limiter 給丟去晾著 - header response 有寫 limit 100 remain 99 reset after 3m 但完全沒辦法拿來參考用,因為他還是會先卡 nginx rate limiter - 戳太快到一定程度會整個 CIDR 被 ban 掉,導致 TCP 不會通 - 不存在 cloudflare bypass 問題,因為他直接 Linode 灑出來放 # Popass 網址:https://popass.click 歷史圖表:https://grafana.tipsy.coffee/d/xMYU6cn7z/popass-click ## 網頁運作原理 - 他的前端其實就是 popcat 的砍站修改版本 - popcat 的 pop limit 是 800 但他改了 1000 - 後端 api 是用 PHP 寫到爛掉的,丟 request 進去他回傳 204 但是他卻還在用 popcat 的抓 Location 的結構處理 - 存在 bypass cloudflare 問題,但是他 429 的觸發比 popcat 更謎,延時拉到了比 popcat 更長五倍的等待一樣 429 會撞到 # Poppig 網址:https://poppig.click 歷史圖表:https://grafana.tipsy.coffee/d/w4rLph77k/poppig-click ## 網頁運作原理 - 和 Popdog 很類似,他先取得 UUID 當帳號,但他沒有 by user leaderboard 所以不用取名字,然後也沒有所謂的個人斷點續點功能 - 用 UUID 去抓 token 然後後面全部都用 token 去發請求 - pop limit 是 10s + 800 pop max,請求太快他會回應 resp.json().status = 102 (429 的意思),如果拿到 token 之後小於 10s 內請求 pop 則會是 resp.json().status = 101 (503 的意思),其餘請求原則上只要他沒辦法回應就是 resp.json().status = 100 (大概是 500 的意思) - leaderboard 結構很接近 popcat 但是他後端先幫你算好了 pps 和 lastupdated 資料,所以他的 pps 比較準確一點,比較不會爆衝,但是我們用不到他的 pps 因為他算的不是很精準 - 他一樣有用 Cloudflare 所以一樣要 bypass - IP 判斷上很蠢,打一打就跑出了 `local` 這個國家?????? ![](https://i.imgur.com/wNpl0zu.jpg) - 由於流程上他多了很多前置步驟,所以打起來速度並沒有很理想,剛開始寫的 memory leak 版本大概跑五分鐘就會炸掉,但是成績很顯著的成長,後面修改好的版本就成長很緩慢,所以持續優化中 ![](https://i.imgur.com/44j6YI3.png) # 團隊成員寫的暴力 Bot Source Code (private invite only) 已公開程式碼:https://github.com/popclick/popclick - https://github.com/james58899/popcat_clicker - https://github.com/Haraguroicha/popcat-dashboard (cat, dog, ass, pig 全都通用的共用版本) - https://github.com/ptc0219/coscat - https://github.com/ptc0219/popdog