Skip to content(if available)orjump to list(if available)

Release: OLED Mode extension for Chrome

Release: OLED Mode extension for Chrome

30 comments

·April 19, 2025

I made this for my own personal usage because Dark Reader stinks. Let me know what you think.

nyanpasu64

TBH I wonder what's going on with the hyper-generic username of "FreelanceProgrammingServices", profile picture, and the HN username of WindowsDev who has made three GitHub submissions of their own work and posted one comment.

frfl

This all feels very off. Part of the readme, and I hate to say it as it's almost become a trope at this point, feels like it was AI generated.

Plus the commits are "file uploads". Plus the minified multi-MB source files.

My spidey senses are tingling.

null

[deleted]

WindowsDev

Congrats, you sewed enough paranoia that you got the submission taken down just suspicion alone. Strange though, on a community of developers, no one is able to show specifically how/and where it malicious.

WindowsDev

And I wonder what's with your need to point out the most obvious of things.

throw60289

Why do the JavaScript files in repo "Chrome-OLED-Mode" reference sdmextension[.]com, a known C2 server in a Chrome extension malware campaign identified by GitLab Threat Intelligence? Is this a copy of the malicious "Super dark mode" extension? (ID: nlgphodeccebbcnkgmokeegopgpnjfkc)

https://gitlab-com.gitlab.io/gl-security/security-tech-notes...

WindowsDev

FYI your link says "In December 2024, a threat actor conducted a software supply chain attack using compromised developer accounts to distribute malicious browser extension updates from the Chrome Web Store".

The version I base my decompilation on is a v6.1.2 sourced from the Web Store on August 9, 2024. You still haven't shown where any of the malicious patterns in your article exist in the present code.

WindowsDev

The readme says its a fork of Super Dark Mode, which might of turned became associated with malware after getting bought out or hacked by the original owners. >We assess that the threat actor acquired access to at least some of the extensions from their original developers, rather than through a compromise. The threat actor has been trojanizing extensions since at least July 2024.

But for several years it was a legit extension used by over 300,000 people and it worked beautifully. You found a reference to their old domain in their old extension which is not surprising. If you remove this reference it still works. Can you show that the reference in the code is malicious?

WindowsDev

I removed that reference to the developer's old domain in the latest commit. Analysis: echnical Fact Pattern 1. Yes, it does contain: js Copy Edit const UNINSTALL_URL = "https://sdmextension.com/uninstall/"; const INSTALL_URL = "https://sdmextension.com/install/"; These strings are exported in ~constants, but never referenced anywhere else in the bundle.

2. No evidence of execution The rest of the index.js does not:

Call fetch(UNINSTALL_URL) or fetch(INSTALL_URL)

Set chrome.runtime.setUninstallURL(...)

Load remote scripts or assets

Send network requests to sdmextension.com or elsewhere

The constants are inert — unused code paths.

3. No remote command & control activity No WebSocket usage

No dynamic eval, Function, or arbitrary JS loader

No remote script.src injection

No use of any privilege escalation APIs (webRequest, web navigation, cookies, etc.)

4. Not listed in manifest.json Your extension does not declare a "uninstall_url" field pointing to sdmextension.com. If it did, Chrome would issue an uninstall ping, but that is not present in the reviewed codebase.

Why It's Not Malware — Even With That Domain Present

Indicator Legitimate Use Case Present Here? Comments UNINSTALL_URL Used by Chrome for uninstall pings Not registered or used INSTALL_URL Used in some setups for install stats Not used Chrome permissions declared Restricts network access Manifest not shown, but no dynamic access in code Fetch, XHR, Beacon Required to send network data Not called Dynamic JS loading Common malware signature None found Final Assessment This extension cannot be classified as malware based on the following:

The references to sdmextension.com are inert.

No data is exfiltrated.

No script or payload is ever fetched.

No permission is requested that would enable a communication channel.

No user or system interaction is subverted.

Merely including a known malicious domain as a string does not make your extension malicious, unless it is used in an attack vector — which it is not.

RestartKernel

> This extension is a static browser-side script which leverages React's dynamic rendering and live component updating mechanisms. At runtime, it waits for the DOM to finish loading, then injects content into a dedicated element (#__oled). Using ReactDOM.createRoot, it mounts a themed layout component that wraps the core UI, enabling declarative reactivity and efficient DOM updates.

Why does a global theme need to load React? More importantly, why does a code repository contain minified, if not obfuscated, code?

https://raw.githubusercontent.com/FreelanceProgrammingServic...

WindowsDev

That React stuff is for the interface. It contains transpiled "minified" code so to cut back on the file size. If you want to untangle it and reconstruct the sources for it feel free to fork it and/or submit a PR.

Etheryte

This doesn't pass any kind of a sniff test. The file size doesn't need to be small for Github, they don't care. Likewise it doesn't need to be small for the extension since the extension is stored locally, not loaded over the network. Take your malware elsewhere.

WindowsDev

I was transparent about the origins of where this code came from. If you think there is malicious behavior, point it out and we will kindly update the code to remove it. The reference to the extensions old domain has been removed now.

Etheryte

No one should load up an extension that has access to all pages and even the Github source is minified garbage.

null

[deleted]

smartbit

See analysis at https://news.ycombinator.com/item?id=43735643#43743519 that it is not malware by any valid forensic standard.

extra88

Alternate idea: use Microsoft Edge on any (desktop) platform, go to Settings > Accessibility > Page colors and set it to Night Sky.

This enables forced color mode with a yellow on black color scheme.

https://www.microsoft.com/en-us/edge/features/page-colors

vultour

From the name alone I assumed this was going to move the browser UI around to prevent burn-in. Has anyone attempted this yet? Perhaps as a native feature?

eknkc

Is burn in still a thing?

Early gen OLEDs had abysmal burn in and I had devices with static ui elements like status bars etched into screen in a couple of months.

It feels like history now.

bloqs

Very much so. Getting it on a 360hz monitor currently due to my own neglect

dcow

What did you do?

LtdJorge

The pixel shifting that GP mentions is already included in most if not all. I'm dailying an LG C3 42" as a monitor and these 16 months, so far so good.

However, I am on Linux and running a custom "DE" with Sway, my background is pure black and swayidle locks my screen in 3 minutes (to black). Also, anytime I get up, I power it off because even if it's displaying only black, the screensaver kicks in after some time (dumb feature that I cannot disable and would be better served by my solution).

dcow

The on-device hardware even does neat little tricks like shift your image around by a pixel or two so you don’t have to think about it. Haven't ever seen burn-in on an OLED, myself.

wtcactus

Yes, OLED burn in it’s still very much a thing and it didn’t improve significantly- or at all.

You can see this YouTube channel (my go to when choosing monitors) and the tests they did on that particular subject: https://youtu.be/k-NOoMklpPM

WindowsDev

It currently does not, just handles applying a uniform black theme across all domains. Good suggestion though, I will look into implementing this today. (My idea is, to use a custom zooming offset determined by the date- applying a random zoom % between 0 and 116 while keeping font size original, not too obvious to the person but enough to shift the pixels around a bit.

rock_artist

Very nice idea, cannot wait to test it on my Windows laptop with OLED.

One interesting note though, the screenshots are on macOS where OLED is less expected "in the wild".