принудительная синхронизация / проблемы синхронизации / PP
Модератор: 4epT
Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно

Ребят, очень смешно.kLabMouse писал(а):Только ета строчка
$func = 0x89 * 0x89;
На сегодняшний день поменялась. Ето префикс пакета
Я конечно понимаю что вы знаете все гораздо лучше меня.
И знаете как решить эту проблему.
А я нуп, который ничего не понимает.
КМ, если вам НЕ СЛОЖНО, приведите пример как вычисляется номер ф-ции на данный момент времени.
Пока ничего сказать не могу, бот пробегал с этим исправлением достаточно долго, что я могу сказать, набранные логи бесполезны, так как там неверно показываются номера функций, и правится не та функция, так что о том, ПОМОГАЕТ это или нет, сказать не могу.Jerry писал(а):и что, помогает ?:)
Для Атаки:
Для Скиллов:
Где
0x85 -- Префикс Пакета Аттаки
0xA2 -- Префикс Пакета Скилла
В случае Если они поменяют Префиксы, то нужно будет так-же префиксы поменять в соостветвующих местах.
Так-же такой Код не прокатит:
if ($func==0xE) { $syncSync = pack("V", getTickCount()+1);}
Во первых Сервер тоже должен знать Теперешнее значение Синка. Для етого мы можем Вызвать Соостветвующюю функцию с Send.pm и Повторить попытку через нобольшую задержку.
Код: Выделить всё
$func = 0x85 * 0x85;
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncMapSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$accountID);
$func &= 0xFFFFFFFF;
$func &= 0xF;
Код: Выделить всё
$func = 0xA2 * 0xA2;
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncMapSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$accountID);
$func &= 0xFFFFFFFF;
$func &= 0xF;
0x85 -- Префикс Пакета Аттаки
0xA2 -- Префикс Пакета Скилла
В случае Если они поменяют Префиксы, то нужно будет так-же префиксы поменять в соостветвующих местах.
Так-же такой Код не прокатит:
if ($func==0xE) { $syncSync = pack("V", getTickCount()+1);}
Во первых Сервер тоже должен знать Теперешнее значение Синка. Для етого мы можем Вызвать Соостветвующюю функцию с Send.pm и Повторить попытку через нобольшую задержку.
Спасибо.kLabMouse писал(а):
Так-же такой Код не прокатит:
if ($func==0xE) { $syncSync = pack("V", getTickCount()+1);}
Во первых Сервер тоже должен знать Теперешнее значение Синка. Для етого мы можем Вызвать Соостветвующюю функцию с Send.pm и Повторить попытку через нобольшую задержку.
Почему не прокатит.
Мы находимся в Send.pm, в функции sendSync
sub sendSync {
my $r_net = shift;
my $initialSync = shift;
my $msg;
# XKore mode 1 lets the client take care of syncing.
return if ($r_net->version == 1);
$syncSync = pack("V", getTickCount()); ### сначала мы нормально берем getTickCount
####Добавляем
$func = 0x85 * 0x85;
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncMapSync);
$func &= 0xFFFFFFFF;
## $func += unpack("L1",$syncSync)+3; - откуда я тут +3 написал? хз, может когда проверял что-нить ))) но должно быть так, конечно

$func += unpack("L1",$syncSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$accountID);
$func &= 0xFFFFFFFF;
$func &= 0xF;
#### Вычислили №ф-ции, которая будет использоваться при данном синке.
if ($func==0xE) { ### мы не хотим ф-ю 0E
$syncSync = pack("V", getTickCount()+1); ### корркетируем $syncSync
}
#### Которое далее посылается и т.п.
П.С. Что я хотел сказать.
<skip>Погрызено злым сусликом<skip>
Да, глупо было писать тут ЭТО =)
С уважением.
Последний раз редактировалось DInvalid Ср дек 20, 2006 1:12 am, всего редактировалось 2 раза.
ну эт типа не ирония была, а любопытство. логи, кстати, полезны, они или показывают что исправление неээфективно, или то, что оно ээфективно по третьей причинеDInvalid писал(а):Пока ничего сказать не могу, бот пробегал с этим исправлением достаточно долго, что я могу сказать, набранные логи бесполезны, так как там неверно показываются номера функций, и правится не та функция, так что о том, ПОМОГАЕТ это или нет, сказать не могу.Jerry писал(а):и что, помогает ?:)

я, кстати, не знаю, откуда ты взял код с этими &= 0xFFFFFFFF, это совершенно бесполезная операция, достаточно просто сложения.
и что должно означать вот это "3" в
$func += unpack("L1",$syncSync)+3;
?
зы номер считается вот так
(packet * packet + map_sync + sync + acc_id) & 0xF
packet это соответственно ID пакета
и что должно означать вот это "3" в
$func += unpack("L1",$syncSync)+3;
?
зы номер считается вот так
(packet * packet + map_sync + sync + acc_id) & 0xF
packet это соответственно ID пакета
а, хотя может смысл в & и есть, я не в курсе сколькобитная арифметика в перле ...
Универсальный обход кустарных антибот-защит:
xKore 1 -- $20
xKore 1 -- $20
Это ГЛЮКJerry писал(а):я, кстати, не знаю, откуда ты взял код с этими &= 0xFFFFFFFF, это совершенно бесполезная операция, достаточно просто сложения.
и что должно означать вот это "3" в
$func += unpack("L1",$syncSync)+3; ?

$func += unpack("L1",$syncSync);
Код мне любезно дал КМ, для отладки, еще давно. что бы выводить в лог, какая ф-я выбрана.
Это на С, как в перле будет округлятся... хзJerry писал(а): зы номер считается вот так
(packet * packet + map_sync + sync + acc_id) & 0xF
packet это соответственно ID пакета
ну вот для этого наверно и придумано &= 0xFFFFFFFF
Универсальный обход кустарных антибот-защит:
xKore 1 -- $20
xKore 1 -- $20
так может у вас и раньше функция неправильно считалась ?:)
Универсальный обход кустарных антибот-защит:
xKore 1 -- $20
xKore 1 -- $20
Нед...Jerry писал(а):так может у вас и раньше функция неправильно считалась ?:)
sub SetHashData {
SetAccountId(unpack("L1",$accountID));
SetMapSync(unpack("L1",$syncMapSync));
SetSync(unpack("L1",$syncSync));
my $func;
$func = 0x85 * 0x85;
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncMapSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$accountID);
$func &= 0xFFFFFFFF;
$func &= 0xF;
message "Using Function [".getHex(pack("C", $func))."] AccID: [".getHex($accountID)."] MapSync: [".getHex($syncMapSync)."] Sync: [".getHex($syncSync)."]\n","dumpROPP";
Это я на форум запостил не из Send.pm a из test.pl
