нашёл пару косяков, переписал функции...
Вот функцию переписал с вышеуказанной:
PHP код:
public static byte[] AntiXor(byte[] s)
{
long key, b;
int i;
byte[] b_temp;
b_temp = new byte[4];
i = s.length - 8;
key = ToInt32(s, i);
while (i >= 7)
{
i = i - 4;
b = ToInt32(s, i);
b = b ^ key;
key = key - b;
System.arraycopy(toBytes(b, true), 0, b_temp, 0, 4);
System.arraycopy(b_temp, 0, s, i, 4);
}
return s;
}
Функция конверта из лонга в байты:
PHP код:
public static byte[] toBytes(long val, boolean bigEndian)
{
byte[] res = new byte[8];
if (bigEndian)
{
res[0] = (byte)(val>>56&0xFF);
res[1] = (byte)(val>>48&0xFF);
res[2] = (byte)(val>>40&0xFF);
res[3] = (byte)(val>>32&0xFF);
res[4] = (byte)(val>>24&0xFF);
res[5] = (byte)(val>>16&0xFF);
res[6] = (byte)(val>>8&0xFF);
res[7] = (byte)(val&0xFF);
} else
{
res[7] = (byte)(val>>56&0xFF);
res[6] = (byte)(val>>48&0xFF);
res[5] = (byte)(val>>40&0xFF);
res[4] = (byte)(val>>32&0xFF);
res[3] = (byte)(val>>24&0xFF);
res[2] = (byte)(val>>16&0xFF);
res[1] = (byte)(val>>8&0xFF);
res[0] = (byte)(val&0xFF);
}
return res;
}
из байта в лонг переделываю этой функцией:
PHP код:
public static int ToInt32(byte[] bytes, int offset) {
int ret = 0;
for (int i=0; i<4 && i+offset<bytes.length; i++) {
ret <<= 8;
ret |= (int)bytes[i] & 0xFF;
}
return ret;
}
Вот результат:
Пакет который приходит изначально от сервера - 02-13 20:32:09.911: I/System.out(1637): BA004511EBAFFAAAEB7F8AD5BC3F38CA9FD86156CC6D1DCB26 D5E7A5E497D87BADA3256418297DAAA0F2CA8593B92856517D 40C9D6A7462C9DBB73788F19AC9922A276C97674674D431937 51512DC07D32013B92622D2291AA98EE1AB649ABFEDC711A56 BC64061EA4537BC5088B1663B7B6CF2578AC926282F4645202 924C5B406B64C73B2CD35F1C01EC8091601F37E1297B1D79AE A1B44FFC2FC470AF431E213EB23C72E16484C99DF9200FC7E0 5EC44E94F072BE45B7620D
Пакет в котором я отсёк размер пакета - 02-13 20:32:09.921: I/System.out(1637): 4511EBAFFAAAEB7F8AD5BC3F38CA9FD86156CC6D1DCB26D5E7 A5E497D87BADA3256418297DAAA0F2CA8593B92856517D40C9 D6A7462C9DBB73788F19AC9922A276C97674674D4319375151 2DC07D32013B92622D2291AA98EE1AB649ABFEDC711A56BC64 061EA4537BC5088B1663B7B6CF2578AC926282F4645202924C 5B406B64C73B2CD35F1C01EC8091601F37E1297B1D79AEA1B4 4FFC2FC470AF431E213EB23C72E16484C99DF9200FC7E05EC4 4E94F072BE45B7620D0000
Пакет который я декодил по начальному ключу блоуфиша (кстати проверьте плиз у себя, ключ интерлюдовский, у вас так же получилось?) - 02-13 20:32:09.921: I/System.out(1637): D1A89279E77E010F60C4CD4FB62DFF6E471CBFE205CD45E5C4 C5FCC40712DC03054E2BC11165240ED0099D850EAED6F9B608 2972CC03CE72CDF36AEB32863EFD42016649D94D4BC26166CC AFF5A2411B4F851BB55B8C0807AA0B5C6DCFECC34941B048D2 18C7C8BFCD74DC9DF0388D59B5619158A6B4E216525B8C2A11 55AE866F2173015A2D22F4C629DFB78981337B83C74D68C5EC 5C9BC776C317482901612311B720B660F27D758A2ABE584032 B17DAE52B3DF01CF72FA1D
А это пакет который декодил антиксором, который опубликован выше - 02-13 20:32:09.932: I/System.out(1637): D1A89279E77E00000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000052B3DF01CF72FA1D
Где косяк??? я уже себе все мозги сломал, дальше инита продвинутся не могу... обидно... на пхп по моему и то проще это реализовать...