Защита(вопрос) + скрипт от дюпа адены
2 ответов455 просмотровСейчас просматривают: 1
· 11.04.2009, 19:58
Доброго времени суток всем! Хотелось бы узнать есть ли от l2phx, hlapex какая нить еще защита? Не Depmax64. Интересует больше всего хоть минимальная защита от дюпа.
Кстати кому пригодится фикс от дюпа адены вот скрипт на Perl:
Код
use Data::Dumper;
use LWP::Simple;
use Win32::Console;
my $STDOUT = new Win32::Console(STD_OUTPUT_HANDLE);
$STDOUT->Title("L2 Adena Cheat Autoban");
$STDOUT->Cls($FG_LIGHTGRAY | $BG_BLACK);
$STDOUT->Attr($FG_LIGHTGRAY | $BG_BLACK);
$log_dir = 'D:\SERVER\CacheD\log\err\\';
$watch_status = 'adena_cheat_status.txt';
$watch_banned = 'adena_cheat_banned.txt';
$watch_log = 'adena_cheat_log.txt';
open STATUS, "$watch_status";
while (<STATUS>)
{
chop($_);
$f_status{$_}=1;
}
close STATUS;
my %banned;
open BAN, "$watch_banned";
while (<BAN>)
{
chop($_);
$banned{$_}=1;
}
close BAN;
open STATUS, ">>$watch_status";
open LOG, ">>$watch_log";
open BAN, ">>$watch_banned";
$| = 1, select $_ for select STATUS; #autoflush
$| = 1, select $_ for select LOG; #autoflush
$| = 1, select $_ for select BAN; #autoflush
my @log_files = read_log_dir();
my $log_files_cnt = scalar @log_files;
$file_nr = 1;
while ($log_file = shift @log_files)
{
if (defined $f_status{$log_file}) ## juz sprawdzany plik
{
$file_nr++;
next;
}
open LOGFILE, $log_file;
print STDERR "open $log_file\n";
while (1)
{
for ($cur_pos = tell LOGFILE; $_ = <LOGFILE>; $cur_pos = tell LOGFILE)
{
if ($_ =~ m{BuyItems error.\[(\d+)\]\[57\]})
{
$char_id = $1;
if (! defined ($banned{$char_id}))
{
my $ban_content = get("http://your.domain.com/yourbanandkickscript.php?char_id=".$char_id);
print LOG localtime()." ban for $char_id [$ban_content]\n";
print localtime()." ban for $char_id [$ban_content]\n";
$banned{$char_id} = 1;
print BAN "$char_id\n";
}
else
{
print "$char_id alredy banned\n";
}
}
}
if ($file_nr < $log_files_cnt)
{
last;
}
else
{
my @log_files_tmp = read_log_dir();
my $log_files_cnt_tmp = scalar @log_files_tmp;
if ($log_files_cnt_tmp > $log_files_cnt) #one file only :P
{
print STDERR "new file $log_files_tmp[$log_files_cnt]\n";
push @log_files, $log_files_tmp[$log_files_cnt];
$log_files_cnt = $log_files_cnt_tmp;
last;
}
}
sleep 1;
seek LOGFILE, $cur_pos, 0;
}
close LOGFILE;
print STATUS $log_file."\n";
$file_nr++;
}
sub read_log_dir
{
my @log_files;
opendir LOGDIR, $log_dir;
push (@log_files, map($log_dir.$_, grep (m{^.*\.log$}, readdir LOGDIR)));
closedir LOGDIR;
return @log_files;
}
use LWP::Simple;
use Win32::Console;
my $STDOUT = new Win32::Console(STD_OUTPUT_HANDLE);
$STDOUT->Title("L2 Adena Cheat Autoban");
$STDOUT->Cls($FG_LIGHTGRAY | $BG_BLACK);
$STDOUT->Attr($FG_LIGHTGRAY | $BG_BLACK);
$log_dir = 'D:\SERVER\CacheD\log\err\\';
$watch_status = 'adena_cheat_status.txt';
$watch_banned = 'adena_cheat_banned.txt';
$watch_log = 'adena_cheat_log.txt';
open STATUS, "$watch_status";
while (<STATUS>)
{
chop($_);
$f_status{$_}=1;
}
close STATUS;
my %banned;
open BAN, "$watch_banned";
while (<BAN>)
{
chop($_);
$banned{$_}=1;
}
close BAN;
open STATUS, ">>$watch_status";
open LOG, ">>$watch_log";
open BAN, ">>$watch_banned";
$| = 1, select $_ for select STATUS; #autoflush
$| = 1, select $_ for select LOG; #autoflush
$| = 1, select $_ for select BAN; #autoflush
my @log_files = read_log_dir();
my $log_files_cnt = scalar @log_files;
$file_nr = 1;
while ($log_file = shift @log_files)
{
if (defined $f_status{$log_file}) ## juz sprawdzany plik
{
$file_nr++;
next;
}
open LOGFILE, $log_file;
print STDERR "open $log_file\n";
while (1)
{
for ($cur_pos = tell LOGFILE; $_ = <LOGFILE>; $cur_pos = tell LOGFILE)
{
if ($_ =~ m{BuyItems error.\[(\d+)\]\[57\]})
{
$char_id = $1;
if (! defined ($banned{$char_id}))
{
my $ban_content = get("http://your.domain.com/yourbanandkickscript.php?char_id=".$char_id);
print LOG localtime()." ban for $char_id [$ban_content]\n";
print localtime()." ban for $char_id [$ban_content]\n";
$banned{$char_id} = 1;
print BAN "$char_id\n";
}
else
{
print "$char_id alredy banned\n";
}
}
}
if ($file_nr < $log_files_cnt)
{
last;
}
else
{
my @log_files_tmp = read_log_dir();
my $log_files_cnt_tmp = scalar @log_files_tmp;
if ($log_files_cnt_tmp > $log_files_cnt) #one file only :P
{
print STDERR "new file $log_files_tmp[$log_files_cnt]\n";
push @log_files, $log_files_tmp[$log_files_cnt];
$log_files_cnt = $log_files_cnt_tmp;
last;
}
}
sleep 1;
seek LOGFILE, $cur_pos, 0;
}
close LOGFILE;
print STATUS $log_file."\n";
$file_nr++;
}
sub read_log_dir
{
my @log_files;
opendir LOGDIR, $log_dir;
push (@log_files, map($log_dir.$_, grep (m{^.*\.log$}, readdir LOGDIR)));
closedir LOGDIR;
return @log_files;
}
0
· 02.05.2009, 13:46
защита завистит от сборки
если защита не кривая то ее небойти
смотрим:
http://la2base.ru/forum/index.php?showtopic=12689
>Какие есть основные методы защиты сервера на программном уровне?
>Уже указали la2guard, AmpeD, dempax
свои руки, вот ето та защита которая вам нужна
в крайнем случае можно и руками смели возпользоватся ибо ето открытый код
а ето значит что если смели сегодня умрёт - вы сами его защиту будете совершенствовать
0
Тема закрыта для ответов

