VideoAdBlocker

ID: maoageeemeahpciddnehiloahpennflo

Could be malicious

Supported Languages

🇫🇷French
🇩🇪German
🇮🇹Italian
🇪🇸Spanish
🇺🇸US English

Extension Info & Metadata

Status
Removed
Version
3.0.0
Size
0.88 MB
Rating
3.8/5
Reviews
194
Users
90,000
Type
Extension
Updated
May 7, 2021
Category
Productivity Workflow
Price
Free
Featured
No
Visibility
Unlisted
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
team.adblockView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
1
Active
0
Obsolete
1
Listed
0
Unlisted
1
Total Users
90,000

Free adblocker against advertising and pop-ups, for youtube and other popular video websites

Install VideoAdblocker now and all the Pre-Roll Ads on your favorit video sites are gone, forever! ✓ About Permissions & Privacy like all ad-blocking extensions we need the following permissions to remove ads on embedded videos in any website. Any video adblock detection happens on your computer and we do not see or track any of your browsing history.

Item
Type
Severity
Description
webRequest
Permission
Critical
This permission enables the extension to monitor and analyze all web requests made by the browser. Rated Critical because it can observe all network traffic including sensitive data, track browsing behavior, and gather authentication tokens.
webRequestBlocking
Permission
Critical
This permission allows the extension to intercept, modify, or block any web request in real-time before it reaches its destination. Rated Critical because it can modify sensitive data (like passwords, credit cards) before encryption, redirect traffic to malicious sites, or block security updates.
Dangerous Permission Combination
Risk Factor
Critical
This extension can intercept, modify, and block web requests in real-time.
webNavigation
Permission
High
This permission enables monitoring of all browser navigation events and transitions. Rated High because it can track every page visit, navigation method, and browsing pattern, potentially exposing sensitive browsing behavior and user activities.
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 15% increase: Older manifest version lacks modern security controls
storage
Permission
Medium
This permission allows storing data locally in the browser. Rated Medium because it can persist sensitive user data, track user activities over time, and potentially store malicious payloads.
tabs
Permission
Medium
This permission enables tab management and monitoring. Rated Medium because it can track open tabs, access tab metadata, and monitor user browsing patterns.
Older Manifest Version
Risk Factor
Medium
This extension uses Manifest Version 2
http://*/*
Permission
Unknown
No classification available for this permission.
https://*/*
Permission
Unknown
No classification available for this permission.

On every tab navigation to a supported video domain, the extension calls `https://api.noadsnow.com/custom-easylist?domain=<domain>&uid=<uid>&subid=<subid>`. The `uid` is a persistent per-install identifier stored in localStorage, and `subid` is an affiliate code harvested from the Chrome Web Store URL. This associates each domain visit with a unique user identity on a developer-controlled server, constituting undisclosed browsing-history collection.

js/background.js (Line 2394)
n.loadEasyListForDomain = (a = o(regeneratorRuntime.mark(function t(n) {  var e, i, o;  return regeneratorRuntime.wrap(function(t) {    for (;;) switch (t.prev = t.next) {      case 0:        return e = localStorage.getItem("uid"), t.next = 3, (0, r.getValue)("subid");      case 3:        return i = t.sent, o = i.subid, new Date, t.abrupt("return", f(c +          "/custom-easylist?domain=" + n + "&uid=" + e + (o ? "&subid=" + o : "")));      case 7:      case "end":        return t.stop()    }  }, t, void 0)})), function(t) {  return a.apply(this, arguments)})

All three API endpoints (`/domains`, `/config`, `/custom-easylist`) communicate through hidden iframes rather than standard extension XHR. Each call appends an iframe to `document.body`, loads the API URL inside it, then uses `postMessage` with a wildcard `"*"` target to retrieve the response. This is a deliberate obfuscation: normal background-page XHR is unrestricted in extensions; using iframes makes the traffic less visible in DevTools and harder to audit. The wildcard postMessage target also means any page embedded in the background context could intercept these messages.

