Показать сообщение отдельно
Старый 06.06.2008, 07:58   #134
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 51
Сказал Спасибо: 14
Имеет 36 спасибок в 11 сообщенях
alexsl пока неопределено
Восклицание все о том же, нид хелп

привет,
танцы с бубном по тихой приносят результат _но_ ...
ИМХО требуется сдвигать ключ, но у муну не получается.
знающие люди подскажите как это дело реализовать?
пробывал так:
delphi Код:
old := Key[0];   old := old or (Key[1] shl $08);   old := old or (Key[2] shl $10);   old := old or (Key[3] shl $18);    old := old+size;    Key[0] := old;    Key[1] := (old shr $08);    Key[2] := (old shr $10);    Key[3] := (old shr $18);

но не получается

данные для расшифровки (юзаю скил, и пишу в чат 111111111)

Код:
A6 71 7B 7B 32 AF 8B 1A 93 A6 
BC 6B 61 61 28 B5 91 00 93 A6
B2 65 6F 6F 26 BB 9F 0E 93 A6 
9F 9B 91 A0 E9 45 61 C1 66 62 68 59 10 BC 98 38 9F 9B 91 A0 E9 45 61 C1 66 62 68 59 10 BC 98 38 9F 9B 91 A0 E9 45 61 C1 66 62 68 59 10 BC 98 38 9F 9B 91 A0 E9 45 61 C1 66 62 68 59 10 BC 98 09 AE 9B 91 91 D8
C3 14 1E 1E 57 CA EE 7F 93 A6 
D9 0E 04 04 4D D0 F4 65 93 A6 
38 3F 35 04 4D E1 C5 65 65 62 68 59 10 BC 98 38 38 3F 35 04 4D E1 C5 65 65 62 68 59 10 BC 98 38 38 3F 35 04 4D E1 C5 65 65 62 68 59 10 BC 98 38 38 3F 35 35 7C E1 C5 54 54 
01 06 0C 3D 74 D8 FC 5C 65 62 68 59 10 BC 98 38 01 06 0C 3D 74 D8 FC 5C 65 62 68 59 10 BC 98 38 01 06 0C 3D 74 D8 FC 5C 65 62 68 59 10 BC 98 38 01 06 0C 0C 45 D8 FC 6D 54 
4A 4D 47 76 3F 93 B7 17 65 62 68 59 10 BC 98 38 4A 4D 47 76 3F 93 B7 17 65 62 68 59 10 BC 98 38 4A 4D 47 76 3F 93 B7 17 65 62 68 59 10 BC 98 38 4A 4D 47 47 0E 93 B7 26 54
93 94 9E AF E6 4A 6E CE 65 62 68 59 10 BC 98 38 93 94 9E AF E6 4A 6E CE 65 62 68 59 10 BC 98 38 93 94 9E AF E6 4A 6E FF 54 62 68 68 21
вот выходные данные, вроде все красиво

Код:
// скилл
2F E2 00 00 00 00 00 00 00 00 ; 93 35 0A 00 49 9D 24 91 ; 10
2F E2 00 00 00 00 00 00 00 00 ; 9D 35 0A 00 49 9D 24 91 ; 10
2F E2 00 00 00 00 00 00 00 00 ; A7 35 0A 00 49 9D 24 91 ; 10
// сау2
38 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 31 00 00 00 00 00 00 00 ; EC 35 0A 00 49 9D 24 91 ; 69
// скилл
2F E2 00 00 00 00 00 00 00 00 ; F6 35 0A 00 49 9D 24 91 ; 10
2F E2 00 00 00 00 00 00 00 00 ; 00 35 0A 00 49 9D 24 91 ; 10
// вот тут происходит сдвиг ключика (значение должно быть 31 а не 32)
// сай2 !!!
38 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 00 00 00 00 00 00 ; 39 35 0A 00 49 9D 24 91 ; 57
38 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 00 00 00 00 00 00 ; 72 35 0A 00 49 9D 24 91 ; 57
38 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 00 00 00 00 00 00 ; AB 35 0A 00 49 9D 24 91 ; 57
38 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 31 00 32 00 31 00 31 00 00 00 03 00 00 00 ; D8 35 0A 00 49 9D 24 91 ; 45
а это , сам код:

delphi Код:
var   old,temp,temp2,i: integer; begin     temp:= 0;     for i:= 0 to size-1 do     begin       temp2:= pck[i] and $ff;       pck[i]:= temp2 xor (Key[i and 7]and $ff) xor temp;       temp:=temp2;     end;     old := Key[0];    // имхо тут надо реализовать сдвиг ключа   // принимают участие 4 первых байта ключа    // old := old or (Key[1] shl $08); // данный метод работает не так как ожидалось   //  old := old or (Key[2] shl $10);   //  old := old or (Key[3] shl $18);     old := old+size;     Key[0] := old;  //   Key[1] := (old shr $08);  //   Key[2] := (old shr $10);  //  Key[3] := (old shr $18); end.

зы: или это вообще не сдвиг ключа?

Последний раз редактировалось alexsl, 06.06.2008 в 08:01.
alexsl вне форума   Ответить с цитированием