System MapLock

Strilanc

Veteran Scripter
Reaction score
42
You missed the key descriptor: "easily"
I would never classify compiling vJass to Jass as easy. Also, this is not compiling vJass to Jass, it is decompiling it, analyzing it for several variable patterns that could possibly denote the existence of other code to look for and remove based on what this code is.
Quite a lot of logic to program. It is very unlikely to make it into the automated cheat-add bots because of how that.

:rolleyes:

You *really* have a skewed concept of what is and is not easy for computers to do. None of the things you described are complicated.

How to easily identify an obfuscated C2I functions:
- Find all function and variable declarations. Parsing their type and name is not hard. Keep track of their name and type using a dictionary.
- For each function, find all return statements, use previously mentioned dictionary to figure out type being returned. Take into account that 'function X' is a code type, ints can be implicitly converted to reals, etc. The hard part here is dealing with compound expressions, but we can't use code types that way, so we can just ignore those if we want!
- List all non-code functions which return a code type.
 

Azlier

Old World Ghost
Reaction score
461
There's not really much to develop, with it failing on Battle.net...
 

Jesus4Lyf

Good Idea™
Reaction score
397
Despite my apparent activity, I've actually had little time.

But no, it still fails on battle.net since the fix, I believe.

But I think there may be patterns, which means it may still be workable yet. But I've not the time to investigate for maybe another couple of weeks, and then we'll see how I feel about it. Lol.

But thanks for expressing your interest.
 

Azlier

Old World Ghost
Reaction score
461
Might as well release a 1.24 version, aye? ;)
 

Azlier

Old World Ghost
Reaction score
461
Untested. Jesus4Lyf didn't tell me for certain if it would work or not. He did say he managed to execute code from arrays, though.
JASS:
function ReturnCode takes code c returns code
    return c
endfunction

function C2I takes code c returns integer
    call ReturnCode(c)
    if false then
        return 0
    endif
endfunction
 

quraji

zap
Reaction score
144
JASS:
function ReturnCode takes code c returns code
    return c
endfunction

function C2I takes code c returns integer
    call ReturnCode(c)
    if false then
        return 0
    endif
endfunction

I don't get this..what's the point? Does this even compile? (no 'else' in the if-statement, nor return outside the if-statement)
 

Trollvottel

never aging title
Reaction score
262
Seems to compile. And because nothing is returned, it just returns the last returned value o0. Thats a bug whcih blizzard should fix asap since it was the reason for 1.24(b)
 

quraji

zap
Reaction score
144
Seems to compile. And because nothing is returned, it just returns the last returned value o0. Thats a bug whcih blizzard should fix asap since it was the reason for 1.24(b)

It compiles? Strange. I can't test it because I don't have WC3 on this computer.

What do you mean it returns the last returned value? Of any function? That sounds really weird, but if so that could be the key that actually makes this work..
 

Jesus4Lyf

Good Idea™
Reaction score
397
He did say he managed to execute code from arrays, though.
No I didnt? (Not on 1.24.)
I did say it isn't possible, however.

Link regarding the code Azlier showed.

And this still can't be done on 1.24. People don't seem to get what I'm saying when I say Blizz fixed I2C/C2I outside of the return bug.
 

Azlier

Old World Ghost
Reaction score
461
>No I didnt? (Not on 1.24.)

Stop confusing me! Blaaah!
 
General chit-chat
Help Users

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top