Quote:
your wrong. Old no_crc method works just fine ^^ ( i along with my bro made one)
BUT
oh noes, it looks like there is some new type of client check, that deals with the version of the client.
|
Quote:
You should never begin a sentence like this, unless you are 100% sure. :-/
your wrong.Well you forgot the call to list.csv, thats why your dekaron.exe does not crash.
The method still works of course, but the section nebular made will not work now. I need to do some more researches but I think I already know why...
We need to change the section because the crc functions have been modified pretty much - thanks Sparky.
Its not a new client check, it is the old version.dat check which has been modified. ( In 4.6.6 they use the same calculation for version.dat like they use for the crc)
Quote:
This is his research any help would be greatly appreciated.
[CRCCHECK size %u [CRCCHECK recv %u, %u, %u, %u check.csv list.csv ms_pInstance <|® 0ÐQ PÅQ ÀÏQ °¿Q ³Q SceneInit SceneLogin SceneLogo SceneCharSelect SceneCharCreate ScenePregame SceneGame2 SceneMapTool SceneActionScript SceneTest SceneLoginTest >> CHECKOUTCMD Start Fail
|
You are listing some ASCII strings, changing/adding them will not help to make the no_crc. (Well at least the listed ones...)
We need to change Assembler commands, they look like this in OllyDbg:
Code:
00C4015F 8B0485 4074BC00 MOV EAX,DWORD PTR DS:[EAX*4+BC7440]
00C40166 C1E9 08 SHR ECX,8
00C40169 31C8 XOR EAX,ECX
00C4016B 89D1 MOV ECX,EDX
00C4016D C1E9 08 SHR ECX,8
00C40170 0FB6C9 MOVZX ECX,CL
00C40173 81E1 FF000080 AND ECX,800000FF
00C40179 8943 18 MOV DWORD PTR DS:[EBX+18],EAX
00C4017C 79 08 JNS SHORT wierd.00C40186
00C4017E 49 DEC ECX
00C4017F 81C9 00FFFFFF OR ECX,FFFFFF00
00C40185 41 INC ECX
00C40186 89C6 MOV ESI,EAX
00C40188 0FB6C9 MOVZX ECX,CL
00C4018B 81E6 FF000000 AND ESI,0FF
00C40191 31F1 XOR ECX,ESI
00C40193 8B0C8D 4074BC00 MOV ECX,DWORD PTR DS:[ECX*4+BC7440]
00C4019A C1E8 08 SHR EAX,8
00C4019D 31C1 XOR ECX,EAX
00C4019F 89D0 MOV EAX,EDX
00C401A1 C1E8 10 SHR EAX,10
00C401A4 0FB6C0 MOVZX EAX,AL
00C401A7 25 FF000080 AND EAX,800000FF
00C401AC 894B 18 MOV DWORD PTR DS:[EBX+18],ECX
00C401AF 79 07 JNS SHORT wierd.00C401B8
00C401B1 48 DEC EAX
00C401B2 0D 00FFFFFF OR EAX,FFFFFF00
00C401B7 40 INC EAX
00C401B8 89CE MOV ESI,ECX
00C401BA 0FB6C0 MOVZX EAX,AL
00C401BD 81E6 FF000000 AND ESI,0FF
00C401C3 31F0 XOR EAX,ESI
00C401C5 8B0485 4074BC00 MOV EAX,DWORD PTR DS:[EAX*4+BC7440]
00C401CC C1E9 08 SHR ECX,8
00C401CF 31C8 XOR EAX,ECX
00C401D1 89D1 MOV ECX,EDX
00C401D3 C1E9 18 SHR ECX,18
00C401D6 81E1 FF000080 AND ECX,800000FF
00C401DC 8943 18 MOV DWORD PTR DS:[EBX+18],EAX
00C401DF 79 08 JNS SHORT wierd.00C401E9
00C401E1 49 DEC ECX
00C401E2 81C9 00FFFFFF OR ECX,FFFFFF00
00C401E8 41 INC ECX
00C401E9 89C6 MOV ESI,EAX
00C401EB 0FB6C9 MOVZX ECX,CL
00C401EE 81E6 FF000000 AND ESI,0FF
00C401F4 31F1 XOR ECX,ESI
00C401F6 C1E8 08 SHR EAX,8
00C401F9 33048D 4074BC00 XOR EAX,DWORD PTR DS:[ECX*4+BC7440]
I would like to know what "%[^\n]\n" means, does anyone have an idea?
(It should be normal C coding, after this string fscanf() gets called)