Не знаю на всех ли серверах у них одинаковая защита(думаю что да), конкретно смотрел на х10 новом сервере, админы не сильно заморачивались), защита разбита на 2 подпункта 1 - dll которая кодирует пакеты отправки приема и длл которая отслеживает память, (вызывается из той же длл Cliexd.dll), сегодня разберем только защиту начинающуюся на гейм сервере (которая со 2 пакета) защита идет так : "оригинальный пакет"> стандартная шифрация > накрутка сервера вот эту "накрутку" и разберем
Код:
1300C399 8B4D E8 MOV ECX,DWORD PTR SS:[EBP-0x18] переносит в ecx стек с 0)
1300C39C 83C1 01 ADD ECX,0x1 доб 1
1300C39F 894D E8 MOV DWORD PTR SS:[EBP-0x18],ECX закидываем в стек 1
1300C3A2 8B55 E8 MOV EDX,DWORD PTR SS:[EBP-0x18] переносим в edx 1
1300C3A5 3B55 10 CMP EDX,DWORD PTR SS:[EBP+0x10] сравниваем значение стека с edx(щетчик если равно выйдем из цикла)
1300C3A8 7D 41 JGE SHORT CliExt.1300C3EB переход при равно(выйдет из секции шифровки)
1300C3AA A1 28080313 MOV EAX,DWORD PTR DS:[0x13030828] перем в eax 1
1300C3AF 25 07000080 AND EAX,0x80000007 лог операция с eax и 2147483655(фактически округляет до 7 цифр(0-7)
1300C3B4 79 05 JNS SHORT CliExt.1300C3BB если рез операции отр переходим
1300C3B6 48 DEC EAX
1300C3B7 83C8 F8 OR EAX,0xFFFFFFF8
1300C3BA 40 INC EAX
1300C3BB C1E0 05 SHL EAX,0x5 лог сдвиг eax влево на 5(умножение на 2 в 5(32))
1300C3BE 8B4D E8 MOV ECX,DWORD PTR SS:[EBP-0x18] переносим в ecx значение из стека(1)
1300C3C1 81E1 1F000080 AND ECX,0x8000001F выполняем над ecx and(фактически округляем число до 32)
1300C3C7 79 05 JNS SHORT CliExt.1300C3CE
1300C3C9 49 DEC ECX
1300C3CA 83C9 E0 OR ECX,0xFFFFFFE0
1300C3CD 41 INC ECX
1300C3CE 0FB69408 30080>MOVZX EDX,BYTE PTR DS:[EAX+ECX+0x1303083> складывает ecx +eax + магическое число 318965808 и помещает его в edx(2 посл)
1300C3D6 8B45 08 MOV EAX,DWORD PTR SS:[EBP+0x8] помещает в еах адрес начала ключа
1300C3D9 0345 E8 ADD EAX,DWORD PTR SS:[EBP-0x18] помещаем в edx начало ключа
1300C3DC 0FB608 MOVZX ECX,BYTE PTR DS:[EAX] добавляем номер текущего байта шифровки
1300C3DF 31D1 XOR ECX,EDX хорит с edx
1300C3E1 8B55 08 MOV EDX,DWORD PTR SS:[EBP+0x8] перемеает в edx начальное значение ключа
1300C3E4 0355 E8 ADD EDX,DWORD PTR SS:[EBP-0x18] добавляет к edx текущий номер байта ключа
1300C3E7 880A MOV BYTE PTR DS:[EDX],CL переписывает его
1300C3E9 ^EB AE JMP SHORT CliExt.1300C399 на 27 пунктов вверх к следующему байту
зы где 1 имеется ввиду 1 байт ключа(2 по щету)