heh, currently I'm stuck in encryption (twofish to be more accurate)
I'll explain:
in crypt.cpp (injection)
in void NewGameCrypt::decrypt(unsigned char * in, unsigned char * out, int len)
you have this table:
static const BYTE sm_bData[] = { 0x05, 0x92, 0x66, 0x23, 0x67, 0x14, 0xE3, 0x62, 0xDC, 0x60, 0x8C, 0xD6, 0xFE, 0x7C, 0x25, 0x69 };
it's generated by a function in the client based on the seed of the game socket. currently injection will only work with Twofish encryption (2.0.3 and above) if the seed is 0x0100007f, thats why it doesnt work in OSI.
what I'm trying to do is get that function, but I dont have enough time to do it (hell, I had SATs/vestibular/abitur this weekend), in case you people wanna try it:
client 2.0.4
Code:
00425DFA |. E8 21610A00 CALL Client20.004CBF20 ; \twofish init
.
.
00425E03 |. 50 PUSH EAX ; arg1
00425E04 |. E8 27930800 CALL Client20.004AF130 ; unknown
.
.
00425E0E |. 68 00010000 PUSH 100 ; arg1
00425E13 |. E8 58620A00 CALL Client20.004CC070 ; unknown2
.
.
00425E1C |. 50 PUSH EAX ; arg2
00425E1D |. 51 PUSH ECX ; arg1
00425E1E |. E8 3D930800 CALL Client20.004AF160 ; unknown3
00425E23 |. 8D5424 2C LEA EDX,DWORD PTR SS:[ESP+2C] ; arg2
00425E27 |. 8D86 B0120300 LEA EAX,DWORD PTR DS:[ESI+312B0] ; arg1 - the 16 byte table for decrypt
00425E2D |. 52 PUSH EDX
00425E2E |. 50 PUSH EAX
00425E2F |. E8 EC930800 CALL Client20.004AF220 ; build the DWORD[4] table for decrypt
have fun ^^