ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

23.02.2009, 03:14
|
|
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме: 1123418
Репутация:
362
|
|
Nightmarе
пробелы только сотри форумные
Код:
#/usr/bin/perl -w
use Mcrypt qw(:ALGORITHMS :MODES);
use MIME::Base64;
$key = "E4HD9h4DhS23DYfhHemkS3Nf";# 24 bit Key
$iv = "fYfhHeDm";# 8 bit IV
$input = "Text to encrypt";# text to encrypt
$bit_check=8;# bit amount for diff algor.
$str= encrypt($input,$key,$iv,$bit_check);
print "Start: $input - Excrypted: $str - Decrypted: ".decrypt($str,$key,$iv,$bit_check);
sub encrypt( $$$$ ) {
my ($text,$key,$iv,$bit_check) = @_;
my @text_num = str_split($text,$bit_check);
$text_num = $bit_check-length($text_num[scalar($text_num)-1]);
for(my $i=0;$i<$text_num; $i++) { $text = $text . chr($text_num);}
my $cipher = Mcrypt::mcrypt_load(Mcrypt::3DES,'',Mcrypt::CBC,'');
Mcrypt::mcrypt_init($cipher, $key, $iv);
my $decrypted = Mcrypt::mcrypt_encrypt($cipher,$text);
Mcrypt::mcrypt_end($cipher);
return encode_base64($decrypted,'');
}
sub decrypt( $$$$ ) {
my ($encrypted_text,$key,$iv,$bit_check) = @_;
my $cipher = Mcrypt::mcrypt_load(Mcrypt::3DES,'',Mcrypt::CBC,'');
Mcrypt::mcrypt_init($cipher, $key, $iv);
my $decrypted = Mcrypt::mcrypt_decrypt($cipher,decode_base64($encrypted_text));
Mcrypt::mcrypt_end($cipher);
my $last_char=substr($decrypted,-1);
for(my $i=0;$i<$bit_check-1; $i++){
if($i==ord($last_char)){
$decrypted=substr($decrypted,0,length($decrypted)-$i);
last;
}
}
return $decrypted;
}
sub str_split( $$ ) {
my ($text,$split) = @_;
if($split<1) { $split = 1; }
my @array = ();
for (my $i = 0; $i < length($text); $i += $split) {
push @array, substr($text, $i, $split);
}
return @array;
}
Последний раз редактировалось [dei]; 23.02.2009 в 17:06..
|
|
|

23.02.2009, 13:03
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
[dei]
Проверял идентичность результата работы?
|
|
|

23.02.2009, 17:07
|
|
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме: 1123418
Репутация:
362
|
|
Kaimi
идентично
|
|
|

24.02.2009, 01:13
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
Сообщение от $p01nt
Ребят, привет всем!
У меня такой вопрос, пытаюсь авторизироваться на сайте отправив методом POST логин и пароль, ничего не получается (хотя на некоторых других - все ОК!). Собсно ошибка:...
вот рабочий код. механайз рулз
Код:
use strict;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');
$mech->get('https://www.google.com/accounts/ServiceLoginAuth?service=mail');
$mech->submit_form(form_number => 1, fields => {Email => 'логин', Passwd => 'пасс', PersistentCookie => 'yes'});
my ($loc) = $mech->content() =~ /location\.replace\("(.+)"\)/;
$mech->get($loc);
print $mech->content();
твой код не смотрел почему не работает, но в любом случае ты неправильно куки сохраняешь, почитай доки по этому поводу
Код:
my $jar = HTTP::Cookies->new(file => "cookie.txt", autosave => 1, ignore_discard => 1, hide_cookie2 => 1);
|
|
|

24.02.2009, 01:28
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
вот рабочий код. механайз рулз
Дай пример рабочего кода получающего содержимое страницы почты в гмейле
|
|
|

24.02.2009, 15:55
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
Сообщение от Kaimi
Дай пример рабочего кода получающего содержимое страницы почты в гмейле
Может лучше ее по попу скачать?
|
|
|

02.03.2009, 10:54
|
|
Участник форума
Регистрация: 18.11.2007
Сообщений: 184
Провел на форуме: 1686744
Репутация:
246
|
|
Вобщем решил попробывать изучить perl
В учебнике есть задания по проделанным урокам вот запнулся на 1 из них.
Код:
#!/usr/bin/perl -w
$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
if ($guess>$im_thinking_of) {
print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
print "NEDABOR!\п";
} else {
print "You win";
}
нужно кароче сделать чтобы цикл повторялся пока не будет правильного ответа. все из тыркал че-то не догоню как
Код:
#!/usr/bin/perl -w
$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
while ($guess) {
if ($guess>$im_thinking_of) {
print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
print "NEDABOR!\п";
} else {
print "You win"; }
}
че-то такое пробую писать но он кароче повторяет ответ до бесконечности. Еси можно ещё поеснить немного. Сразу говарю учеюник скачал 3 часа назад где-то так что нуб полный. Пока несовсем понимаю что я делаю.
Последний раз редактировалось S0ulVortex; 02.03.2009 в 10:58..
|
|
|

02.03.2009, 11:31
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
S0ulVortex, тебе просто надо сделать выход, в случае, если ответ правильный. Это можно сделать несколькими способами:
1) поставить exit если ответ правильный
2) поставить next если ответ правильный
3) в условие цикла добавить проверки правильного ответа
|
|
|

02.03.2009, 13:44
|
|
Участник форума
Регистрация: 18.11.2007
Сообщений: 184
Провел на форуме: 1686744
Репутация:
246
|
|
Сообщение от demond
S0ulVortex, тебе просто надо сделать выход, в случае, если ответ правильный. Это можно сделать несколькими способами:
1) поставить exit если ответ правильный
2) поставить next если ответ правильный
3) в условие цикла добавить проверки правильного ответа
Че-то я не втыкну вроде все делаю правильно а он не повторяет.
Код:
#!/usr/bin/perl -w
$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of) {
if ($guess>$im_thinking_of) {
print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
print "NEDABOR!\п";
} else {
print "You win."; }
exit;
}
|
|
|

02.03.2009, 13:49
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
Сообщение от S0ulVortex
Че-то я не втыкну вроде все делаю правильно а он не повторяет.
Код:
#!/usr/bin/perl -w
$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of) {
if ($guess>$im_thinking_of) {
print "perebor!\п";
} elsif ($guess < $im_thinking_of) {
print "NEDABOR!\п";
} else {
print "You win."; }
exit;
}
Он делает так, как ты ему говоришь! :-) exit должен быть в последнем else!
Вообще, от себя, посоветую использовать следующий стиль форматирования кода (ну или посчитать perlstyle и следовать тем советам!):
Код:
#!/usr/bin/perl -w
$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of)
{
if ($guess>$im_thinking_of)
{
print "perebor!\п";
}
elsif ($guess < $im_thinking_of)
{
print "NEDABOR!\п";
}
else
{
print "You win.";
}
exit;
}
Это позволить избегать таких ошибок!
Код должен выглядеть так:
Код:
#!/usr/bin/perl -w
$im_thinking_of=int(rand 10);
print "Введите часло от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
for ($guess==$im_thinking_of)
{
if ($guess>$im_thinking_of)
{
print "perebor!\п";
}
elsif ($guess < $im_thinking_of)
{
print "NEDABOR!\п";
}
else
{
print "You win.";
exit;
}
}
Разницу видишь? :-)
Последний раз редактировалось demond; 02.03.2009 в 13:53..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|