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

Unlimited N-word pass winner

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

Failed to get ImageSize ( http://rion.cz/epd/smt/scr1.png )

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:
Fixed update mechanism
Fixed column adjusting that caused export to fail
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

Post has been edited 27 time(s), last time on Sep 25 2022, 12:12 pm by T-warp.




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

Unlimited N-word pass winner

Cody




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

Unlimited N-word pass winner

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

Unlimited N-word pass winner

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

Unlimited N-word pass winner

Added export/import to excel.




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

Unlimited N-word pass winner

Added korean/russian translation (google translator effort).




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

Armoha

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



maintainer of euddraft and eudplib.
Armo#6637 at Discord :teehee:

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

Unlimited N-word pass winner

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

Unlimited N-word pass winner

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

Unlimited N-word pass winner

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.
[10:41 am]
v9bettel -- Nice
[01:39 am]
Ultraviolet -- no u elky skeleton guy, I'll use em better
[10:50 pm]
Vrael -- Ultraviolet
Ultraviolet shouted: How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
hey cut it out I'm getting all the minerals
[10:11 pm]
Ultraviolet -- :P
[10:11 pm]
Ultraviolet -- How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
[2024-4-17. : 11:50 pm]
O)FaRTy1billion[MM] -- nice, now i have more than enough
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- if i don't gamble them away first
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- o, due to a donation i now have enough minerals to send you minerals
[2024-4-17. : 3:26 am]
O)FaRTy1billion[MM] -- i have to ask for minerals first tho cuz i don't have enough to send
[2024-4-17. : 1:53 am]
Vrael -- bet u'll ask for my minerals first and then just send me some lousy vespene gas instead
Please log in to shout.


Members Online: Excalibur