Get the package and unpack it

Download the CRX from the store or use the extension's unpacked directory if you are the developer. A CRX is a header plus a ZIP payload. Extract it with a package inspector or a standard archive tool after stripping the header.

Keep the original package. If you later compare versions, you want the exact build you reviewed rather than a reconstructed directory.

Related pages:unpack a CRX without installingCRX3 file format structure

Start with the manifest

The manifest lists permissions, host permissions, content scripts, the background or service worker, the action popup, options page, CSP and update URL. These fields tell you where the code runs and what it can reach.

Follow each entry point into the referenced files. A content script that runs on every site is more consequential than a popup script that only runs when the user clicks the toolbar icon.

  • Read permissions and optional_permissions
  • Inspect host_permissions and content_scripts.matches
  • Find background.service_worker or background.scripts
  • Check content_security_policy and update_url
  • Review web_accessible_resources and externally_connectable

Related pages:view an extension manifest onlineextension content script inspector

Search for risky patterns

Search the source for remote script references, dynamic imports, eval-like calls, credential and cookie access, clipboard reads and raw IP endpoints. These are indicators, not proof of intent, and minified libraries can produce false positives.

Read the surrounding file and line for each hit. If the code is obfuscated or loaded remotely, treat the extension as harder to review and weigh that against the feature you need.

Related pages:remote script reference detectorextension JavaScript behavior analyzer