Staredit Network > Forums > Modding Discussion > Topic: Hex editing Starcraft.exe locations
Hex editing Starcraft.exe locations
Aug 8 2025, 4:05 am
By: NimoStar  

Aug 8 2025, 4:05 am NimoStar Post #1



What Firegraft does is essentially inject code in Starcraft.exe and other related things

Code injection is auto flagged as malware by most antivirus including default windows smartscreen and quarantined (functionally deleted)

Yet, you actually don't need code injection for many/most of firegraft functions, let alone have the packaged in a "suspicious" custom exe

In fact, you could do them by just changing the locations in Starcraft.exe yourself, which would not be flagged by any antivirus at least as far as parameter edits and assembly code are concerned.

However, I have searched. And searched. And found no such list of hex locations to edit. Even though it is exactly the same as Firegraft is doing, in a more integrated manner. So the locations exist and are known

for example: all in the exe hack section for the most obvious:
- morphing any unit,
- doing archon merging with any unit as valid,
- cloaking enabled for everything,
- Speed/range upgrades, etc.

Since firegraft itself does not display the hex locations, neither does it alter the original .exe as I would find preferable, these are very hard to come by.

Anyone has an online resource, or knowledge about this method and locations?

Many thanks.

Attachments:



None.

Aug 10 2025, 1:31 am O)FaRTy1billion[MM] Post #2

👻 👾 👽 💪

I believe you just have to subtract 0x400000 from the in-game address to get the offset within the exe file. Most everything should line up, unless it's located in uninitialized memory (which will go beyond the end of the file)

It looks like the offsets in the .fgd file in firegraft's data.mpq use the exe offsets directly, eg:
Code
46Change=0x90
46Entry=Units,Create Unit,Unit Morph,Order Restriction - Check Unit Type
46IsLong=1
46Offset=0x5dfc4
46Prev=40
46Size=6
46Type=Jump
I assume that means replace 6 bytes at 0x5dfc4 with 0x90

For the one in your screenshot,
Code
235Entry=Upgrades,Capacity,Carrier Capacity,Initital Interceptor Capacity
235Hint=Initial amount of interceptors a carrier can build.
235Offset=0x65407
235Size=1
235Type=Const
235VarType=1
Just replace 1 byte at 0x65407 with the value you want.

Post has been edited 2 time(s), last time on Aug 10 2025, 1:46 am by FaRTy1billion.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Aug 11 2025, 6:32 am NimoStar Post #3



Hmmm... that is some interesting info.

So I extract the fgds from the mpq within firegraft folder

open the extracted FGDs with a text editor

And the offsets are mostly there, yes

it's not that easy to know at a glance how to use them, but this is a massive leap forward in knowing, thanks.



None.

Aug 12 2025, 5:38 am NimoStar Post #4



Well, i'm kind of back to square one.

I have fired up hex editor neo and searched for the locations in the fgd files, but these don't correspond to the actual .exe

Perhaps it is different in runtime. Probably. Because it is meant to modify the program at runtime and not as a file

