нашел тут описание пакета инит
А вот исходники пакета Инит ява сервера Интерлюды.
public class Init
{
private static byte[] _content =
{
(byte) 0x00,
(byte) 0xfd,
(byte) 0x8a,
(byte) 0x22,
(byte) 0x00, // session id
(byte) 0x5a,
(byte) 0x78,
(byte) 0x00,
(byte) 0x00, // protocol revision 0x785a or 0xc621, c621 has additional gameguard authentication
// dummy public key
(byte) 0x0e, (byte) 0xea, (byte) 0x0b, (byte) 0xf3, (byte) 0x3a,
(byte) 0x65, (byte) 0xc6, (byte) 0xc4, (byte) 0x62, (byte) 0xc7,
(byte) 0x77, (byte) 0x2e, (byte) 0x95, (byte) 0xde, (byte) 0xbc,
(byte) 0x8c, (byte) 0xe0, (byte) 0xf1, (byte) 0xc9, (byte) 0x87,
(byte) 0xcb, (byte) 0x5f, (byte) 0xe5, (byte) 0x0e, (byte) 0x85,
(byte) 0xa6, (byte) 0xf4, (byte) 0xac, (byte) 0x49, (byte) 0xb6,
(byte) 0x29, (byte) 0xe3, (byte) 0xa5, (byte) 0x11, (byte) 0xbe,
(byte) 0x85, (byte) 0x5d, (byte) 0x4c, (byte) 0x2a, (byte) 0x87,
(byte) 0x0d, (byte) 0xd5, (byte) 0x17, (byte) 0x48, (byte) 0x87,
(byte) 0x0a, (byte) 0xd4, (byte) 0xa8, (byte) 0x9b, (byte) 0x9b,
(byte) 0x8b, (byte) 0x0f, (byte) 0xad, (byte) 0xa3, (byte) 0x4d,
(byte) 0x60, (byte) 0x23, (byte) 0x6f, (byte) 0x2c, (byte) 0x53,
(byte) 0xcc, (byte) 0xfb, (byte) 0x90, (byte) 0xea, (byte) 0xa2,
(byte) 0x91, (byte) 0x24, (byte) 0x0e, (byte) 0x55, (byte) 0x6b,
(byte) 0xb7, (byte) 0xb6, (byte) 0x6e, (byte) 0x30, (byte) 0x26,
(byte) 0x7f, (byte) 0xf9, (byte) 0x49, (byte) 0xd8, (byte) 0xb2,
(byte) 0x2a, (byte) 0x47, (byte) 0x17, (byte) 0xce, (byte) 0xd7,
(byte) 0x10, (byte) 0xfc, (byte) 0x7d, (byte) 0x6f, (byte) 0xbc,
(byte) 0x83, (byte) 0xb4, (byte) 0xd4, (byte) 0x53, (byte) 0x04,
(byte) 0x6e, (byte) 0x08, (byte) 0x14, (byte) 0x7b, (byte) 0x92,
(byte) 0xca, (byte) 0xb1, (byte) 0x52, (byte) 0x55, (byte) 0xf7,
(byte) 0x45, (byte) 0x4c, (byte) 0xaa, (byte) 0xe9, (byte) 0xb0,
(byte) 0x01, (byte) 0x1e, (byte) 0xac, (byte) 0xe2, (byte) 0x9b,
(byte) 0x68, (byte) 0x21, (byte) 0x29, (byte) 0x68, (byte) 0x21,
(byte) 0xe1, (byte) 0x93, (byte) 0x70, (byte) 0xbd, (byte) 0x3f,
(byte) 0x13,
(byte) 0x16,
(byte) 0xab,
// not sure what these are for
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00,
//C6 values
(byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30,
(byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30,
(byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30,
(byte) 0x30, (byte) 0x30
};
public Init(byte[] publickey)
{
System.arraycopy(publickey, 0, _content, 9, publickey.length);
}
public byte[] getContent()
{
return _content;
}
public int getLength()
{
return _content.length + 2;
}
}
dmitry501
09.11.2007, 11:21
Kirpi4, то, что я нарыл: пакет инит зашифрован сначала xor, поверх blowfish. в нем приходит ключ xor для расшифрации, RSA ключ для расшифрации пакета RequestAuthLogin и блоуфиш ключ для расшифрации остальных пакетов.
З.Ы. у кого-нить есть исходник на делфи, реализующий дешифрацию rsa?
Стало интересно самому про RSA. Для дельфи практически все используют библиотеку FGInt от Walied Othman для работы с большими числами.
Вот пример http://www.cracklab.ru/f/index.php?acti ... =1&page=-1 (http://www.cracklab.ru/f/index.php?action=vthread&topic=3519&forum=1&page=-1)
di-2 http://www.isyst.ru/download/rsa_demo.rar (http://www.isyst.ru/download/rsa_demo.rar)
Исходные тексты на Delphi по реализации алгоритма шифрования RSA как пособие для начинающих программистов. RSA алгоритм относится к ассиметричным алгоритмам шифрования, его главное достоинство - имея открытый ключ и зная алгоритм шифрования невозможно повторить закодированое сообщение, на базе алгоритма RSA работает шифрование PGP, реализуются хэш-функции (элетронно-цифровая подпись). Программа является лениво исполненным интерфейсом для модуля работы с большими числами от Walied Othman (также в этом архиве).
Применительно к Л2 вот исходник от Hint-а
http://www.postpacific.com/forums/showp ... stcount=20 (http://www.postpacific.com/forums/showpost.php?p=103597&postcount=20)
function RSAEncrypt(a,p:string):string;
var
sD,sR,sM:string;
m,e,d,r:TFGInt;
begin
if length(a)>14 then setlength(a,14);
while length(a)<14 do a:=a+#0;
if length(p)>16 then setlength(p,16);
while length(p)<16 do p:=p+#0;
sD:=a+p+#0#0#0#0;
sM:=rsakey;
Base10StringToFGInt('65537',e);
Base256StringToFGInt(sD,d);
Base256StringToFGInt(sM,m);
FGIntMontgomeryModExp(d,e,m,r);
FGIntToBase256String(r,sR);
result:=sR;
end;[/quote][/quote:7fa78]
Удачи
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot