Staredit Network > Forums > SC1 Mapping Tools > Topic: Starcraft map translator tool
Starcraft map translator tool
Sep 4 2019, 4:48 pm
By: T-warp  

Sep 4 2019, 4:48 pm T-warp Post #1



The title pretty much says it all. Pick a map, add/delete translation, pick output map, select which translation should be used, click "Run" and voilĂ , map is translated.

Features:
  • Any number of translations (no hard limit, only saving/loading time increases)
  • Id And contents binding (loading different version identifies strings and projects changes to translations accordingly)
  • Automatic update checking (can be disabled)
  • Export/Import to/from excel spreadsheet (for further custom processing and whatnot)
  • Self update (automatic download & replacement)

Support:
  • Unprotected maps
  • Maps generated by EUD editor (using some guard)
  • idk probably a lot of other stuff



I didn't get samples of many tool output maps, so if you find a map that is not supported by this tool, please post it here.

It's still BETA and not thoroughly tested, so always have a backup of your maps before using this tool.

It's not recommented to output to input map (stuff breaks, translation corrupts and whatnot).

If you want to translate this tool to another language, translated these strings (the parts after the equals sign)

Sources available here (sources for DLL won't be released as map protection is still a thing)

Update:
Improved exported format (colors, line breaks, filters and stuff)
Improved language interface
Fixed storage
Fixed EUD Editor support (long unseen alignment issue)
Added icon
Redesigned guardians
Fixing strings automatically
Fixed sounds
Added repack option

Attachments:
TranslatorUI.exe
Hits: 13 Size: 2288kb

Post has been edited 24 time(s), last time on Sep 30 2019, 1:54 am by T-warp.




Sep 5 2019, 11:02 am T-warp Post #2



Cody




Sep 5 2019, 11:02 am T-warp Post #3



Jamie




Sep 5 2019, 11:21 am Sato Post #4



Very cool, will give this a try next time I'm doing a Kor->Eng map translation.

Thanks.



None.

Sep 5 2019, 11:34 am T-warp Post #5



Quote from Sato
Very cool, will give this a try next time I'm doing a Kor->Eng map translation.

Thanks.
Gimme sum msf




Sep 6 2019, 10:07 am T-warp Post #6



Added export/import to excel.




Sep 10 2019, 4:01 pm T-warp Post #7



Added korean/russian translation (google translator effort).




Sep 20 2019, 6:52 am Arta(M) Post #8

wut's tis

http://www.staredit.net/sc1db/download/4507/
freeze protected map which your tool does not support yet



maintaining euddraft and eudplib.
Armo#6637 at Discord :teehee:

Sep 20 2019, 7:49 pm T-warp Post #9



Quote from Arta(M)
http://www.staredit.net/sc1db/download/4507/
freeze protected map which your tool does not support yet
Thanks! I did some digging and found out that the only reason it's not supported is that SFileCreateFile from storm lib returns false for that given map (with like 20 different parameter combinations), which most likely indicates corrupted MPQ format. The other round of digging around I tried repackaging the map into clean MPQ, which somehow disabled triggers and the magic inside. It can be opened, edited, but not saved.

That being said, it's unlikely to ever be supported (unless author of the freeze mechanism takes a look at it and provides a workaround).




Sep 21 2019, 1:08 am trgk Post #10



Freeze is designed to prevent any further tampering, so by design you cannot further modify the frozen map.



EUD

Sep 21 2019, 9:59 am T-warp Post #11



Quote from trgk
Freeze is designed to prevent any further tampering, so by design you cannot further modify the frozen map.
That may be true, but it really depends on what offsets are accessed during unfreeze and if they are writable (then we can do the same trick as for EUD support) or not (truly unprotectable in compile time). Even the first kind sounds like too much work would be needed to make it work, so I'm gonna try to find some way to identify maps that have freeze protection and distinguish such maps from those that can still be supported in the future.




Sep 23 2019, 12:07 am trgk Post #12



Quote from T-warp
Quote from trgk
Freeze is designed to prevent any further tampering, so by design, you cannot further modify the frozen map.
That may be true, but it really depends on what offsets are accessed during unfreeze and if they are writable (then we can do the same trick as for EUD support) or not (truly unprotectable in compile time). Even the first kind sounds like too much work would be needed to make it work, so I'm gonna try to find some way to identify maps that have freeze protection and distinguish such maps from those that can still be supported in the future.

Freeze accesses...

- Entire .scx content (to compute hash) via storm.dll structure
- Hash/block entry to scenario.chk
- Hash of the entire content of scenario.chk
- Entire trigger.

and compute the checksum of these elements and use that to decrypt the map content.

So in order to circumvent freeze protector, you should

- either fake all those elements (which I think is quite hard, since you'd need to use trigger to tamper these things and trigger is used for checksumming)
- or somehow extract the decryption key and jump trigger instruction point directly to the decryption routine.

Try :)



EUD

Sep 23 2019, 10:24 am T-warp Post #13



Quote from trgk
- Entire .scx content (to compute hash) via storm.dll structure
If it's done by triggers, we can alter them (probably in some insanely difficult way).

Quote from trgk
- Hash/block entry to scenario.chk
That's why it cannot be trivial editor, because block-level is not accessible (one would need to either create own MPQ library or modify the existing)
Quote from trgk
- Hash of the entire content of scenario.chk
Depending on used algorithm, it would be possible to append garbage and cause hash collision (even though very time consuming).
Quote from trgk
- Entire trigger.

and compute the checksum of these elements and use that to decrypt the map content.
It it's done by parts (first calculate hash, store it somewhere, then use that stored value to decrypt stuff), you know where this is going... :D
Quote from trgk

So in order to circumvent freeze protector, you should

- either fake all those elements (which I think is quite hard, since you'd need to use trigger to tamper these things and trigger is used for checksumming)
- or somehow extract the decryption key and jump trigger instruction point directly to the decryption routine.
Or just change the checksum to known value once it's calculated.
Quote from trgk

Try :)
I don't want angry korean map makers banging on my door at night, so no thanks.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[09:37 pm]
Ultraviolet -- MTiger156
MTiger156 shouted: I'd like to think that Jeff Kaplan will eventually try to overthrow J Allen Brack. Given that he is Vice President with loads of charisma and popularity, he has way more power than he imagines. Blizz and Activision wouldn't even be able to fire Jeff, cuz they NEED him badly.
Everyone is expendable. The machine will continue running either way. Learned that a long time ago in the restaurants, I imagine it applies to these other companies, too. There's always someone willing to take your job
[07:27 pm]
Roy -- NudeRaider
NudeRaider shouted: Roy doesn't sound like a very time intensive thing to do, Roy.
I'll see if I can work it into my schedule.
[02:42 pm]
NudeRaider -- Roy
Roy shouted: I really need to put disclaimers on that guide, since it was written long before SC:R was a thing.
doesn't sound like a very time intensive thing to do, Roy.
[01:45 pm]
MTiger156 -- I'd like to think that Jeff Kaplan will eventually try to overthrow J Allen Brack. Given that he is Vice President with loads of charisma and popularity, he has way more power than he imagines. Blizz and Activision wouldn't even be able to fire Jeff, cuz they NEED him badly.
[10:13 am]
Roy -- I really need to put disclaimers on that guide, since it was written long before SC:R was a thing.
[06:24 am]
NudeRaider -- Ultraviolet
Ultraviolet shouted: Blizzard's been so dickish lately :(
lately? They've been transforming from a passionate game studio to a major corporation that only considers business decisions like a decade ago. And they were only lucky that their business interests didn't conflict with the gamer's interests before. Merging with Activision didn't help in that regard.
[04:20 am]
Ultraviolet -- Activision, rather
[04:19 am]
Ultraviolet -- Blizzard's been so dickish lately :(
[03:36 am]
youarenotworthy -- Thanks.
[03:28 am]
O)FaRTy1billion[MM] -- most common addresses have already been found and are supported, the only exception is things relating to graphics because SC:R has different (and incompatible) handling of sprites and graphics
Please log in to shout.


Members Online: Roy, jjf28