入口網站 跳過驗證碼 腳本
========== 2024-12-25 更新 ==========
在期末考週的前兩週終於有動力來寫出來之前想弄的 AI 辨識啦(雖然應該沒人會回來看這個小破文章了)

二話不說先貼連結
其實早在再上個學期早就做出來了這個模型
但基於麻煩所以就沒有動力馬上實作出來了
這個源代碼是我半手刻出來的 MLP(多層感知器)
並且使用在 Python 用 numpy 訓練出來的模型參數轉移到 JavaScript 上面的(所以會在程式碼上面看到一大坨 JSON,那個是參數)
就連一些 Activate Function 也都刻在上面了
所以......我猜在網路上應該沒有人的模型插件比我的還快了啦,畢竟都是用算式刻出來的了
小弟我只是個五專小白,還不太熟 AI 運算等,假設有幸有大佬再次回來看這篇廢文還請多多賜教。

都忘了說說這個模型為何小又準了
來源於這個模型的圖片前處理
在 run 的函式下面你可以看到......好 這個程式碼真的很醜,就不拿程式碼講了。
在前處理中我統計了所有顏色出現過的 x, y 值並統計,根據各個條件過濾掉背景顏色和點點顏色,只留下文字的顏色。
具體條件如下
若此顏色出現 > 40 個 x 或 y 值,則視為背景色
若此顏色出現在 x < 2 並同時出現在 x > width - 3,則視為背景色(橫線條)
若此顏色出現在 y < 2 並同時出現在 y > height - 3,則視為背景色(直線條)
若此顏色的灰階值大於某值,則視為背景色(太亮)
若此顏色出現 < 5 個 x 或 y 值,則視為點點(極少數會把 I 誤判)
以上
根據這些條件的剩餘顏色,理論上就會剩四個了,也就是我們的四個文字顏色啦~
接下來只要創建四個空白畫布(二維矩陣)
並將有顏色的地方個別話到四個畫布中(有顏色變白,無顏色則黑)
剩下的話就是對四個畫布 padding 到同樣的大小
,我是使用40x40,就可以丟進模型裡面訓練了!
根據模型訓練,單個字母只要有擷取成功的,就有 99.8% 的準確率。(若捕捉到 >4 或 <4 個顏色就重抓圖片)
就不附我寫的醜醜的 Python 程式碼了
只要會運用這套規則過濾顏色就肯定能夠做到!
剩下就是 MLP 模型的事了 好欸
(我用的是單層 MLP,16 個神經元,ELU, ReLU, sigmoid,我知道兩層用不同的 Activate Function 沒什麼意義,但就是想用ùwú)

===================================
原文:
注意:此腳本未經過大量測試,且腳本為僅我一人撰寫,無法保證其穩定性及安全性。
不建議不熟悉網頁腳本操作者使用
腳本下載連結:
最近在入口網站上面隨便翻翻偶然發現了校網入口神奇的網頁回應模式,就隨手做了這個腳本做使用。
這個腳本登入部分使用的是入口網站的 API,因此在登入後網頁可能會閃出一個 JSON 文字並被腳本立即移除。此登入方式已被 北科官方APP 及 TAT 所使用,因此此登入方式較為穩定。
在呈現網頁上使用腳本直接把網頁覆蓋成一般登入後的 HTML 碼,因為發現碰到 dojo 框架,需要在 DOMContentLoaded 之前觸發到 dojo.back.init()
因此在腳本中會看見腳本使用 iframe 的方式來把 HTML 插入到網頁中使整個 HTML 被瀏覽器重新讀取成一個新網頁。
在一些方塊上 `公告` 或是 `我的行程` 上面,點下去後的網頁回應也會是 API 的 JSON,故腳本使用暴力解法直接複製原本的 HTML 框架,在腳本中換成接好的 JSON 資料並呈現網頁中。(我很怕這方式會導致 XSS 等資安疑慮,不過目前想不到任何方式可以針對此點進行注入)
以下是腳本對入口網站影響優缺
優:
- 在 入口網站登入頁面(index.do) 會偵測是否已登入,如果已登入會自動跳轉到 入口網站首頁(myPortal.do)
- 在登入的動作上會偵測登入的結果並實時顯示在網頁上面(密碼錯誤、密碼過期、帳戶鎖定、手機過期等),避免網頁被跳轉導致需要重新輸入帳號、密碼
- 30 分鐘閒置規則取消,使用者不會因為在網頁中閒置而被強制登出
- 大多功能都可以正常運作,包括跳轉到其他校網子系統(課程系統、i學員等)
缺:
- 在某些情況(密碼過期、手機過期等)會需要停用腳本登入才可進行修改。
- 不支援入口網站中所有功能,包括 待辦事項、雲端文件夾等,及個人設定中的照片檢視,以及尚未測試個人設定中 密碼設定 或 儲存個人資料 等功能。
以上
歡迎各路大佬對原始碼指點,也歡迎與我討論此腳本相關問題,會非常樂意回答!

