Т.е. для того что сформировать кодированный пакет нужно выполнить вот такое преобразование:
(если бы это писалось на С++)
Код: Выделить всё
for(int i=0;i<length;i++){
message[i]^=cod[i%4];
}
cod[4] - ключ.
А как реализовать такой же код в perl?
Очевидно нужно дописать в эту функцию подобие такой обработки.
Код: Выделить всё
sub serverSend {
my $self = shift;
my $msg = shift;
#сюда нужно дописать шифровку ?)
if ($self->serverAlive) {
if (Plugins::hasHook("Network::serverSend/pre")) {
Plugins::callHook("Network::serverSend/pre", { msg => \$msg });
}
if (defined $msg) {
$self->{remote_socket}->send($msg);
if (Plugins::hasHook("Network::serverSend")) {
Plugins::callHook("Network::serverSend", { msg => $msg });
}
}
}
}
а) как работать с строковой переменной perl как с массивом, т.е. как обработать её посимвольно.
б) как ксорить?
Код: Выделить всё
$message^=$cod;
Код: Выделить всё
message^=cod;
в)Там ли я пытаюсь шифровать пакеты?
г)Не плохо было бы это оформить ввиде плагина... Я думаю на многих пиратках пригодилось бы.