js/background.js (Line 2322)
var f = function t(n) {    return new Promise(function(e, r) {          var i = void 0,            o = document.createElement("iframe");          o.src = n;          var u = function t(u) {            try {              var a = JSON.parse(u.data);              if (a.videoadblocker.url && a.videoadblocker.url !== n) return;              if (clearTimeout(i), i = null, a.videoadblocker.response.error) return void r(a.videoadblocker                .response.error);              e(a.videoadblocker.response)            } catch (t) {              console.log("Error on parse json response, ", t)            }            window.removeEventListener("message", t, !1), o.parentNode.removeChild(o)          };          if (window.addEventListener("message", u, !1), o.onload = function() {              return o.contentWindow.postMessage("getResponse", "*")            }, ...

On initialization, the extension queries active Chrome Web Store tabs and extracts any `subid` query parameter — an affiliate/referral code used to attribute installs to traffic sources. This code is then persistently saved and appended to every subsequent `api.noadsnow.com` request. This enables the developer to correlate individual users with the marketing channels that drove their install, monetizing each user's browsing data through an affiliate tracking scheme.

js/background.js (Line 2123)
chrome.tabs.query({      active: !0,      url: "https://chrome.google.com/webstore/*"    }, function(t) {      var n;      t[0] && t.forEach((n = h(regeneratorRuntime.mark(function t(n) {                  var e, r, i;                  return regeneratorRuntime.wrap(function(t) {                        for (;;) switch (t.prev = t.next) {                            case 0:                              if (!n.url.search(/subid=/g)) {                                t.next = 7;                                break                              }                              if (e = new URL(n.url), r = new URLSearchParams(e.search), !(i = r                                  .get("subid"))) {                                t.next = 7;                                break                              }                              return t.next = 7, (0, o.saveValue)({                                subid: i                              });

At startup, the extension fetches its list of supported video domains from `api.noadsnow.com/domains?uid=<uid>` and its configuration from `api.noadsnow.com/config?browser=<browser>`. Because these endpoints are developer-controlled and dynamically served, the operator can remotely modify which sites the extension monitors and how it behaves — effectively granting the server ongoing remote control over extension behavior without any update to the packaged code.

js/background.js (Line 2410)
n.loadDomains = function(t, n) {  var e = c + "/domains?uid=" + t;  return n && (e += "&isSelfHosted=true"), localStorage.setItem("uid", "" + t), f(e)}, n.loadConfig = function(t) {  return f(c + "/config?browser=" + t)}

By severity

Critical0
High1
Medium3
Low0

Versions scanned

Showing 1 of 5 scanned versions with more than one unique finding. Counts are unique findings that include each version.

Extension VersionCode Review Findings
3.0.04

Files with findings

1 distinct path — top paths by unique finding count:

  • js/background.js4
S.No.
Category
Severity
File
Summary
Found in Version
1Tracking
high
js/background.js (line 2394)On every tab navigation to a supported video domain, the extension calls `https://api.noadsnow.com/custom-easylist?domain=<domain>&uid=<uid>&subid=<subid>`. The `uid` is a persistent per-install identifier stored in l…
2Obfuscation
medium
js/background.js (line 2322)All three API endpoints (`/domains`, `/config`, `/custom-easylist`) communicate through hidden iframes rather than standard extension XHR. Each call appends an iframe to `document.body`, loads the API URL inside it, t…
3Remote Code Loading
medium
js/background.js (line 2410)At startup, the extension fetches its list of supported video domains from `api.noadsnow.com/domains?uid=<uid>` and its configuration from `api.noadsnow.com/config?browser=<browser>`. Because these endpoints are devel…
4Unauthorized Data Collection
medium
js/background.js (line 2123)On initialization, the extension queries active Chrome Web Store tabs and extracts any `subid` query parameter — an affiliate/referral code used to attribute installs to traffic sources. This code is then persistently…
URLs
291
IPv4
75
IPv6
0

URLs

View the external URLs this extension communicates with to understand its network activity and data interactions.

Gain full insight into all external connections.

Upgrade for full visibility.

adguard.com/filters.htmlhttp://adguard.com/filters.html#english
filters.adtidy.org/extension/chromium/filters/2.txthttps://filters.adtidy.org/extension/chromium/filters/2.txt
adguard.com/filters.htmlhttp://adguard.com/filters.html#privacy
filters.adtidy.org/extension/chromium/filters/3.txthttps://filters.adtidy.org/extension/chromium/filters/3.txt
adguard.com/filters.htmlhttp://adguard.com/filters.html#social
filters.adtidy.org/extension/chromium/filters/4.txthttps://filters.adtidy.org/extension/chromium/filters/4.txt
adguard.com/filters.htmlhttp://adguard.com/filters.html#annoyances
filters.adtidy.org/extension/chromium/filters/14.txthttps://filters.adtidy.org/extension/chromium/filters/14.txt
adguard.com/filters.htmlhttp://adguard.com/filters.html#useful
filters.adtidy.org/extension/chromium/filters/10.txthttps://filters.adtidy.org/extension/chromium/filters/10.txt
Showing 1 to 10 of 300 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

1.1.23.9
IPv4
-
1.0.12.97
IPv4
-
1.0.20.75
IPv4
-
1.0.14.62
IPv4
-
1.0.1.8
IPv4
-
1.0.53.13
IPv4
-
1.0.35.18
IPv4
-
1.0.4.40
IPv4
-
1.0.93.6
IPv4
-
1.0.9.28
IPv4
-
1.0.86.68
IPv4
-
1.0.7.86
IPv4
-
1.0.26.65
IPv4
-
1.0.8.79
IPv4
-
1.0.1.82
IPv4
-
1.0.3.52
IPv4
-
1.0.73.24
IPv4
-
1.0.82.56
IPv4
-
1.0.73.25
IPv4
-
1.0.73.45
IPv4
-
1.0.82.73
IPv4
-
1.0.1.97
IPv4
-
1.0.0.52
IPv4
-
1.0.0.15
IPv4
-
1.0.82.87
IPv4
-
1.0.2.4
IPv4
-
1.0.82.79
IPv4
-
1.0.63.78
IPv4
-
1.0.4.69
IPv4
-
1.0.82.57
IPv4
-
1.0.1.35
IPv4
-
1.0.0.30
IPv4
-
1.0.0.43
IPv4
-
1.0.24.76
IPv4
-
1.0.82.76
IPv4
-
1.0.0.1
IPv4
-
1.0.1.16
IPv4
-
1.0.82.72
IPv4
-
1.0.0.98
IPv4
-
1.0.1.70
IPv4
-
1.0.5.67
IPv4
-
1.0.4.5
IPv4
-
1.0.0.25
IPv4
-
1.0.7.75
IPv4
-
1.0.1.40
IPv4
-
1.0.1.68
IPv4
-
1.0.3.27
IPv4
-
1.0.1.27
IPv4
-
1.0.0.2
IPv4
-
1.0.19.36
IPv4
-
1.0.2.47
IPv4
-
1.0.0.11
IPv4
-
1.0.4.26
IPv4
-
1.0.0.5
IPv4
-
1.0.0.3
IPv4
-
1.0.0.9
IPv4
-
1.0.0.81
IPv4
-
1.0.0.13
IPv4
-
1.0.0.4
IPv4
-
1.0.3.8
IPv4
-
1.0.82.61
IPv4
-
1.0.3.5
IPv4
-
1.0.0.29
IPv4
-
1.0.1.14
IPv4
-
1.0.79.48
IPv4
-
1.0.79.25
IPv4
-
1.0.1.87
IPv4
-
1.0.1.85
IPv4
-
1.0.0.60
IPv4
-
1.0.1.39
IPv4
-
1.0.1.44
IPv4
-
1.0.0.32
IPv4
-
1.0.0.18
IPv4
-
1.0.0.39
IPv4
-
0.0.0.0
IPv4
-
Showing 1 to 75 of 80 rows
Rows per page:
Showing 1 to 5 of 10 rows
Rows per page:

Code Diff

Compare extension code between any two versions.

0 changed files (scanned top 25 shared text files)

No comparable text files found between these versions.

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.