Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save aliyaliu368/891eef75e09494e965d291ead4a80d17 to your computer and use it in GitHub Desktop.
Save aliyaliu368/891eef75e09494e965d291ead4a80d17 to your computer and use it in GitHub Desktop.
教學用電子書免登入破解教學 | 本腳本用於繞過台灣主要課本/習作出版社電子書的前端身份驗證,達成不需要教師帳號即可使用電子書。支援 翰林、南一、康軒 三大出版社 | 請勿將本腳本作為抄答案、侵權等惡意用途,使用本腳本者,請自行承擔所有後果與風險

Visits_Count

教學用電子書免登入破解教學

使用前請務必閱讀 免責聲明

免責聲明

請勿將本腳本作為抄答案、侵權等惡意用途,使用本腳本者,請自行承擔所有後果與風險。

簡介

此腳本用於繞過台灣主要課本/習作出版社電子書的前端身份驗證,達成不需要教師帳號即可使用電子書。

開發緣由

原本是因為開發者忘記帶課本,但又想要查閱課本的資料,心血來潮研究看看電子書的驗證設計。
開發這個不是希望拿去抄答案,是希望讓真正需要用的人可以用到,也希望各家出版社能提供一種學生與家長的版本,就是只能瀏覽但不能顯示解答或者專為學習者設計,就可以完美解決這些問題。

如何使用

這邊示範翰林版如何使用,其他出版社以此類推 首先先前往要使用的電子書網站 (下方有連結),接著在瀏覽器的開發者頁面 (F12) 中的主控台 (Console) 輸入以下腳本,最後重新載入網頁即可迴避登入。

這邊是以 Google Chrome 的環境作為示範,Firefox/Edge/Safari 大同小異。

image

腳本

✅ 康軒

連結:康軒網頁媒體盒

localStorage.setItem("loginAccount", "mockAccount"); // 設定一個假的帳號
localStorage.setItem("uuid", "mockUUID"); // 設定假的 UUID

最後測試時間:2022/10/18

✅ 南一

連結:OneBook 南一電子書

