• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Can someone help fix this map? 1.24b killed it along time ago

Status
Not open for further replies.
Level 2
Joined
Jan 9, 2009
Messages
17
An old Europa map, was alot of fun. I have OSX 10.7 so I can't open the editor anymore, would really appreciate if someone could take a look at this. Purplepoot made it, I haven't seen him in awhile though
 

Attachments

  • Europa II 1.60 beta.w3x
    1.4 MB · Views: 52
Level 17
Joined
Nov 13, 2006
Messages
1,814
i also cant open
 

Attachments

  • 1.jpg
    1.jpg
    16.4 KB · Views: 116
Level 14
Joined
Apr 20, 2009
Messages
1,543
i also cant open

This message usually occurs when data inside the map has been corrupted. Mostly of the time when this happens it's because the map is protected,
which means people that are not supposed to open it, can not open it.

By protecting a map the program that protects it removes some part of data in the map making it corrupt so that the user can't open it but still makes it playable.
Which when de-protected leads to obfuscated Jass script, but I won't go into detail about that.
Let's just say you need to know a way of overwriting corrupt data with default world editor data...

In this case I'm not sure if this map either needs to be de-protected in order to open it, or fixed of the corrupted data of the map in order to open it.
Are you sure that this map is unprotected and you where abled to open it before?
Do you perhaps have an older version of this map?

