update layout and upload prebuilt app

main
lebr0nli 2021-08-13 17:04:09 +08:00
parent 6c3fab7aca
commit 9f7680a7e7
50 changed files with 723 additions and 0 deletions

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>20F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>Quizlet bypass</string>
<key>CFBundleIdentifier</key>
<string>com.alanli.Quizlet-bypass</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Quizlet bypass</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>12E507</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>11.3</string>
<key>DTSDKBuild</key>
<string>20E214</string>
<key>DTSDKName</key>
<string>macosx11.3</string>
<key>DTXcode</key>
<string>1251</string>
<key>DTXcodeBuild</key>
<string>12E507</string>
<key>LSMinimumSystemVersion</key>
<string>10.14</string>
<key>NSMainStoryboardFile</key>
<string>Main</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@ -0,0 +1 @@
APPL????

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>20F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Quizlet bypass Extension</string>
<key>CFBundleExecutable</key>
<string>Quizlet bypass Extension</string>
<key>CFBundleIdentifier</key>
<string>com.alanli.Quizlet-bypass.Extension</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Quizlet bypass Extension</string>
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>12E507</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>11.3</string>
<key>DTSDKBuild</key>
<string>20E214</string>
<key>DTSDKName</key>
<string>macosx11.3</string>
<key>DTXcode</key>
<string>1251</string>
<key>DTXcodeBuild</key>
<string>12E507</string>
<key>LSMinimumSystemVersion</key>
<string>10.14</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.Safari.web-extension</string>
<key>NSExtensionPrincipalClass</key>
<string>Quizlet_bypass_Extension.SafariWebExtensionHandler</string>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,119 @@
// Remove 'x' free solutions badge and "verify your email" badge.
setTimeout(function () {
if (document.querySelector('.BannerWrapper')) { document.querySelector('.BannerWrapper').style.display = "none"; }
if (document.querySelector('.UINotification')) { document.querySelector('.UINotification').style.display = "none"; }
}, 2000);
checkIfNewAccountNeeded();
function checkIfNewAccountNeeded()
{
setTimeout(function () {
// Three cases: Almost out of solutions, not logged in at all, or out of solutions.
// Almost out of solutions
if (pageContains("This is your last free explanation"))
{
// Don't reload, not actually out of solutions yet.
signUpNewAccount(false);
}
// Not logged in
else if (pageContains("Create a free account to see explanations"))
{
signUpNewAccount(true);
}
// Out of solutions
else if (pageContains("YOU'VE REACHED YOUR FREE LIMIT"))
{
signUpNewAccount(true);
}
// Catchall for logged out entirely.
else if (!isLoggedIn())
{
signUpNewAccount(true);
}
// Catchall for out of solutions
else if (pageContains('source=explanations_meter_exceeded'))
{
signUpNewAccount(true);
}
}, 2000)
}
function signUpNewAccount(doesReload)
{
// We're just gonna assume this is a large enough characterspace for it to never matter.
var name = "sq_bypass_" + randomString(10, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
var request = fetch("https://quizlet.com/webapi/3.2/direct-signup", {
"headers": {
"accept": "application/json",
"accept-language": "en-US,en;q=0.9",
"content-type": "application/json",
"cs-token": getToken(),
"sec-ch-ua": "\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"",
"sec-ch-ua-mobile": "?0",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"x-requested-with": "XMLHttpRequest"
},
"referrer": "https://quizlet.com/goodbye",
"referrerPolicy": "origin-when-cross-origin",
"body": "{\"TOS\":false,\"birth_day\":\"5\",\"birth_month\":\"5\",\"birth_year\":\"2000\",\"email\":\"" + name + "@example.com\",\"is_free_teacher\":\"2\",\"is_parent\":false,\"password1\":\"SladerBypassPassword\",\"redir\":\"https://quizlet.com/goodbye\",\"signupOrigin\":\"global-header-link\",\"screenName\":\"Logout/logoutMobileSplash\",\"username\":\"" + name + "\",\"marketing_opt_out\":false}",
"method": "POST",
"mode": "cors",
"credentials": "include"
}).then(function()
{
if (doesReload)
{
location.reload();
}
});
return true;
};
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
return result;
};
function getToken(){
token = document.cookie.match("(?:^|;)\\s*" + "qtkn".replace(/[\-\[\]{}()*+?.,\\^$|#\s]/g, "$&") + "=([^;]*)");
return decodeURIComponent(token[1]);
};
function pageContains(str)
{
if (document.body.innerHTML.match(str))
{
return true;
}
else
{
return false;
}
}
function isLoggedIn()
{
// Looks for `{"LOGGED_IN":false,` in the header.
var li = document.head.innerHTML.match(/"LOGGED_IN":(\w+)/)[1];
if (li === "false")
{
return false;
}
else if (li === "true")
{
return true;
}
else
{
return true; // Return true on possible error to prevent explosion of accounts. Effectively assumes logged in on error.
}
}

View File

@ -0,0 +1,18 @@
{
"name": "Quizlet bypass",
"version": "0.10",
"author": "Alan Li & Ethan Harvey",
"description": "Quizlet limit bypass",
"content_scripts": [
{
"matches": [
"*://quizlet.com/explanations/questions/*",
"*://quizlet.com/explanations/textbook-solutions/*/*"
],
"js": [
"js/quizlet_bypass.js"
]
}
],
"manifest_version": 2
}

View File

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/js/quizlet_bypass.js</key>
<data>
WEMRqUIeWbHCPfjLnlcuCWzyPCA=
</data>
<key>Resources/manifest.json</key>
<data>
p+ikRk484wRNov3RHHUbT5aufJg=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/js/quizlet_bypass.js</key>
<dict>
<key>hash2</key>
<data>
vO5sVxrl7vQhy3K4ZhE+5Cq8ykdM7BxJiTY/pHhApHY=
</data>
</dict>
<key>Resources/manifest.json</key>
<dict>
<key>hash2</key>
<data>
K8bCkU50iV26zIf0xfOBH6BAzUazhgbzf7YEoeI+/tA=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,341 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
<data>
My90BeyDksmpXx2TSd3jjMot9oU=
</data>
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
<data>
OdjuUGE8LuFNvy4U9MtJQJD4btM=
</data>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
<data>
aDt4F90njgz87NO+6phECZIvKnk=
</data>
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
<data>
fdTDzXJrAYck+9VN0odBwo3bmZM=
</data>
</dict>
<key>files2</key>
<dict>
<key>Frameworks/libswiftAppKit.dylib</key>
<dict>
<key>cdhash</key>
<data>
/OmwGRbORcnNjnoLmSHJ5YPdYTA=
</data>
<key>requirement</key>
<string>cdhash H"93e4a579dc797d359af753c1d9875e1e368a7be4" or cdhash H"fce9b01916ce45c9cd8e7a0b9921c9e583dd6130"</string>
</dict>
<key>Frameworks/libswiftCloudKit.dylib</key>
<dict>
<key>cdhash</key>
<data>
cGMS9W0rJYpdS8WXuA421Jk2maI=
</data>
<key>requirement</key>
<string>cdhash H"a2dc3fd1fe2b3843229d2363867f05b0875ca3d8" or cdhash H"706312f56d2b258a5d4bc597b80e36d4993699a2"</string>
</dict>
<key>Frameworks/libswiftContacts.dylib</key>
<dict>
<key>cdhash</key>
<data>
Rh0jk2VJ+5Biz17YKqRNm888q5w=
</data>
<key>requirement</key>
<string>cdhash H"bf8c68eb41ce78313f7734ae842c07aa3c428faf" or cdhash H"461d23936549fb9062cf5ed82aa44d9bcf3cab9c"</string>
</dict>
<key>Frameworks/libswiftCore.dylib</key>
<dict>
<key>cdhash</key>
<data>
dqeKQzezqkqNieRSKURxOkYAlfs=
</data>
<key>requirement</key>
<string>cdhash H"d8f6c9a79d9268ed6bf4a2cfdf1e18f65bbe3936" or cdhash H"76a78a4337b3aa4a8d89e4522944713a460095fb"</string>
</dict>
<key>Frameworks/libswiftCoreData.dylib</key>
<dict>
<key>cdhash</key>
<data>
3WuVQR+oLXgvxCCkTazRNrUc6BY=
</data>
<key>requirement</key>
<string>cdhash H"cb7d87eec1e91502bc330135c3cf2af37c557989" or cdhash H"dd6b95411fa82d782fc420a44dacd136b51ce816"</string>
</dict>
<key>Frameworks/libswiftCoreFoundation.dylib</key>
<dict>
<key>cdhash</key>
<data>
9FhzxU6Cj8t+azK/JCsBHkbHPsQ=
</data>
<key>requirement</key>
<string>cdhash H"4a62b40f83e91a952f0821fd2e62d33d7d63784c" or cdhash H"f45873c54e828fcb7e6b32bf242b011e46c73ec4"</string>
</dict>
<key>Frameworks/libswiftCoreGraphics.dylib</key>
<dict>
<key>cdhash</key>
<data>
aNuElvmFWZFgDIeVFXBqVcgBBXk=
</data>
<key>requirement</key>
<string>cdhash H"1317210089af658ce9dc08ac4da39ffb997028ae" or cdhash H"68db8496f9855991600c879515706a55c8010579"</string>
</dict>
<key>Frameworks/libswiftCoreImage.dylib</key>
<dict>
<key>cdhash</key>
<data>
rdQ3znZuQZojLVpS7s74inCwTf4=
</data>
<key>requirement</key>
<string>cdhash H"2ccd604ba6b9b6b5bb44800fe65a6725156de9ca" or cdhash H"add437ce766e419a232d5a52eecef88a70b04dfe"</string>
</dict>
<key>Frameworks/libswiftCoreLocation.dylib</key>
<dict>
<key>cdhash</key>
<data>
eau/a2fXhgOzH/OX9TN/kd+vRh0=
</data>
<key>requirement</key>
<string>cdhash H"bb4cb99b7772be8c5fa7561728df32b22154a05f" or cdhash H"79abbf6b67d78603b31ff397f5337f91dfaf461d"</string>
</dict>
<key>Frameworks/libswiftDarwin.dylib</key>
<dict>
<key>cdhash</key>
<data>
J8aEbcH96rf3olM1v8wJQms7xaI=
</data>
<key>requirement</key>
<string>cdhash H"300b03492cc2be4543d5f2be1e06909f387af72d" or cdhash H"27c6846dc1fdeab7f7a25335bfcc09426b3bc5a2"</string>
</dict>
<key>Frameworks/libswiftDispatch.dylib</key>
<dict>
<key>cdhash</key>
<data>
H1Vdy5eFVLXgr7PXAMrPSmBOwqU=
</data>
<key>requirement</key>
<string>cdhash H"83423a4dbcbcb15a8b57dcb655ea0718258599f6" or cdhash H"1f555dcb978554b5e0afb3d700cacf4a604ec2a5"</string>
</dict>
<key>Frameworks/libswiftFoundation.dylib</key>
<dict>
<key>cdhash</key>
<data>
vXwKUYrafAE4gkcluwQSaiYHnKc=
</data>
<key>requirement</key>
<string>cdhash H"fe12fe0baad9538e21462200076f1510b4d7140b" or cdhash H"bd7c0a518ada7c0138824725bb04126a26079ca7"</string>
</dict>
<key>Frameworks/libswiftIOKit.dylib</key>
<dict>
<key>cdhash</key>
<data>
qcMlAtJuSYqhv7GlkBdTNkAY3/8=
</data>
<key>requirement</key>
<string>cdhash H"c1e542c0c8c50d88d2d8d61464c982746b0d9b51" or cdhash H"a9c32502d26e498aa1bfb1a5901753364018dfff"</string>
</dict>
<key>Frameworks/libswiftMetal.dylib</key>
<dict>
<key>cdhash</key>
<data>
5nmAcP26pCsQ1jicIjvDevc6WQ8=
</data>
<key>requirement</key>
<string>cdhash H"6769e26c565b6df559c79f30db5b252af146bff6" or cdhash H"e6798070fdbaa42b10d6389c223bc37af73a590f"</string>
</dict>
<key>Frameworks/libswiftObjectiveC.dylib</key>
<dict>
<key>cdhash</key>
<data>
R4P87y0EKzf54v8gVXvomYSANRs=
</data>
<key>requirement</key>
<string>cdhash H"cfc8bff5f33ca8e6cc55b76c42a45acbadc9a6f8" or cdhash H"4783fcef2d042b37f9e2ff20557be8998480351b"</string>
</dict>
<key>Frameworks/libswiftQuartzCore.dylib</key>
<dict>
<key>cdhash</key>
<data>
bknY2ZZYsDmx9EFjrB7uvTb2X8o=
</data>
<key>requirement</key>
<string>cdhash H"bd28786e3525484958edfb89610808086852dbbe" or cdhash H"6e49d8d99658b039b1f44163ac1eeebd36f65fca"</string>
</dict>
<key>Frameworks/libswiftSafariServices.dylib</key>
<dict>
<key>cdhash</key>
<data>
YRua+zVGY/+QcdYRIP8QegmLWYM=
</data>
<key>requirement</key>
<string>cdhash H"b7939634be68aa8d856e76b506889e42e7f412b8" or cdhash H"611b9afb354663ff9071d61120ff107a098b5983"</string>
</dict>
<key>Frameworks/libswiftXPC.dylib</key>
<dict>
<key>cdhash</key>
<data>
HDW7fmnNnx/9boh/yF53ZFWe8sw=
</data>
<key>requirement</key>
<string>cdhash H"5adfbeea44347dbcdfebca089f791cfd9680133c" or cdhash H"1c35bb7e69cd9f1ffd6e887fc85e7764559ef2cc"</string>
</dict>
<key>Frameworks/libswiftos.dylib</key>
<dict>
<key>cdhash</key>
<data>
Twy7QT5U0caIVWxYQhNywz5oSo4=
</data>
<key>requirement</key>
<string>cdhash H"bf8a15081175ba4289f2a4455dcf9d85f4d2a4d9" or cdhash H"4f0cbb413e54d1c688556c58421372c33e684a8e"</string>
</dict>
<key>PlugIns/Quizlet bypass Extension.appex</key>
<dict>
<key>cdhash</key>
<data>
V7F5tBf9WGcurrHRBcnNraz96ro=
</data>
<key>requirement</key>
<string>cdhash H"57b179b417fd58672eaeb1d105c9cdadacfdeaba" or cdhash H"1637e666448ad795da77b728b07fd231859ecac5"</string>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
<dict>
<key>hash2</key>
<data>
xJgzLyp94oTo2NAKb+ODFIiZ6oj4Ql0eBEUuuQuW+ak=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
<dict>
<key>hash2</key>
<data>
9JcvxVA01jLRKlIwrGxrr0vGfWPAx9abxEfBjahlvGo=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
<dict>
<key>hash2</key>
<data>
XlSQsZv68cDIW6YB3J82QByi+sFrRWSaBs+Bj1LEPHI=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
<dict>
<key>hash2</key>
<data>
wsN4QgNm56fS53a1Osa8pILtsdCUQX4f2+zFPn2kP1M=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>