let mockToken = JSON.stringify({
    "code": "SUCCESS",
    "jwt": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbXlhY2NvdW50Lm5hbmkuY29vbC8iLCJzdWIiOiJ1c2Vycy9qYWNreWNoaXUwMSIsImZyb20iOiJOYW5pIiwidXNlcm5hbWUiOiJqYWNreWNoaXUwMSIsImVtYWlsdmFsaWQiOnRydWUsIm1vYmlsZXZhbGlkIjpmYWxzZSwiZW1haWwiOiJraW5tYTE1OTg3NTMyQGdtYWlsLmNvbSIsInVpZCI6ImI1ZjE3MGYwLTI5ZmMtMTFlZC04NDJjLTQ5OTAxMGVhODI0MCIsImp0aSI6IjliOGI5OTE1LWYyMGQtNGNlMS04ZmJjLTA0OWFhYjkzZTY4ZiIsImlhdCI6MTY2NzIzMTA2NiwiZXhwIjoxNjcyNDE1MDY2fQ.R9cjUUSocKL9CiPTa2Tf8zPNiZLSJLRqH9eQAniMsJw"});

let fieldName = "nani_oneclass_login_token";
var d = new Date();
d.setTime(d.getTime() + (1 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
var hostname = window.location.hostname;
if (hostname.indexOf("oneclass.com.tw") > 0) {
  document.cookie = fieldName + "=" + mockToken + ";" + expires + ";path=/;domain=oneclass.com.tw";
} else {
  document.cookie = fieldName + "=" + mockToken + ";" + expires + ";path=/";
}
    
localStorage.setItem("nani_tokenInfo", mockToken); // 設定身分驗證用的 toekn

最後測試時間:2022/11/13
token 由 @jackychiu0207 提供

❌ 翰林

連結:翰林行動大師電子書

let time = new Date().getTime().toString();
localStorage.setItem("last_signinX_v2023", time); // 將帳號登入日期設定為現在,避免被判定為過期
localStorage.setItem("roleX_v2023", "老師"); // 設定身份為老師
localStorage.setItem("emailX_v2023", "test@test.com"); // 由於翰林電子書會驗證是否有設定 email,如果有設定才能使用
localStorage.setItem("tokenX_v2023", "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg1NzgwNWYxZGQ3ZmE5YTZiNTI3ZjQ0ZWNmZmJkNDhjIiwidHlwIjoiSldUIn0.eyJuYmYiOjE2NjYyNTk4NzEsImV4cCI6MTY2ODkzODI3MSwiaXNzIjoiaHR0cHM6Ly9pZC5obGUuY29tLnR3IiwiYXVkIjpbImh0dHBzOi8vaWQuaGxlLmNvbS50dy9yZXNvdXJjZXMiLCJhcGkxIiwiSWRlbnRpdHlTZXJ2ZXJBcGkiLCJoYW5saW4tYXBpIl0sImNsaWVudF9pZCI6ImpzIiwic3ViIjoiZGJiYmEwNmEtNWNkNy00NTI5LWI2MjEtOTBlYjdhMGIxOWZlIiwiYXV0aF90aW1lIjoxNjY2MjU5ODcwLCJpZHAiOiJsb2NhbCIsIkFzcE5ldC5JZGVudGl0eS5TZWN1cml0eVN0YW1wIjoiNURHN1ZSWVVWRUdUSjJVQ1czU0FDRkpBT1NHM0RONEIiLCJyb2xlIjpbIuiAgeW4qyIsIuiAgeW4qyJdLCJlbWFpbCI6WyJraW5tYTE1OTg3NTMyQGdtYWlsLmNvbSIsImtpbm1hMTU5ODc1MzJAZ21haWwuY29tIl0sImZhbWlseV9uYW1lIjoi576FIiwiZ2l2ZW5fbmFtZSI6IuWFg-iyniIsIm5hbWUiOiLnvoXlhYPosp4iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoi576F5YWD6LKeIiwidXNlcl9kb21haW4iOiJlZHUiLCJzY29wZSI6WyJvcGVuaWQiLCJwcm9maWxlIiwiYXBpMSIsIklkZW50aXR5U2VydmVyQXBpIiwiaGFubGluLWFwaSIsIm9mZmxpbmVfYWNjZXNzIl0sImFtciI6WyJwd2QiXX0.So0Fcvd-a_BlnQcgcmO7vXTxlCJ_AnIEPPwpoHHpqc2cP3fBCGrY496R1q4J9j2E9sYUahxeYu7M3RMhPS_79JiEq8EWcSUvNxJASwAgvmek_HxWS2sgPZbvFkCJ1zYXfqHpbUaRfeqNPZyB3Yno94OYU4nl5f0gRzwUf2kGiyM2XhTO5EQZUCXGDJfqNmBlnwL45MwlQ_l_sRSYFNllda37nTECse91Qe1DeYKCm1Z9s8MerCCnmJgpjNsKOPodvbz8ynUT7qbU2IDldb8z8h0mtI9DbW8tuG63c-Nqyr2ZHPXT5aIaWtYUUBgFrVakVW-nI0kv5cEYj8grUyuZFg") // 設定身分驗證用的 token

最後測試時間:2022/11/12
token 由 @jackychiu0207 提供

限制

  • 因為此腳本僅繞過前端的身份驗證,因此可能會導致無法使用儲存班級紀錄、測驗等功能。
  • 翰林版電子書每天會自動重置資料,因此需重新執行腳本。
  • 南一版電子書因設計較為嚴謹,可能在未來此破解方法將無法使用,需尋找更好的解決方案。

The script was made by SiongSng | 此腳本由 菘菘 製作
版權所有 © 2022 菘菘。 保留所有權利。
Copyright © 2022 SiongSng. All rights reserved.

@Ethan11360
Copy link

@nikeeden
Copy link

nikeeden commented Nov 7, 2024

你好 登入失敗 可以告訴我康軒的帳號密碼?謝謝 nikeeden@gmail.com

@nikeeden
Copy link

nikeeden commented Nov 7, 2024

請問有康軒的帳密嗎? nikeeden@gmail.com 非常感謝!

@herry0728
Copy link

康軒是不是都不提供自修的部分?

@dhsgwrrt
Copy link

康軒業務電話0919-993655

@dhsgwrrt
Copy link

康軒業務電話0919-993655

@dhsgwrrt
Copy link

康軒業務電話0919-993655

@Ethan-lo258
Copy link

已更新 2.3 版本,修復了之前的問題,精簡了部分無用功能。 安裝方法:

  1. 安裝 Tampermonkey(篡改猴)插件
  2. 添加用戶脚本
  3. 把下面的代碼複製進去
// ==UserScript==
// @name         KNSHUtility Lite
// @namespace    http://vochant.github.io/
// @version      2.3
// @description  KNSH Utility - Cracks & Features
// @author       Mirekintoc (vochant)
// @match        https://digitalmaster.knsh.com.tw/v3/pages/*/index.html*
// @match        https://digitalmaster.knsh.com.tw/ebooks/BookMain/Viewer_A/index.html*
// @icon         https://webetextbook.knsh.com.tw/Ebookvieweran4Teacher/favicon.ico
// @license      MIT
// @grant        unsafeWindow
// ==/UserScript==

(function() {
    // 'use strict';
    console.log(unsafeWindow);
    // 页面类型判定
    if (location.href.match(/https:\/\/digitalmaster\.knsh\.com\.tw\/v3\/pages\/.*\/index\.html.*/)) {
        console.log("运行模式: 导览页");
        // 导览页面 - 绕过登录验证
        unsafeWindow.__fetch = unsafeWindow.fetch;
        unsafeWindow.fetch = async function(url, opts) {
            if (/verifykeygrip/i.test(url)) {
                return {
                    json: function() {
                        return {isValid: true};
                    }
                };
            }
            else {
                let r = (await unsafeWindow.__fetch(url, opts)).json();
                if (JSON.stringify(r).includes("errorType")) {
                    return {
                        json: function() {
                            return {isValid: true};
                        }
                    };
                }
                return { json: function() {return r;} };
            }
        }
    }
    else if (location.href.match(/https:\/\/digitalmaster\.knsh\.com\.tw\/ebooks\/BookMain\/Viewer_A\/index\.html.*/)) {
        console.log("运行模式: 国小电子书");
        // 国小电子书页面 - 绕过登录验证
        unsafeWindow.SaveCommForKnshAPIOriginal = unsafeWindow.SaveCommForKnshAPI; // 备份原构造函数
        unsafeWindow.SaveCommForKnshAPI = function() {
            let obj = new SaveCommForKnshAPIOriginal;
            obj.VerifyHasLogin = function(arg) {
                var t = senjClass.GetQueryString("shortcode");
                var n = function(t) {
                    arg && arg.fun && arg.fun(t)
                };
                n({result: true});
                return true;
            }; // 重写
            console.log(obj);
            return obj;
        }; // 重写构造函数
    }
    else {
        console.log('运行模式未知');
    }
})();

1732028504161
不好意思
@vochant 大大
您撰寫的腳本好像失效了 麻煩請您查看一下這張照片
確認是不是失效了 感恩

@suencery
Copy link

@Ethan-lo258 你的貼圖最上面就寫著要你點它去看怎麼設定開發人員模式啊

@yiiiiii-web
Copy link

@vochant大大
請問我如果成功進去了可以選英文以外的課本嗎?
教小孩需要 非常感謝您耐心看完!

@vochant
Copy link

vochant commented Nov 21, 2024

@vochant大大 請問我如果成功進去了可以選英文以外的課本嗎? 教小孩需要 非常感謝您耐心看完!

可以的,理論上沒有限制

@Lucy1209347
Copy link

我有康軒南一的帳號和密碼 有需要電子書可以跟我說

麻煩我要康軒帳號,謝謝
lucy730807@gmail.com

@Lucy1209347
Copy link

https://github.com/evonisme/EvGo

麻煩我要康軒帳號,謝謝
lucy730807@gmail.com

@jane880206
Copy link

我需要康軒帳密,謝謝
jane880206@gmail.com

@MoElJe
Copy link

MoElJe commented Nov 22, 2024

我需要康軒帳密,謝謝
ubif520@gmail.com
拜託大家🙇

@Vivi1226
Copy link

感謝@ghost(抱歉我不太會tag),有操作您提供的方式,在最後一個步驟無法建立電子書於桌面,還請幫解惑,謝謝 擷取 電腦是win10

@Vivi1226

/* 
   找不到資料夾的 exception 可能是資料夾搬走了,系統變數找不到,不然就是防毒軟體擋住了。 
   資料夾搬走可能是放到其他資料碟,常常做系統還原的人可以靠這個保持順暢又能讓資料不會變不見。
   防毒軟體擋住可能有鎖定跟帳號有關的資料夾,可試試把路徑改到像是 D:\tmp 再用檔案總管搬回去桌面。
   下面的做法是試著找出搬走之後桌面的新路徑,再去建立捷徑。
*/

$WshShell = New-Object -COMObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$([System.Environment]::GetFolderPath('Desktop'))\康軒英文電子書WW7.lnk")
$Shortcut.TargetPath = "$env:ProgramFiles (x86)\Microsoft\Edge\Application\msedge.exe"
$Shortcut.Arguments = "--app=https://digitalmaster.knsh.com.tw/ebooks/BookMain/Viewer_A/index.html?CUR_BOOK_URL=https://digitalmaster.knsh.com.tw/ebooks/%E5%9C%8B%E5%B0%8F/Books/113%E4%B8%8A/15_%E8%8B%B1%E8%AA%9E_WW/04_%E7%AC%AC7%E5%86%8A/01_%E7%B6%B2%E9%A0%81%E9%9B%BB%E5%AD%90%E6%9B%B8/K1131WW_7/Resource/SystemResource/knsh_book/&openby=knsh"
$Shortcut.Save()

您好,有成功建立在桌面上,但很可惜無法登入,請問有沒有其他方式可以登入電子書呢?感恩

Uploading 新索引標籤 - 個人 - Microsoft​ Edge 2024-11-22 21-45-16.mp4…

@Vivi1226
Copy link

康軒業務電話0919-993655

請教一下這要如何登入康軒?是要新建帳號的方式嗎?謝謝呢
weipuding@gmail.com

@MoElJe
Copy link

MoElJe commented Nov 23, 2024

請問有康軒帳密嗎
ubif520@gmail.com
謝謝🙇

@dhsgwrrt
Copy link

dhsgwrrt commented Nov 23, 2024

請問有康軒帳密嗎?
sam5530@yahoo.com.tw
謝謝😀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment