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: 1 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.
[05:11 pm]
MTiger156 -- I'd try to spell "WOB" with wobs, but that would require 5 uninterrupted lines and probably a ban >_<
[02:30 pm]
MTiger156 -- I used that joke already :P
[01:08 am]
Oh_Man -- They see me wobbing... they hating...
[10:45 pm]
RIVE -- Using the Search box is enough to crash the site. Do your worst.
[08:15 pm]
MTiger156 -- I calculate that it is possible to fill a shoutbox page with 1125 wobs. Is that enough GIF power to crash the server?
[08:09 pm]
MTiger156 -- :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob: :wob:
[07:22 pm]
NudeRaider -- KrayZee
KrayZee shouted: I have discord but I'd rather use the shoutbox since I'm old fashioned that way.
Ultraviolet
Ultraviolet shouted: Discord doesn't feel the same to me, I don't really like it
I agree. But I have no idea why.
[06:55 pm]
Ultraviolet -- :wob:
[06:55 pm]
Ultraviolet -- Discord doesn't feel the same to me, I don't really like it
[2019-11-14. : 2:24 pm]
Vrael -- :wob: :lock: :wob: :lock:
Please log in to shout.


Members Online: Roy, Ahli