Additional Info
|
Ok, Kongregate now support games made with unity3d, and since this forum is called "KongregateHack", i thought that a tut about how to hack unity3d games efficiently cannot be bad...
|
Additional Info
|
awesome job on the tut, this is just what we need, now we will be ready for when people start requesting hacks for unity games.
+1 karma for it. |
Additional Info
|
Ahh, CIL. Long time no see.
For future reference: http://en.wikipedia.org/wiki/List_of_CIL_instructions Edit: Sorry, didn't see you there. @_@ |
Additional Info
|
Quote from: "Zirak" Ahh, CIL. Long time no see. Quote from: "Kazuru" You can see the whole list of CIL instructions here. @Topic Great tutorial, there isn't as much difference between unity3d and flash as I thought. (broken image removed) |
Additional Info
|
Kind of gimped from here but in an easy to read and clear format (broken image removed)
I recommend people write a simple command line program to strip out the irrelevant information and replace it with the correct bytecode. I'd release mine but it's poorly coded and I don't want people to see what a shit C# coder I am since there's probably a million things that I could improve/do better :roll: |
Additional Info
|
Derek, MOST of the hacking tuts are gimped from somewhere, it's giving the time and dedication into making it into a clear and concise walkthrough that's the hard part, who's going to shift through two pages of rambling when it's all in one clear post?
Check before you post, someone may have beaten you there. |
Additional Info
|
[spoiler=big quote:1o6jgkwg]
Quote from: "Kazuru" First, we will translate the two instructions in the brackets. In the CIL instructions, we can see that "this" is 0x02. Then the code gets an object (0x7B) and calls one of its methods (0x6F). Cause we don't know the adresses of the objects and function, we will use wildcards. We have : Im this is where i get lost. How do you know that "this" is 02? On that list you referenced, it says: Code: [Select] 0x02 ldarg.0 Load argument 0 onto the stack. So how does that translate to "this"? Also, how do you know how many wildcards to insert? |
Additional Info
|
Quote from: "Aerelyte" how do you know how many wildcards to insert?32 bit address system needs 32bits/2 words/4 bytes some commands use int16/int8 though. for instance 2F <int8> branch if greater than or equal to for more specific info, i highly suggest reading these whitepages http://www.ecma-international.org/publi ... MA-335.pdf partition 3 will have the most relevant info for you. the table of contents for partition 3 is on page 326. I use this AoB tool to make all the AoBs I post. Try the online version if you dont feel like downloading it. |
Additional Info
|
Yeah I'm not getting how you got 0x02 from "this". The site that you linked us to didn't make any sense to me.
Anyway you can help out with the translation? I've been going crazy trying to find a way to make this work :shock: |
Additional Info
|
...WOW I have no clue how you got that.
lol Why couldn't they just put "this" in there instead of that :roll: |
Additional Info
|
awesome! just found out Ildasm was a thing. takes all the guesswork out of figuring out how the compiler decided to build the assembly dll
I use this AoB tool to make all the AoBs I post. Try the online version if you dont feel like downloading it. |
Additional Info
|
Quote from: "kolonelkadat" awesome! just found out Ildasm was a thing. takes all the guesswork out of figuring out how the compiler decided to build the assembly dllNote that Ildasm is fairly buggy and most obfuscators use the SuppressIldasmAttribute. Quote from: "Aerelyte" Im this is where i get lost. How do you know that "this" is 02? On that list you referenced, it says:http://stackoverflow.com/questions/1785 ... 94#1785394 |
Additional Info
|
Quote from: "kolonelkadat" 32 bit address system needs 32bits/2 words/4 bytesTechnically the word size on any i86, later than a 386 is 32 bits. (x64 is 64 bits.) What Microsoft call a word size and a double word size is down to the 16 bit legacy of the original 8086/8088 CPUs.[1] Basically, don't use word as it gets confusing, unless you're using a sensible processor (e.g. ARM). [1] Word size is the size of the CPU's databus, not the size of an instruction, an instruction's parameter or owt else. |
Additional Info
|
:oops: fair enough. 16bit asm was my second language. old habits die hard.
I use this AoB tool to make all the AoBs I post. Try the online version if you dont feel like downloading it. |