for example: Supply limit hex doesn't point to a 200, starting worker doesn't point to a unit identifier, etc. (my editor doesn't use +-400000, this would go out of bounds from the file every time btw; all of the listed offsets)

Don't have the solution right now, but I'm warning so people know its that easy and if this doesn't work is because its wrong.

I have also tried one of the edits for the heck of it with the corresponding dat edits (turn 000f4691 into 90 ) for the Devourer attack spores to affect ground, but it just crashed (the proper Firegraft version doesn't do that)

On the other hand,. I am maybe wrong because some offsets do seem correct and working (like shield points per cycle)

Attachments:
2025-08-12 03_20_26-Brood War.png
Hits: 2 Size: 175.75kb

Post has been edited 3 time(s), last time on Aug 12 2025, 6:32 am by NimoStar.



None.

Sep 13 2025, 9:29 pm O)FaRTy1billion[MM] Post #5

👻 👾 👽 💪

Maybe only certain memory segments line up, I'm not really sure



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Sep 14 2025, 3:43 am DarkenedFantasies Post #6

Roy's Secret Service

Quote from NimoStar
I have also tried one of the edits for the heck of it with the corresponding dat edits (turn 000f4691 into 90 ) for the Devourer attack spores to affect ground, but it just crashed (the proper Firegraft version doesn't do that)
At 0xF4691 is a 2-byte JE opcode. You edited the byte at 0xF4691, but not the byte at 0xF4692. Because you've written only a single NOP, this realigns the opcode interpretation for the CPU, effectively changing the "TEST EAX,0x4000000" opcode at 0xF4693 (A9 00 00 00 04) into "AND CH,byte ptr[ECX+0x4000000]" at 0xF4692 (22 A9 00 00 00 04), and causes your read access exception.




Feb 23 2026, 2:50 am NimoStar Post #7



Well I have mastered now how to edit all instructions contained in the firegraft .txt

Yet when googling Starcraft hex editing locations I still end up in this topic.

So I would appreciate anyone with knowledge of the following areas:

* WHERE / How to edit buttonsets of each unit (VERY important, and also theoretically simple)

* WHERE / How to edit buttons in the buttonsets themselves (key for adding and changing abilities and researches, as well as for constructing units and buildings not enabled for the regular game)

* WHERE are requirements stored (by hex editing a value you should be able to individually substitue any requirement; necessary to enable abilities, units and buildings, and editing tech trees).

* WHERE / How to edit damage types (not as important but still fun, like customizing/adding the missing damage type or changing "independent" damage which is kind of unused)

As for something I can contribute:

Quote
tHE DAMNED UNIT ARRAY for extended range ends before there is Reaver, Scarab and Observer; while including many unnecessary heroes

So, you have no way of extending Reaver, Scarab or Observer attack range via researches. This unit array is shorter than others, since you *can* give them for example increased speed or increased sight (Observer has these upgrades in the normal game and that's probably why those arrays are relatively extended, while there are no such attack range upgrades)

The last unit with a possible range upgrade is Fenix (Dragoon), further supporting this line of thinking (since Dragoons do have a range upgrade). Even then, it's completely wasted on it, since they could have just increased its hero weapon's range (while this isn't an option with Warbringer and Reaver). The same applies to most heroes in the list, because they are upgrade-enabled, yet they are nearly always upgraded by default despite having custom weapons where the upgrade stats could have been merged (hero units could have been listed after all regular units to avoid this problem).

Curiously (and given this, probably dumbly) Warbringer (Hero) is listed before the actual Reaver, the only hero to be listed before their base unit.

Sadly without changing building buttons you can't meaningfully switch Reaver's unit position to one where it has a range upgrade.


Post has been edited 5 time(s), last time on Feb 23 2026, 8:50 am by NimoStar.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[07:41 pm]
Ultraviolet -- works for me too
[03:05 pm]
Zoan -- unknown_men
unknown_men shouted: SCMdraft 2 website is down http://www.stormcoast-fortress.net/Irregularies/
The website is fine. And the download links on the website.
[01:20 pm]
unknown_men -- NudeRaider
NudeRaider shouted: no
You are able to open it?
[12:59 pm]
NudeRaider -- no
[2026-4-02. : 2:32 pm]
unknown_men -- SCMdraft 2 website is down http://www.stormcoast-fortress.net/Irregularies/
[2026-4-01. : 7:45 pm]
Zoan -- pee pee poo poo
[2026-3-31. : 3:22 pm]
lil-Inferno -- buttcheeks
[2026-3-31. : 3:31 am]
Ultraviolet -- bots are out agian
[2026-3-31. : 2:54 am]
Ultraviolet -- :lol:
[2026-3-30. : 9:04 pm]
Zoan -- Maybe it's just PyMSing rn
Please log in to shout.


Members Online: NudeRaider, anoeth47