That's the dumbest thing I have heard. Assembly is created FROM the bytecodes. Every process on your computer is just a series of bytes, with a regular entry point, and everything. In the Java Virtual Machine, there are custom debuggers. If you attach a debugger to a process that has executed applet memory, these bytes will convert to assembly, so you can read each instruction. That was a very very very stupid comment, especially coming from a PROGRAMMING mod, you should know this.
The packet editor is just done through library injection. The emulator on the other hand, is much more difficult. X0X runs completely off packets, as it completely emulates the client.
And they cannot fix "packet-editing". Unless their algorithm changes drastically, and is very hard to reverse or find. Or if they completely change their protocol, of course.
I didn't think that far really. I'm just wondering why you go through all this crap with packet editing when you could just modify the actual rs client using bytecode injections?
And yeah, i was thinking about a rewriting of the protocol.
We're reaching a paroxism of the mystical sphere.
What's the modification at the end ? byte code or the supposedly generated asm off the bytecode or the jvm or what ??
You wrote a packet intercepting proxy ? ok gratz (this doesn't really need a huge technical knowledge nor does it need deep assembly knowledge), now, did you end up decypting it ? if so , you could help the community posting the decryption process you ended up with.
Spelljohan question wasn't "stupid", you said it was easy to modify 1 thing in the assembly BUT there was an error in your description lemme analyse it
you said :
modify
mov eax,dword ptr ds:[eax+0x1CC]
cmp eax,2
into
mov eax,2
cmp eax,2
Which is cannot run, because the length of (mov eax,dword ptr ds:[eax+0x1CC]) is bigger than (mov eax,2) which will lead you to a gap in the machine code translation.
mov eax,dword ptr ds:[eax+0x1CC] => 66678B80CC010000
mov eax,2 => 66B802000000
to fill these in order to keep consistency you'd need to add some "NOP" (90) at the end so that the code do not get stuck with the old "00"
so at the end you shall end up with :
mov eax,2
nop
nop
cmp eax,2
I still do not fully understand your aim, and i do not see ANY kind of help to the community , i'm all hope this isn't some kind of "Hail me back !", none of the good people here are doing that.
I invite you to rewrite the whole thing in a more appropriate manner avoiding (i did and i'll be doing) and going into facts : Here are the packets , here is how i am decrypting them etc ...