Страница 8 из 16
Добавлено: Вт дек 19, 2006 10:30 pm
Jerry
и что, помогает ?:)
Добавлено: Вт дек 19, 2006 11:38 pm
kLabMouse
Только ета строчка
$func = 0x89 * 0x89;
На сегодняшний день поменялась. Ето префикс пакета
Добавлено: Вт дек 19, 2006 11:50 pm
DInvalid
kLabMouse писал(а):Только ета строчка
$func = 0x89 * 0x89;
На сегодняшний день поменялась. Ето префикс пакета
Ребят, очень смешно.
Я конечно понимаю что вы знаете все гораздо лучше меня.
И знаете как решить эту проблему.
А я нуп, который ничего не понимает.
КМ, если вам НЕ СЛОЖНО, приведите пример как вычисляется номер ф-ции на данный момент времени.
Jerry писал(а):и что, помогает ?:)
Пока ничего сказать не могу, бот пробегал с этим исправлением достаточно долго, что я могу сказать, набранные логи бесполезны, так как там неверно показываются номера функций, и правится не та функция, так что о том, ПОМОГАЕТ это или нет, сказать не могу.
Добавлено: Вт дек 19, 2006 11:59 pm
kLabMouse
Для Атаки:
Код: Выделить всё
$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 и Повторить попытку через нобольшую задержку.
Добавлено: Ср дек 20, 2006 12:46 am
DInvalid
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>
Да, глупо было писать тут ЭТО =)
С уважением.
Добавлено: Ср дек 20, 2006 12:53 am
Jerry
DInvalid писал(а):Jerry писал(а):и что, помогает ?:)
Пока ничего сказать не могу, бот пробегал с этим исправлением достаточно долго, что я могу сказать, набранные логи бесполезны, так как там неверно показываются номера функций, и правится не та функция, так что о том, ПОМОГАЕТ это или нет, сказать не могу.
ну эт типа не ирония была, а любопытство. логи, кстати, полезны, они или показывают что исправление неээфективно, или то, что оно ээфективно по третьей причине
Добавлено: Ср дек 20, 2006 12:55 am
Jerry
DInvalid писал(а):А так же преподавал x86 асм в вузе, так что какие то представления о нем имею.
С уважением.
не надо так напрягаться, все свои, можешь даже послать когонть если не нравится
Добавлено: Ср дек 20, 2006 1:00 am
Jerry
я, кстати, не знаю, откуда ты взял код с этими &= 0xFFFFFFFF, это совершенно бесполезная операция, достаточно просто сложения.
и что должно означать вот это "3" в
$func += unpack("L1",$syncSync)+3;
?
зы номер считается вот так
(packet * packet + map_sync + sync + acc_id) & 0xF
packet это соответственно ID пакета
Добавлено: Ср дек 20, 2006 1:05 am
Jerry
а, хотя может смысл в & и есть, я не в курсе сколькобитная арифметика в перле ...
Добавлено: Ср дек 20, 2006 1:10 am
DInvalid
Jerry писал(а):я, кстати, не знаю, откуда ты взял код с этими &= 0xFFFFFFFF, это совершенно бесполезная операция, достаточно просто сложения.
и что должно означать вот это "3" в
$func += unpack("L1",$syncSync)+3; ?
Это ГЛЮК
$func += unpack("L1",$syncSync);
Код мне любезно дал КМ, для отладки, еще давно. что бы выводить в лог, какая ф-я выбрана.
Jerry писал(а):
зы номер считается вот так
(packet * packet + map_sync + sync + acc_id) & 0xF
packet это соответственно ID пакета
Это на С, как в перле будет округлятся... хз
Добавлено: Ср дек 20, 2006 1:14 am
Jerry
ну вот для этого наверно и придумано &= 0xFFFFFFFF
Добавлено: Ср дек 20, 2006 1:16 am
Jerry
так может у вас и раньше функция неправильно считалась ?:)
Добавлено: Ср дек 20, 2006 1:19 am
DInvalid
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
Добавлено: Ср дек 20, 2006 1:19 am
kLabMouse
Jerry
ХЗ. Я ето відрал Ещё со старіх нароботок ДаркФейта. Когда ещё Паддинги только Появились. Всегда верно пахала. Ни разу не сглючила
Добавлено: Ср дек 20, 2006 2:08 am
Driver
Мыша а ты ведь добавишь все это в очередной вариант Коре, правда ведь