工具用的順手嗎?
你的回饋能幫助我們做得更好
線上工具,用於JavaScript程式碼與AAEncode混淆格式之間的雙向轉換,方便程式碼混淆與分析。
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
AAEncode 是 JavaScript 的混淆格式:它利用顏文字風格的識別字、運算與字串取值,組成一段外觀冗長的 JavaScript 表達式。這裡的「編碼」是格式轉換,不是密碼學加密;輸出沒有金鑰,也不能用來保護密碼、權杖或商業機密。結果仍是 JavaScript 程式碼,外觀難讀不代表無法還原或安全。
本工具提供編碼與解碼兩種方向。編碼把輸入文字逐個字元轉成 AAEncode 表達式;解碼則嘗試還原相容格式中的原始內容。格式常見的辨識線索,是內容中出現 ゚ω゚ノ、゚Θ゚、o^_^o 等符號組合,而不是只由 !、+、[、]、(、) 六個符號組成;後者是另一種常被混淆的格式。
操作上的關鍵差異:編碼是把字串轉成輸出;目前的解碼流程會動態執行輸入中的 JavaScript。只解碼自己產生、來源可信且已確認內容的 AAEncode,不要貼上陌生程式碼當成靜態檢視。
轉換依序讀取字串的 UTF-16 碼元。ASCII 範圍內的碼元以八進位數字表示,再換成對應的顏文字表達式;較大的碼元則寫成四位十六進位形式,再以同一組表達式組合。最後,這些片段被拼進 AAEncode 的程式骨架中。
這個處理單位會影響字數觀察:多數常用中文字各占一個 UTF-16 碼元;部分 emoji 由一對代理碼元構成,轉換時會逐一處理。輸出可能比原文長很多,這是格式表達方式造成的,不代表增加了加密強度。JavaScript 的 charCodeAt() 以 UTF-16 碼元索引字串;可參考 MDN 的 charCodeAt 說明。
若手上是要改變外觀的文字或自有 JavaScript 片段,選「編碼」;若是自己建立、來源可信的 AAEncode 內容,才選「解碼」。AAEncode 的顏文字風格是辨認線索,但外觀相似不保證樣本符合此工具可處理的結構。原始 AAEncode 參考頁也以日式顏文字風格說明此格式:aaencode 原始參考頁。
| 要做的事 | 輸入內容 | 預期結果 |
|---|---|---|
| 編碼 | 短文字或 JavaScript 片段 | 包含顏文字式表達的 AAEncode 字串 |
| 解碼 | 完整且相容的 AAEncode 內容 | 嘗試還原成原始字串 |
編碼器處理字串,不會替你檢查輸入是否為有效 JavaScript。普通文字也能產生字串輸出,但若把結果當程式執行,原始文字不一定是合法語句。
指南
依步驟完成操作,並透過範例核對輸入與結果。
在工具上方切換方向。編碼適用於自有輸入;解碼僅用於自己建立或已確認可信的內容。
編碼可先試 alert(1) 或一段短文字。解碼時貼上完整 AAEncode 內容,避免只複製中段,並留意輸入中顏文字、括號與引號是否被訊息軟體改寫。
輸入或切換方向後,結果會自動更新;不需要另外按下送出。空白輸入會清空輸出。輸出區是唯讀欄位,可用複製按鈕取用結果。
先把自己的短輸入編碼,再將完整輸出切換至解碼模式檢查是否回到原字串。這只能核對往返結果,不能證明程式安全,也不能驗證陌生內容的行為。
情境
查看這項工具在不同工作與生活流程中的用法。
學習 JavaScript 的開發者可用短小、無敏感資料的程式片段產生顏文字式輸出,再觀察程式外觀如何改變。它適合示範格式,不應被當成保護原始碼的安全措施。
在測試文件或教學範例中,先編碼自有字串,再用解碼檢查是否還原。保留原文並逐字比對,尤其要留意換行、標點與 emoji 等字元。
若樣本由自己產生或已經過來源確認,可嘗試解碼以便閱讀。若目的是調查未知或可疑程式,請改用不執行載荷的靜態分析方式,避免將它貼入此解碼流程。
問答
集中解答常見疑問與容易混淆的問題。
不算。它是讓程式碼外觀較難閱讀的混淆表示法,沒有密鑰,也不提供保密或完整性保證。敏感資訊不應放進輸出。
可能是輸入被截斷、符號或括號遭替換、樣本採用不相容變體,或執行環境的安全政策阻止動態編譯。先確認內容完整且確實是 AAEncode;不要為了讓陌生內容通過而放寬瀏覽器安全設定。
目前編碼逐一處理 UTF-16 碼元,因此補充平面的 emoji 會拆成代理碼元分別轉換。對完整且相容的自產樣本做往返比對,確認實際字串是否保留;介面字元計數也可能與使用者直覺中的「一個 emoji」不同。
須知
使用前了解適用範圍、結果限制與必要提醒。
不要用此解碼器檢查不明來源的 AAEncode。解碼會將輸入轉成動態函式並呼叫;惡意或遭竄改的程式可能在解碼過程執行。只處理自己撰寫或已由可信來源確認的內容。若需要分析可疑樣本,使用不執行程式碼的靜態解碼流程及隔離環境。
MDN 說明 Function 建構子會動態解析並執行傳入的 JavaScript 字串,可能形成程式碼注入風險;這項行為也說明為何本工具的解碼用途必須限於可信輸入。參考:MDN 的 Function 建構子安全說明。
推薦
查找相關工具、專題與可用的 API 能力。