И так. В общем суть вопроса.
Где могут быть функции Шифровки исходящего и дешифровки входящего трафика.... Где же админам было наиболее выгодно вставить его... Какие функции перехвачивают... Помогите плиз)
Кстати алгортим шифрования пакетов у ССP - RC4
вот так вот выглядят функции шифровки в сервер части...
Код:
final int arcfour_byte()
{
int x;
int y;
int sx, sy;
x = (this.x + 1) & 0xff;
sx = (int)state[x];
y = (sx + this.y) & 0xff;
sy = (int)state[y];
this.x = x;
this.y = y;
state[y] = (byte)(sx & 0xff);
state[x] = (byte)(sy & 0xff);
return (int)state[((sx + sy) & 0xff)];
}
public synchronized boolean encrypt(byte src[], int srcOff, byte dest[], int destOff, int len)
{
if(!_inited)
return false;
int end = srcOff + len;
int si = srcOff;
for(int di = destOff; si < end; di++)
{
dest[di] = (byte)((src[si] ^ arcfour_byte()) & 0xff);
si++;
}
return true;
}
public boolean decrypt(byte src[], int srcOff, byte dest[], int destOff, int len)
{
if (encrypt(src, srcOff, dest, destOff, len))
return true;
return false;
}
в сенд пакете оригинальную функцию шифровки подменяют, насчет входящего, думаю где-то в той функции которая вызывает recv, а потом собирает TNetworkPacket и в АддНетворк пускает тоже есть вызов ориг функции дешифровки
proc RequestAuthLogin_Hook uses esi, pLogin:DWORD,pPassword:DWORD,Param:DWORD
local loginBuf[256]:WORD
local passBuf[256]:WORD
xor eax,eax
mov eax, [pLogin] ;если я правильно понял, то ты тут копируешь 2 (UNICODE) или 4(ANSI) символа из строки в eax, а не адрес, если хочешь скопировать адрес (указатель) на строку в eax то пиши: lea eax,pLogin или mov eax, offset pLogin не проверял, но должно быть одно и тоже.
invoke ChekLoginPass,loginBuf,eax,0Eh
MOV ESI,ECX
MOV ECX,[pPassword] ;тогда тут так: lea eax,pPassword или mov eax, offset pPassword
invoke ChekLoginPass,passBuf,ecx,10h
MOV EDX,[Param] ;тогда тут так: lea eax,Param или mov eax, offset Param
;MOV DWORD[B6AEB4],EDX ; тут писать DWORD не обязательно, если работаешь с 32 битным регистром, там и так DWORD будет
MOV EAX,DWORD[ESI+4Ch] ; и тут можно без DWORD
MOV DWORD [EAX+111ECh],1
MOV ECX,DWORD[ESI+4Ch] ; и тут можно без DWORD
MOV DWORD[ECX+111E8h],1
MOV EAX,DWORD [ESI+4Ch] ; и тут можно без DWORD
;ADD ESP,18h
LEA EDX,DWORD[EAX+10858h] ; и тут можно без DWORD
PUSH EDX
CALL Engine.0084F980 ; <<<--- Функция установки коннекта
ret
endp
Извиняюсь за грамотейство, не исключено, что я там наплужил или нет, ночь всетаки..))
__________________
Блекджек же без шлюх практически безопасен.
Последний раз редактировалось mOBSCENE, 13.08.2011 в 04:30.
Причина: +
в ЕАХ нам надо указатель на строку)
Точнее указатель на пустой buf для логина.
Зачем - без понятие.
Его клиент использует при проверке на "пустоту" логина и пасса)
хотя указатель на логин и пасс приходит в аргументах самой функции О_о