If not, then even though if I for example know how to do it then de-protecting is still illegal and is not allowed...
It's basically stealing someones map...
I'm sorry but I will not help you with that. I will only help if I'm sure that this map became corrupted after you the rightful owner where working on it. :(

If you are 100% sure that the patch made the map corrupt then try installing warcraft 3 without updating.
Then try opening the map with the old un-patched world editor version. See if that helps.
If it does, save the map again on a different location, try updating warcraft and then opening the map saved on the other location.

If you are allowed to open it with a older un-patched version of the editor, which means the map was not protected,
then try overwriting the corrupt game data with the default game data of the newest patch. (Hint: Try overwriting the units first)

If you can't find out how to do it, I'm sorry but that's all the information I'm gonna give you, telling more can get me banned :p
 
Last edited:
Level 2
Joined
Jan 9, 2009
Messages
17
I know the map is protected, I was hoping there was a way of doing something to my computer/wc3 that would like me host it. I get "game not found" when I try to create a game with it on bnet
 
Level 14
Joined
Apr 20, 2009
Messages
1,543
Eerm the message "game not found" gets displayed to other players if they can not join the host of the game.
Which means your computer can not host... This normally won't have to do anything with the map that your hosting.
Have you tried hosting different maps? Do you get the same message?
Is this map playable offline? Does it start? Is there a host script in this map?

Have you checked out this tutorial?:
http://www.hiveworkshop.com/forums/...6/detailed-guide-hosting-warcraft-iii-187509/

If none of the above helps, could you perhaps show a screenshot of a message and when it is being showed?
Your saying this gets displayed when you create the game??
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
He hasn't been on here in 6 months :/ I don't know any other way to get in touch with him

ur are sure ur firewall dont block it?

i got same problem and i can host only if i turn off firewall a bit.(indifferent what game)
(yea i know about router portfowarding but at my case that isnt worked :D) but maybe u can try that too .

anyway u can google it
http://www.instructables.com/id/How-to-host-in-Warcraft-3-Port-Forward-your-rout/
http://www.overclock.net/t/98275/how-to-host-warcraft-iii-battlenet-games-with-linksys-routers
 
Level 14
Joined
Apr 20, 2009
Messages
1,543
Not only can you allow warcraft 3 as an exception in your firewall (or as shadowvzs suggested, completely turn off the firewall)

But also you'd need to forward the ports of your router that are associated with hosting in warcraft 3.
In the option menu at the warcraft 3 main menu there is also an option to set the ports to a specific number, which you can then use to forward in your router.

Check the tutorial I posted earlier to see how port forwarding works.

It's easier then you think...
 
Level 2
Joined
Jan 9, 2009
Messages
17
Its not my hosting, its the map. I can't create the game, when I try to create a game with this map it says "game not found". Try hosting the map yourself and tell me what happens
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,255
JASS:
function Qr takes handle h returns integer
return h
return 0
endfunction
Map uses typecasting exploit. As such it will not function in recent versions of WarCraft III.

The fix usually is quite simple if an easy to edit version of the map is available. It involves emulating all type casting using the newly added natives.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,255
The version before PurplePoot optimized and / or widgitized it.

I advise waiting till he comes back. He has regually gone though periods of inactivity in the past and these probably coenside with real life activities such as university.

He is present on many websites as well so even if he becomes inactive here there should be atleast 1 where he remains active.
 
Level 14
Joined
Apr 20, 2009
Messages
1,543
Map uses typecasting exploit. As such it will not function in recent versions of WarCraft III.

The fix usually is quite simple if an easy to edit version of the map is available. It involves emulating all type casting using the newly added natives.

Could you please tell me what this exploit is? I haven't seen it before.
Was it possible in earlier versions of wc3 to return something that was not supposed to be returned? Sounds like a strange exploit to me... I would love to know how it worked.

I started map editing a few weeks ago after a break of 1 year, I might've not picked up some important info that I still need to know...
 
Last edited:

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,255
Could you please tell me what this exploit is? I haven't seen it before.
History, it does not mater anymore.

But for those interested it was in older version of WC3 you could typecast (change the type of a value) using multiple returns in a function. The syntax checker would only test the type of the last made return so you could get a function to change the type of a value. The most common function was H2I which had the structure as follows.

JASS:
function H2I takes handle h returns integer
    return h
    return 0
endfunction

The functionality of this function was idential to GetHandleId (which was introduced when they fixed this bug) but slower.

A problem was this bug allowed you to change the low level value of a parameter to any type. People often used it to convert integers back into handles of some form which is now nolonger possible. This often resulted in crashes if the handle became dereferenced or bugs as the integer did not reference count handles to prevent recycling.

The reason the bug was removed was because of the strange behaviour of typecasting to "code". Code variables were some kind of pointer to a function or procedure in assembly so by typecasting an integer to it that told it to read from a JASS array you could get the WC3 game engine to execute any x86 assembly code. This was a major security flaw and had to be removed after some malicious person genreated a fake DotA Allstars clone map which deleted all maps a user had downloaded. Potentially, people could have got WarCraft III to download viruses, torjens or even kill your OS (delete crutial files the OS needs to function) so this had to be removed.
 
Level 14
Joined
Apr 20, 2009
Messages
1,543
History, it does not mater anymore.

But for those interested it was in older version of WC3 you could typecast (change the type of a value) using multiple returns in a function. The syntax checker would only test the type of the last made return so you could get a function to change the type of a value. The most common function was H2I which had the structure as follows.

JASS:
function H2I takes handle h returns integer
    return h
    return 0
endfunction

The functionality of this function was idential to GetHandleId (which was introduced when they fixed this bug) but slower.

A problem was this bug allowed you to change the low level value of a parameter to any type. People often used it to convert integers back into handles of some form which is now nolonger possible. This often resulted in crashes if the handle became dereferenced or bugs as the integer did not reference count handles to prevent recycling.

The reason the bug was removed was because of the strange behaviour of typecasting to "code". Code variables were some kind of pointer to a function or procedure in assembly so by typecasting an integer to it that told it to read from a JASS array you could get the WC3 game engine to execute any x86 assembly code. This was a major security flaw and had to be removed after some malicious person genreated a fake DotA Allstars clone map which deleted all maps a user had downloaded. Potentially, people could have got WarCraft III to download viruses, torjens or even kill your OS (delete crutial files the OS needs to function) so this had to be removed.

Thank you so much!

So in order to make sure that the map works in the latest version all that has to be done is make sure that there are no multiple returns and/or invalid ones? Simple! :D

And b.t.w. I did hear about that security flaw, I just didn't know about the code behind it, thanks once again :)!
And I see how devastating that security flaw can be now 0.o
Giving everyone the ability to execute assembly code through a wc3 map? That's like sending a gun to everyone on the planet...
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,255
So in order to make sure that the map works in the latest version all that has to be done is make sure that there are no multiple returns and/or invalid ones? Simple! :D
Not nescescarilly as you have to make sure the map functions the same which can be easier said that done. Without extensive testing I made it to a 75% accuracy with the one NotD map. Most systems worked but some were noticably bugged (the source I could not be bothered to find out as I fufilled my side of the serivice). Just do not think it will be easy, especially in a map made by someone who was skilled with JASS at the time.
 
Level 14
Joined
Apr 20, 2009
Messages
1,543
Not nescescarilly as you have to make sure the map functions the same which can be easier said that done. Without extensive testing I made it to a 75% accuracy with the one NotD map. Most systems worked but some were noticably bugged (the source I could not be bothered to find out as I fufilled my side of the serivice). Just do not think it will be easy, especially in a map made by someone who was skilled with JASS at the time.

Okay so let's get this straight:

You have to remove all the typecasts and then find an alternative for the typecasts that are being used?
As in: all functions that used typecasting need to be remade in an alternative way in order to make it work again?

Then I guess the difficulty in fixing this lies on the same level as the creator of the map...

Thanks
 
Status
Not open for further replies.
Top