This only applies for Windows on the default CurseForge installation. You should have a modern Node.JS installation (I'm using version 20)
- Go to
C:\Users\<YOUR USER>\AppData\Local\Programs\CurseForge Windows\resources - Run
npm init -yin your cmd - Run
npm i @electron/asar - Create a new file called
hash.jsin the directory - Paste the following code into
hash.js
const asar = require('@electron/asar');
const crypto = require('crypto');
const path = require('path');
const filePath = path.resolve(__dirname, 'app.asar');
async function main() {
try {
const rawHeader = asar.getRawHeader(filePath);
const hash = crypto.createHash('sha256')
.update(rawHeader.headerString)
.digest('hex');
console.log('SHA256 Hash of ASAR Header:', hash);
} catch (error) {
console.error('Error processing ASAR file:', error.message);
}
}
main();
- Run
node hash.jsand copy theSHA256 Hashvalue (something likeb09141ec49f27b343ed92b532de41dc77d9ddb60ff0c8380a03d85289e9a2878). This will be used later! - Run
npx @electron/asar extract app.asar app_made_by_tards - Go to the new
app_made_by_tardsfolder and locate thedistfolder - Go to the
distfolder and locate thedesktopfolder - Go to the
desktopfolder and opendesktop.js - Try searching for
"curseforge-ad"and change"curseforge-ad":!0,subscribed:!1to"curseforge-ad":0,subscribed:1
You are only removing the ! marks to emulate being a "subscribed" user
- Search for
className:"ad-inner",childrenor regexclassName:"ad-inner"[^}]*\{show:and replace the function after{show:with0so it will look like{show:0. - (OPTIONAL) Search for
"ads.intro"and find thespanelement afterwards which should look something like("span",{children:[b,"."]}). Change it so nothing is in the brackets:("span",{children:[]})
Now we're ready to re-pack the app.
-
Run
npx @electron/asar pack app_made_by_tards app.asarin the same directory that the initial unpacked folder is in (C:\Users\<YOUR USER>\AppData\Local\Programs\CurseForge Windows\resources) -
Run
node hash.jsagain and remember the new hash. -
We will need to edit the
CurseForge.exe(located atC:\Users\<YOUR USER>\AppData\Local\Programs\CurseForge Windows\) file. If you can access a Linux machine, the replacement can be done usingsed 's/old-hash/new-hash/' CurseForge.exe(replace the hashes with the hashes you have!). We can also manually do this by going tohttps://hexed.itand searching for the old hash (this will take a while depending on how good your CPU is). You will need to replace the old hash with the new hash by highlighting the entire old hash string and replacing it with the new one. After you are finished, download the newCurseForge.exeand replace your old one with the new one.

-
Delete the initial CurseForge data folder located at
C:\Users\<YOUR USER>\AppData\Roaming. Should be the folder named CurseForge.
Relaunch the app and you will no longer see ads. You may get a warning from Windows since you've modified the exe without re-signing it.
As of right now, this works but updates to the launcher may change the compiled electron output; I would recommend preventing the app from updating. I believe deleting app-update.yml should do the trick?
If any of the string I used for searching above does not work, search for support.overwolf.com in the file and the line before the opening <style> tag should be the line to edit.
IF for some reason there are still ads showing somewhere, add these domains to an ad blocking client like AdGuard
||adnexus.net^
||sja.yahoo.com^
||criteo.com^
Now it doesn't work
2025-12-28