0X000002BC

Fix ERROR_IMAGE_NOT_AT_BASE (0X000002BC) Image Relocated

Windows Errors Intermediate 👁 0 views 📅 Jun 8, 2026

This error means a program couldn't load at its preferred memory address. Here's how to fix it in a few minutes.

You got the 0X000002BC error, and it's frustrating when an app just won't start. But this one's actually straightforward to fix once you know what's going on. Let me walk you through it.

The Short Fix: Run the App as Administrator

Right-click the program that's failing. Select Run as administrator. If it works, you've found the problem — User Account Control (UAC) was blocking the app from locking its preferred memory address. This is the most common fix. It's not a permanent solution, but it confirms the issue.

If the app runs as admin but you don't want to right-click every time, go to the program's shortcut, right-click, choose Properties, then the Compatibility tab. Check Run this program as an administrator. Click Apply, then OK. Now it'll always ask for elevation when you launch it.

If That Doesn't Work: Change the App's Base Address

The error means the program was compiled with a /FIXED linker flag — it demands a specific memory address to load at. Windows couldn't give it that address, probably because another DLL or driver already claimed that spot.

Here's how to check and fix it using the Microsoft Debugging Tools:

  1. Download and install the Windows 10 SDK (search 'Windows SDK download' — you only need the Debugging Tools component).
  2. Open a command prompt as administrator. Press Win + X, choose Command Prompt (Admin) (or Windows Terminal (Admin)).
  3. Run this command to see the app's preferred base address:
    "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dumpbin.exe" /headers "C:\Path\To\Your\App.exe" | find "image base"

    Replace the path with the actual location of your app. You'll see something like 4A50000 image base. That's the address Windows tried to use.

  4. Now check what's already loaded at that address. Run this in the same admin prompt:
    "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe" -c "lm m *;q" -p ###

    Replace ### with the PID of a running instance of the same app (if it's running). If the app won't start at all, skip this step — you can't check.

  5. If you find a conflict, you need to rebase the app. Use the editbin tool to change its base address:
    "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\editbin.exe" /REBASE:BASE=0x10000000 "C:\Path\To\Your\App.exe"

    Pick a base address that's different from the original — 0x10000000 works for most apps. This modifies the EXE file, so you only do it once.

After rebasing, try launching the app again. It should now load at the new address without conflict.

Why This Happens

Every Windows program has a preferred memory address where it expects to load. The /FIXED linker flag tells Windows: 'If you can't put me here, don't load me at all.' This is rare in modern software because most apps use ASLR (Address Space Layout Randomization), which lets Windows pick any free address. But older apps — or badly written custom software — still use /FIXED. The 0X000002BC error is Windows saying, 'That address is taken, sorry.'

Common culprits that steal an address: antivirus drivers, graphics card drivers, or another program that loaded at the same spot. Sometimes a Windows update changes how memory is laid out, and suddenly a program that worked for years stops.

Less Common Variations of This Issue

DLL Version Mismatch

If the error happens when loading a DLL (not an EXE), the DLL might be compiled with /FIXED too. Same fix: use editbin to rebase the DLL. But be careful — rebasing a system DLL can break other apps. Only do it for the DLLs that come with the problem program.

Large Address Aware Conflict

Some 32-bit apps that use the /LARGEADDRESSAWARE flag can trigger this on 64-bit Windows. The app expects to load at a low address, but the system puts it higher. Rebasing to a higher address (like 0x20000000) usually fixes it.

Virtual Machine or Container Environment

If you're running the app inside a VM or Docker container with limited memory address space, this error appears more often. Give the VM more RAM or disable memory overcommit in the container settings.

Prevention for the Future

You can't fix every app, but you can reduce the chance of this happening:

  • Update your graphics and chipset drivers regularly. Driver updates often free up address space conflicts.
  • Disable any memory mapping hacks (like 'optimize memory usage' tools in third-party system utilities). They cause more problems than they solve.
  • If you're a developer, stop using the /FIXED linker flag. Let ASLR do its job. Link with /DYNAMICBASE instead.
  • Check for Windows updates that might have changed the memory layout. Sometimes rolling back a recent update (Settings > Update & Security > View update history > Uninstall updates) gets an old app working again.

That's it. The admin trick works nine times out of ten. For the stubborn cases, a quick rebase with editbin gets you back in business. If you're still stuck, drop the exact app name and version in the comments — there's probably a specific fix for that program.

Was this solution helpful?