Is BlackTom AI – Double-Click Homework Helper safe?
We analyzed BlackTom AI – Double-Click Homework Helper version 8.1.3's actual code and gave it a 18/100 trust score. This extension has broad webpage…
Bottom line
This extension has broad webpage access and sends cookies and full page content to its services, creating a high-risk privacy profile.
What it can access
It runs across nearly all webpages and can read quiz content, page text, cookies, and full page HTML.[Q1][Q3][Q6]
Security weaknesses
Broad page reach, automatic cross-site data collection, and remotely chosen service addresses create serious misuse opportunities.[Q1][Q7][Q8]
Signs of misuse
It automatically sends readable site cookies, page HTML, URLs, and quiz data to vendor services, including without a question click.[Q6][Q8][Q14]
Code findings
What access does this extension ask for, and does that access make sense for what it claims to do?
It has all-site host access and injects a page access into every frame on nearly every HTTP or HTTPS page.
Declares <all_urls> host permission and an all-frames content script, excluding only listed CAPTCHA providers. — manifest.json:3
Which websites can it run on, and can it read or change what appears on those pages?
It reads page text, page structure, question content, answer choices, URLs, titles, and visible control metadata.
Builds a bounded DOM snapshot containing visible text, labels, input metadata, page URL, title, language, and clicked element context. — src/content_script.js:1384
Platform-specific extractors read questions and choices from supported learning systems. — src/content_script.js:1417,1572
Can it see sensitive information you type, such as passwords, payment details, messages, or form entries?
It reads quiz questions and answer controls, and it can also upload a supported page's complete HTML to the vendor.
Extracts question text, answer options, question types, and relevant page images. — src/content_script.js:1417,1572
Serializes document.documentElement.outerHTML and uploads it as page_source.html for enabled paid users on supported pages. — src/content_script.js:1547
Can it access private browser data such as cookies, signed-in sessions, browsing history, bookmarks, or downloads?
It stores extensive settings and the user's BlackTom account record and password in extension-local storage.
After successful BlackTom login, saves loggedIn, user, and userPassword locally. — src/popup.js:34
Reads the saved password every two hours to refresh the BlackTom account session. — src/background.js:14
Can it access anything else on your device, such as files, location, camera, microphone, clipboard, or installed applications?
It can capture the visible tab and write generated text to the clipboard as user-facing features.
Declares activeTab and clipboardWrite permissions. — manifest.json:3
The capture_tab action calls tabs.captureVisibleTab and returns a PNG data URL. — src/background.js:14
Copies generated text with a temporary textarea and document.execCommand('copy'). — src/content_script.js:381
Does it send information outside your browser? If so, what information is sent, where does it go, and why?
It sends questions, screenshots, page URLs, identifiers, readable site cookies, page HTML, and optional media to BlackTom-controlled services.
Automatically posts URL, document.cookie, user agent, username, and complete page source on supported pages for enabled paid accounts. — src/content_script.js:1547
Posts extracted questions and contextual headers, including user ID, page URL, course, and currentCookie, to the configured answer API. — src/background.js:14
Posts selected screenshots and optional page media/audio to newapi.htm88.org services. — src/content_script.js:667,1384
Does it download or run code, settings, or instructions supplied by a remote server?
The vendor configuration response supplies the answer services URL and version information used by the extension.
Fetches /api/me/config and stores the returned apiurl, version, and announcement. — src/popup.js:535
Sends question and cookie data to the stored apiurl. — src/background.js:14
Can it take actions without a clear user request, such as opening pages, redirecting searches, downloading files, or sending requests?
Sensitive page collection runs automatically on supported sites once the extension is enabled for a paid account.
During supported-page initialization, posts cookies and then full page HTML without requiring a question click; checks extension enabled state and subscription plan first. — src/content_script.js:1547
Can it change important browser settings, including your proxy, search engine, homepage, privacy settings, or other extensions?
No evidence of this behavior was found in the reviewed package.
No browserSettings, proxy, search, or homepage-setting permission is declared. — manifest.json:3
Is any important behavior difficult to inspect because the code is hidden, heavily obfuscated, dynamically generated, or supplied by third parties?
The application is distributed as very large minified bundles, which makes review difficult but is not proof of abuse.
Background application and bundled dependencies are minified into 15 long lines. — src/background.js:1-15
Popup application and dependencies are minified into a large bundle. — src/popup.js:1-535
Does it use eval(), new Function(), or string-based timers to turn text into executable code?
No evidence of this behavior was found in the reviewed package.
A bundled compatibility helper uses Function('return this') with a fixed packaged string, not downloaded input. — src/popup.js:90
Does it track the websites, pages, searches, or links you visit?
No evidence of this behavior was found in the reviewed package.
Injects into all frames on <all_urls>, except listed CAPTCHA pages. — manifest.json:3
Reads location URL for DOM requests and automatic supported-page reporting. — src/content_script.js:1384,1547
Does it create a persistent ID or browser fingerprint to recognize you?
It uses persistent BlackTom user and device identifiers and sends account and page context to its services.
Login refresh sends username and device_id; answer calls include BlackTom user ID and software version. — src/background.js:14
Loads a hidden BlackTom device-cookie iframe during login. — src/popup.js:469
Does it send cookies, session details, authentication data, or page contents elsewhere?
It reads supported sites' script-visible cookies and sends them to the extension vendor; it also stores its own service password locally.
Reads document.cookie, stores it as currentCookie, and sends it automatically to webapi.htm88.org and with answer requests. — src/content_script.js:1547,1572
Stores the user's BlackTom password after login for background refresh. — src/popup.js:34
Does it record typing, form entries, clipboard contents, or screenshots?
It can capture the visible tab for screenshot solving, but the capture is tied to a user-invoked screenshot workflow.
Captures the visible tab in response to the internal capture_tab action. — src/background.js:14
The screenshot selection UI enables capture support and removes it on completion or cancellation. — src/content_script.js:1189
Posts the selected image or question text to the screenshot-solving service. — src/content_script.js:667
Can a website or remote server send commands that make the extension take actions?
The answer service can direct changes to quiz controls, but actions require a user-triggered solve and are locally restricted to known visible answer fields.
Validates server operations against snapshot node IDs, permits only checking choices, filling text, or selecting options, caps operations at 20, and rejects sensitive input types. — src/content_script.js:1410
Receives answer results and sends fillAnswer messages back to the originating tab and frame. — src/background.js:14
Does it alter links, referral codes, advertisements, shopping carts, or search results?
No evidence of this behavior was found in the reviewed package.
Advertises homework explanations for major learning platforms. — _locales/en/messages.json:3-6
Adds extension UI and fills supported quiz controls with returned answers. — src/content_script.js:1410,1572
Does it redirect or modify web traffic, request headers, downloads, or proxy settings?
During screenshot or multimodal media collection it temporarily rewrites CORS response headers for all matching URLs, then requests removal of the rule.
enableCORS installs a global response-header rule setting Access-Control-Allow-Origin and Methods to *, while disableCORS removes it. — src/background.js:15
Screenshot and multimodal workflows enable the rule and disable it during cleanup/finally paths. — src/content_script.js:1189,1384
Can it communicate with software on the computer or services running on localhost?
No evidence of this behavior was found in the reviewed package.
No nativeMessaging permission is declared. — manifest.json:3
Does it decode, decrypt, or unpack hidden data and then execute or inject it?
No evidence of this behavior was found in the reviewed package.
Stores apiurl from the vendor configuration response. — src/popup.js:535
Executes only validated set_checked, fill_text, and select_option operations against known nodes. — src/content_script.js:1410
Uses the remotely configured apiurl for question requests and relays returned answers to the page. — src/background.js:14
Can ordinary websites access privileged extension features through messaging or exposed files?
No evidence of this behavior was found in the reviewed package.
No externally_connectable entry is declared. — manifest.json:3
Privileged actions are exposed through extension runtime messages, with no page-world postMessage relay identified. — src/background.js:14-15
Does suspicious behavior activate only for certain users, websites, dates, or remote settings?
No evidence of this behavior was found in the reviewed package.
Generic-site use requires per-origin approval, while automatic source upload requires a supported page and non-free subscription. — src/content_script.js:1384,1547
Answer behavior uses stored feature settings and a remotely configured API URL. — src/background.js:14
Does it perform hidden resource-intensive work, such as cryptocurrency mining?
No evidence of this behavior was found in the reviewed package.
Recurring alarms maintain the extension account and service worker, not a mining workload. — src/background.js:14
Does it change form fields or where a form sends its information?
It fills quiz inputs but does not rewrite form destinations; generic actions explicitly reject password, hidden, file, and submit controls.
The shared text writer rejects hidden, password, radio, checkbox, file, button, submit, reset, and image input types. — src/content_script.js:1
Server-directed generic operations are limited to known answer controls and validate every field before applying changes. — src/content_script.js:1410
Platform-specific handlers fill answers into detected quiz controls; no form-action reassignment was found. — src/content_script.js:1572